Makefile revision 3229
3793N/A# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 3243N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3243N/A# This code is free software; you can redistribute it and/or modify it 3243N/A# under the terms of the GNU General Public License version 2 only, as 3243N/A# published by the Free Software Foundation. 3243N/A# This code is distributed in the hope that it will be useful, but WITHOUT 3243N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 3243N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 3243N/A# version 2 for more details (a copy is included in the LICENSE file that 3243N/A# You should have received a copy of the GNU General Public License version 3243N/A# 2 along with this work; if not, write to the Free Software Foundation, 3243N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 3243N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 3243N/A# Top level gnumake file for hotspot builds 3243N/A# Default is to build the both product images and construct an export dir. 3907N/A# The default export directory name is `pwd`/export-$(PLATFORM). 3907N/A# Use: 'gnumake help' for more information. 3793N/A# This makefile uses the default settings for where to find compilers and 4278N/A# tools, and obeys the ALT_* variable settings used by the other JDK 3243N/A# LP64=1 or ARCH_DATA_MODEL=64 for 64bit build 3243N/A# ALT_SLASH_JAVA Location of /java or J: 3243N/A# ALT_BOOTDIR Previous JDK home directory for javac compiler 3243N/A# ALT_OUTPUTDIR Output directory to use for hotspot build 3793N/A# ALT_EXPORT_PATH Directory to export hotspot build to 3793N/A# ALT_JDK_IMPORT_PATH Current JDK build (only for create_jdk rules) 3793N/A# ALT_JDK_TARGET_IMPORT_PATH Current JDK build when cross-compiling 3243N/A# ALT_BUILD_WIN_SA Building SA on Windows is disabled by default. 3243N/A# Set ALT_BUILD_WIN_SA=1 to enable building SA on 4278N/A# Version strings and numbers: 4278N/A# JDK_VERSION Current JDK version (e.g. 1.6.0) 3243N/A# PREVIOUS_JDK_VERSION Previous (bootdir) JDK version (e.g. 1.5.0) 3243N/A# FULL_VERSION Full version string to use (e.g. "1.6.0-ea-b42") 3243N/A# Version strings and numbers especially needed on Windows: 3243N/A# COOKED_JDK_UPDATE_VERSION Just the update release number (e.g. 02) 3243N/A# COOKED_BUILD_NUMBER Just the build number (e.g. 42) 3243N/A# JDK_MKTG_VERSION Marketing JDK version (e.g. 6.0) 3243N/A# JDK_MAJOR_VERSION Major number for version (e.g. 1) always 1? 3243N/A# JDK_MINOR_VERSION Minor number for version (e.g. 6) 4278N/A# JDK_MICRO_VERSION Micro number for version (e.g. 0) 4278N/A# Default is build both product fastdebug and create export area 4278N/A# Allow to build HotSpot in local directory from sources specified by GAMMADIR. 4278N/A# Typical C1/C2 targets made available with this Makefile 3243N/A# Build variation of hotspot 4250N/A# Build compiler1 (client) rule, different for platforms 4250N/A# Build compiler2 (server) rule, different for platforms # Misc files and generated files need to come from C1 or C2 area # Other libraries (like SA) # Client files always come from C1 area # Server files always come from C2 area # Kernel files always come from kernel area # Debug info for shared library $(SED) 's/\(separated by \)[;:]/\1$(PATH_SEP)/g' $< > $@.
temp # Create JDK and place this build into it "Makefile for the Hotspot workspace." "Default behavior is to build and create an export area for the j2se builds." @
$(ECHO) "help: This help message" @
$(ECHO) "all: Same as: all_product all_fastdebug" @
$(ECHO) "world: Same as: all create_jdk" @
$(ECHO) "all_product: Same as: product product1 export_product" @
$(ECHO) "all_fastdebug: Same as: fastdebug fastdebug1 export_fastdebug" @
$(ECHO) "all_debug: Same as: jvmg jvmg1 export_debug" @
$(ECHO) "all_optimized: Same as: optimized optimized1 export_optimized" @
$(ECHO) "clean: Clean all areas" @
$(ECHO) "export_product: Export product files to EXPORT_PATH" @
$(ECHO) "export_fastdebug: Export fastdebug files to EXPORT_PATH" @
$(ECHO) "export_debug: Export debug files to EXPORT_PATH" @
$(ECHO) "export_optimized: Export optimized files to EXPORT_PATH" @
$(ECHO) "create_jdk: Create JDK image, export all files into it" @
$(ECHO) "update_jdk: Update JDK image with fresh exported files" @
$(ECHO) "Others targets are:"# Variable help (only common ones used by this workspace) @
$(ECHO) "--- Common Variables ---" @
$(ECHO) "--- Make Arguments ---"# One line descriptions for the variables # Make variables to print out (description and value) # Make variables that should refer to directories that exist # 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"; \
"- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted" " builds or previous release JDK builds will work." "- The fastest builds have been when the workspace and the BOOTDIR are on" # Universal build support # JPRT rule to build this workspace