Makefile revision 484
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this # particular file as subject to the "Classpath" exception as provided # by Oracle in the LICENSE file that accompanied this code. # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # Basename of any originally supplied ALT_OUTPUTDIR directory # The three possible directories created for output (3 build flavors) # Relative path to a debug output area # The created jdk image directory # Relative path from an output directory to the image directory # Everything for a full product build # Generic build of basic repo series # The debug build, fastdebug or debug. Needs special handling. # Note that debug builds do NOT do INSTALL steps, but must be done # after the product build and before the INSTALL step of the product build. # DEBUG_NAME is fastdebug or debug # ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix # The resulting image directory (j2sdk-image) is used by the install makefiles # to create a debug install bundle jdk-*-debug-** bundle (tar or zip) # which will install in the debug or fastdebug subdirectory of the # normal product install area. # The install process needs to know what the DEBUG_NAME is, so # look for INSTALL_DEBUG_NAME in the install rules. # NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME). # Due to the use of short paths in $(ABS_OUTPUTDIR), this may # not be the same location. # Location of fresh bootdir output # Create the bootdir to use in the build # Define variables to be used now for the boot jdk # Use the supplied ALT_BOOTDIR as the boot # NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME). # Due to the use of short paths in $(ABS_OUTPUTDIR), this may # not be the same location. # The source tips are stored with the relative path to the repo. # This file will be used when constructing the jdk image. # Quick jdk verification build # Quick jdk verification fastdebug build # Quick deploy verification fastdebug build # Product build (skip debug builds) Makefile for the JDK builds (all the JDK). \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\ fastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\ debug_build -- build the core JDK in 'debug' mode (-g) \n\ clean -- remove all built and imported files \n\ clobber -- same as clean \n\ # Variable help (only common ones used by this Makefile) @
$(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\ - 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 fastest builds have been when the sources and the BOOTDIR are on \n\ $(MAKE) fastdebug_build \n\ ################################################################ ################################################################ ################################################################ ################################################################ @
$(ECHO) "#################################################" || $(ECHO) "No TEST STATS seen in log" ) @
$(ECHO) "#################################################" $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
$(ECHO) "Success! No failures detected"; \
# Get failure list from log @
( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) |
$(NAWK) 'length>0' > $@
# Get log file of all tests run ################################################################ ################################################################ ################################################################ ################################################################