Makefile revision 1258
6424N/A# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. 6424N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6424N/A# This code is free software; you can redistribute it and/or modify it 6424N/A# under the terms of the GNU General Public License version 2 only, as 6424N/A# published by the Free Software Foundation. 6424N/A# This code is distributed in the hope that it will be useful, but WITHOUT 6424N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 6424N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 6424N/A# version 2 for more details (a copy is included in the LICENSE file that 6424N/A# You should have received a copy of the GNU General Public License version 6424N/A# 2 along with this work; if not, write to the Free Software Foundation, 6424N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 6424N/A# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 6424N/A# This makefile creates a build tree and lights off a build. 6439N/A# You can go back into the build tree and perform rebuilds or 6439N/A# incremental builds as desired. Be sure to reestablish 6424N/A# environment variable settings for LD_LIBRARY_PATH and JAVA_HOME. 6439N/A# The make process now relies on java and javac. These can be 6439N/A# specified either implicitly on the PATH, by setting the 6439N/A# (JDK-inherited) ALT_BOOTDIR environment variable to full path to a 6424N/A# default BOOTDIR path value. Note that one of ALT_BOOTDIR 6424N/A# or BOOTDIR has to be set. We do *not* search javac, javah, rmic etc. 6439N/A# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding. 6439N/A# JDI binding on SA produces two binaries: 6439N/A# 2. libsaproc[_g].so - Native library for SA - This is built after 6439N/A# libjsig[_g].so (signal interposition library) 6439N/A# If $(GAMMADIR)/agent dir is not present, SA components are not built. 6439N/A $(OSNAME) $(ARCH) "*** ERROR: this platform does not support 64-bit compilers!") 6439N/A# The following renders pathnames in generated Makefiles valid on 6424N/A# machines other than the machine containing the build tree. 6424N/A# For example, let's say my build tree lives on /files12 on 6439N/A# We only do this on SunOS variants, for a couple of reasons: 6439N/A# * It is extremely rare that source trees exist on other systems 6439N/A# * It has been claimed that the Linux automounter is flakey, so 6439N/A# changing GAMMADIR in a way that exercises the automounter could 6439N/A# prove to be a source of unreliability in the build process. 6439N/A# Obviously, this Makefile is only relevant on SunOS boxes to begin 6439N/A# with, but the SunOS conditionalization will make it easier to 6439N/A# combine Makefiles in the future (assuming we ever do that). 6439N/A # prepend current directory to relative pathnames. 6439N/A # If NEW_GAMMADIR doesn't already start with "/net/": 6439N/A # remove /net/$(HOST) if name already began with /home/ 6439N/A # remove /net/$(HOST) if name already began with /java/ 6439N/A # remove /net/$(HOST) if name already began with /lab/ # Don't use the new value for GAMMADIR unless a file with the new # There is a (semi-) regular correspondence between make targets and actions: # Target Tree Type Build Dir # What you get with each target: # debug* - "thin" libjvm_g - debug info linked into the gamma_g launcher # fastdebug* - optimized compile, but with asserts enabled # jvmg* - "fat" libjvm_g - debug info linked into libjvm_g.so # optimized* - optimized compile, no asserts # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT # This target list needs to be coordinated with the usage message #------------------------------------------------------------------------------- # Could make everything by default, but that would take a while. @
echo "Try '$(MAKE) <target> ...' where <target> is one or more of"# We do not want people accidentally building on old systems (e.g. Linux 2.2.x, # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. $(QUIETLY) >&
2 echo "*** This OS is not supported:" `uname -a`;
exit 1;
# If not found then fail fast. echo "*** An XSLT processor (J2SE 1.4.x or newer) is required" \
"to bootstrap this build" 1>&
2; \
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME # Just build the tree, and nothing else: # Doc target. This is the same for all build options. # Hence create a docs directory beside ...$(ARCH)_[...] # Synonyms for win32-like targets. #-------------------------------------------------------------------------------