Makefile revision 2027
2362N/A# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. 2157N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 2157N/A# This code is free software; you can redistribute it and/or modify it 2157N/A# under the terms of the GNU General Public License version 2 only, as 2362N/A# published by the Free Software Foundation. Sun designates this 2157N/A# particular file as subject to the "Classpath" exception as provided 2362N/A# by Sun in the LICENSE file that accompanied this code. 2157N/A# This code is distributed in the hope that it will be useful, but WITHOUT 2157N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 2157N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 2157N/A# version 2 for more details (a copy is included in the LICENSE file that 2157N/A# You should have received a copy of the GNU General Public License version 2157N/A# 2 along with this work; if not, write to the Free Software Foundation, 2157N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 2157N/A# Makefile for building and packaging all of the JDK and the JRE. See 2157N/A# Make sure we are clear what the default target is Makefile for the main JDK workspace. \n\ Default behavior is to use the BOOTDIR javac to bootstrap the build and \n\ import in pre-built components like the VM from the JDK_IMPORT_PATH. \n\ --- Common Targets --- \n\ all -- build the core JDK (default target) \n\ help -- Print out help information \n\ check -- Check make variable values for correctness \n\ sanity -- Perform detailed sanity checks on system and settings \n\ openjdk -- synonym for 'OPENJDK=true all' \n\ fastdebug -- build the core JDK in 'fastdebug' mode (-g -O) \n\ debug -- build the core JDK in 'debug' mode (-g) \n\ clean -- remove all built and imported files \n\ clobber -- same as clean \n\ docs -- run javadoc to generate the JDK documentation \n\ images -- build the jdk and jre image directories \n\ import -- copy in the pre-built components (e.g. VM) \n\ import_product -- copy in the product components \n\ import_fastdebug -- copy in the fastdebug components \n\ import_debug -- copy in the debug components \n\ modules -- build the jdk and jre module images (experimental) \n\ sccs_get -- make sure all SCCS files are up-to-date (need SCCS) \n\ create_links -- create softlinks in Solaris 32bit build to 64bit dirs \n\ # Variable help (only common ones used by this workspace) @
$(ECHO) "--- Common Variables ---"# One line descriptions for the variables # Make variables to print out (description and value) # Make variables that should refer to directories that exist # Make variables that should refer to files that exist # Some are windows specific # For pattern rules below, so all are treated the same # Complete variable check # Pattern rule for printing out a variable # Pattern rule for checking to see if a variable with a directory exists @
if [ ! -d
$($*) ] ;
then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
# Pattern rule for checking to see if a variable with a file exists @
if [ ! -f
$($*) ] ;
then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
- All builds use same output directory unless overridden with \n\ \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\ \t to use the clean target first. \n\ - LANGTOOLS_DIST must refer to a langtools dist area, used to build. \n\ - CORBA_DIST must refer to a corba dist area. \n\ - JAXP_DIST must refer to a jaxp dist area. \n\ - JAXWS_DIST must refer to a jaxws dist area. \n\ - JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\ \t builds or previous release JDK builds will work. \n\ - The 'debug' target and 'import_debug' only works when a debug promoted \n\ \t build is available, and they currently are not. \n\ - The fastest builds have been when the workspace and the BOOTDIR are on \n\ # Just in case anyone uses this old name, same as 'build' # Special debug rules (You may also want to set ALT_OUTPUTDIR) # Rules to re-import VM and other JDK files # Release engineering targets. # cleanup everything. If the workspace is not being built by the control # workspace, and if it is a Teamware workspace, then see if there are # any files which are not under SCCS control. $(ECHO) '\nPerforming workspace scan for remnant files.\n' \
' Any files listed below are not under SCCS control in the workspace\n' \
' and you should review them and possibly remove them manually:' ; \
$(SED) 's+SCCS/[ps]\.++' |
$(SORT) |
$(UNIQ) -c |
$(NAWK) '$$1<2 {print $$2;}' ; \
$(ECHO) 'End of workspace scan.' ; \
# this should be the last rule in this file: # Developer rule that links 32 and 64 bit builds on Solaris by creating # softlinks in the 32bit outputdir to the 64bit outputdir. echo "Creating link for $$sd"; \
$(ECHO) "Build both 32 and 64 bit versions first"; \
# Binary Plug rules and macros # Get top level sccs_get rule # Phonies to avoid accidents.