Makefile revision 3150
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# This code is free software; you can redistribute it and/or modify it
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# under the terms of the GNU General Public License version 2 only, as
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# published by the Free Software Foundation.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# This code is distributed in the hope that it will be useful, but WITHOUT
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# version 2 for more details (a copy is included in the LICENSE file that
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# accompanied this code).
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# You should have received a copy of the GNU General Public License version
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# 2 along with this work; if not, write to the Free Software Foundation,
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6accc7a24c76a2658129933ccda7ea1c6993f31eRonny Chevalier# or visit www.oracle.com if you need additional information or have any
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Top level gnumake file for hotspot builds
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Default is to build the both product images and construct an export dir.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# The default export directory name is `pwd`/export-$(PLATFORM).
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Use: 'gnumake help' for more information.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# This makefile uses the default settings for where to find compilers and
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# tools, and obeys the ALT_* variable settings used by the other JDK
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Expected/optional make variables defined on make command line:
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# LP64=1 or ARCH_DATA_MODEL=64 for 64bit build
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Expected/optional make variables or environment variables:
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# ALT_SLASH_JAVA Location of /java or J:
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# ALT_BOOTDIR Previous JDK home directory for javac compiler
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# ALT_OUTPUTDIR Output directory to use for hotspot build
b1d6dcf5a5c5aa02843c026dede0638f77798cb4Zbigniew Jędrzejewski-Szmek# ALT_EXPORT_PATH Directory to export hotspot build to
b1d6dcf5a5c5aa02843c026dede0638f77798cb4Zbigniew Jędrzejewski-Szmek# ALT_JDK_IMPORT_PATH Current JDK build (only for create_jdk rules)
b1d6dcf5a5c5aa02843c026dede0638f77798cb4Zbigniew Jędrzejewski-Szmek# ALT_JDK_TARGET_IMPORT_PATH Current JDK build when cross-compiling
b1d6dcf5a5c5aa02843c026dede0638f77798cb4Zbigniew Jędrzejewski-Szmek# ALT_BUILD_WIN_SA Building SA on Windows is disabled by default.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Set ALT_BUILD_WIN_SA=1 to enable building SA on
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Version strings and numbers:
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# JDK_VERSION Current JDK version (e.g. 1.6.0)
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# PREVIOUS_JDK_VERSION Previous (bootdir) JDK version (e.g. 1.5.0)
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# FULL_VERSION Full version string to use (e.g. "1.6.0-ea-b42")
b1d6dcf5a5c5aa02843c026dede0638f77798cb4Zbigniew Jędrzejewski-Szmek# Version strings and numbers especially needed on Windows:
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# COOKED_JDK_UPDATE_VERSION Just the update release number (e.g. 02)
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# COOKED_BUILD_NUMBER Just the build number (e.g. 42)
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# JDK_MKTG_VERSION Marketing JDK version (e.g. 6.0)
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# JDK_MAJOR_VERSION Major number for version (e.g. 1) always 1?
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# JDK_MINOR_VERSION Minor number for version (e.g. 6)
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# JDK_MICRO_VERSION Micro number for version (e.g. 0)
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# Default is build both product fastdebug and create export area
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# Allow to build HotSpot in local directory from sources specified by GAMMADIR.
519cffec890510f817740d07355e911b10c203b7Lennart Poettering# After make/defs.make GAMMADIR is defined.
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# Typical C1/C2 targets made available with this Makefile
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringC1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringC2_VM_TARGETS=product fastdebug optimized jvmg
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringKERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringSHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringCOMMON_VM_PRODUCT_TARGETS=product product1 productkernel docs export_product
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringCOMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 fastdebugkernel docs export_fastdebug
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart PoetteringCOMMON_VM_DEBUG_TARGETS=jvmg jvmg1 jvmgkernel docs export_debug
cb0dac0548e5e51ba21618bfe4711dc1a2bbcfb5Lennart Poettering# JDK directory list
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_optimized: optimized optimized1 optimizedkernel docs export_optimized
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringallzero: all_productzero all_fastdebugzero
de0671ee7fe465e108f62dcbbbe9366f81dd9e9aZbigniew Jędrzejewski-Szmekall_productzero: productzero docs export_product
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_fastdebugzero: fastdebugzero docs export_fastdebug
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_optimizedzero: optimizedzero docs export_optimized
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringallshark: all_productshark all_fastdebugshark
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_productshark: productshark docs export_product
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_fastdebugshark: fastdebugshark docs export_fastdebug
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poetteringall_debugshark: jvmgshark docs export_debug
de0671ee7fe465e108f62dcbbbe9366f81dd9e9aZbigniew Jędrzejewski-Szmekall_optimizedshark: optimizedshark docs export_optimized
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering# Do everything
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering# Build or export docs
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering @$(ECHO) "No docs ($(VM_TARGET)) for windows"
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering# Build variation of hotspot
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering $(MAKE) VM_TARGET=$@ generic_build1 $(ALT_OUT)
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering $(MAKE) VM_TARGET=$@ generic_build2 $(ALT_OUT)
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering $(MAKE) VM_TARGET=$@ generic_buildkernel $(ALT_OUT)
2fa4092c2829dd14e50c430ae2f23551d23c6c1dLennart Poettering $(MAKE) VM_TARGET=$@ generic_buildzero $(ALT_OUT)
6accc7a24c76a2658129933ccda7ea1c6993f31eRonny Chevalier $(MAKE) VM_TARGET=$@ generic_buildshark $(ALT_OUT)
6accc7a24c76a2658129933ccda7ea1c6993f31eRonny Chevalier# Build compiler1 (client) rule, different for platforms
6accc7a24c76a2658129933ccda7ea1c6993f31eRonny Chevalier @$(ECHO) "No compiler1 ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
53f555b6f6b0a9fb58a781e40e3db67924a2a9c8Lennart Poettering @$(ECHO) "No compiler1 ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
6accc7a24c76a2658129933ccda7ea1c6993f31eRonny Chevalier# Build compiler2 (server) rule, different for platforms
2d60169dd60d503712d5c2e81a01158e82e636e6Lennart Poettering @$(ECHO) "No kernel ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
2d60169dd60d503712d5c2e81a01158e82e636e6Lennart Poettering @$(ECHO) "No kernel ($(VM_TARGET)) for OS_NAME=$(OSNAME)"
# Get jvm.lib
# Jar file (sa-jdi.jar)
# export jfr.h
# Doc files (jvmti.html)
$(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_KERNEL_DIR)/Xusage.txt: $(XUSAGE)
@$(ECHO) \
@$(ECHO) \
BOOTDIR \
BOOTDIR \
%.printval:
%.checkdir:
%.checkfil:
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
@$(ECHO) \
$(KERNEL_VM_TARGETS) \