spec.gmk.in revision 1829:5a7e1695ac8c
152400Sbillf# 252400Sbillf# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. 352400Sbillf# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 452400Sbillf# 552400Sbillf# This code is free software; you can redistribute it and/or modify it 652400Sbillf# under the terms of the GNU General Public License version 2 only, as 752400Sbillf# published by the Free Software Foundation. Oracle designates this 8110377Sdougb# particular file as subject to the "Classpath" exception as provided 973651Sdougb# by Oracle in the LICENSE file that accompanied this code. 1052400Sbillf# 1152495Sbillf# This code is distributed in the hope that it will be useful, but WITHOUT 1252400Sbillf# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1368507Sdougb# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1452400Sbillf# version 2 for more details (a copy is included in the LICENSE file that 1552400Sbillf# accompanied this code). 1652533Sbillf# 1752400Sbillf# You should have received a copy of the GNU General Public License version 1891193Sdougb# 2 along with this work; if not, write to the Free Software Foundation, 1967949Sdougb# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2052400Sbillf# 2152400Sbillf# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2252400Sbillf# or visit www.oracle.com if you need additional information or have any 2352400Sbillf# questions. 2452400Sbillf# 2552400Sbillf 2652400Sbillf# Configured @DATE_WHEN_CONFIGURED@ to build 2767949Sdougb# for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@ 2891193Sdougb# (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf) 2991193Sdougb# on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@ 3052400Sbillf# (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf) 3152400Sbillf# using 'configure @CONFIGURE_COMMAND_LINE@' 3252400Sbillf 3352400Sbillf# The command line given to configure. 3452400SbillfCONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@ 3567949Sdougb 3652400Sbillf# A self-referential reference to this file. 3752400SbillfSPEC:=@SPEC@ 3852400Sbillf 3952400Sbillf# SPACE is defined in MakeBase.gmk, but it is also used in := rules here for some 4052400Sbillf# toolchains, and is needed if MakeBase.gmk is not included before this file. 4152400SbillfX:= 4252400SbillfSPACE:=$(X) $(X) 4367859Sdougb 4467949Sdougb# What make to use for main processing, after bootstrapping top-level Makefile. 4552400SbillfMAKE := @MAKE@ 4652400Sbillf 4758910Salfred# The default make arguments 4858910SalfredMAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ 4958910Salfred MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL) 5067850Sdougb 5167850SdougbOUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@ 5267850SdougbOUTPUT_SYNC:=@OUTPUT_SYNC@ 5367850Sdougb 5467850Sdougb# Override the shell with bash 5567850SdougbBASH:=@BASH@ 5667850SdougbBASH_ARGS:=@BASH_ARGS@ 5767850SdougbSHELL:=$(BASH) $(BASH_ARGS) 5867850Sdougb 5967850Sdougb# The "human readable" name of this configuration 6067850SdougbCONF_NAME:=@CONF_NAME@ 6167850Sdougb 6267949Sdougb# The built jdk will run in this target system. 6367850SdougbOPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ 6467850SdougbOPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@ 6567850SdougbOPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ 6667850Sdougb 6767850SdougbOPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ 6867850SdougbOPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ 6967850SdougbOPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ 7067850SdougbOPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ 7167859Sdougb 7267859SdougbCOMPILE_TYPE:=@COMPILE_TYPE@ 7358910Salfred 7467850Sdougb# Legacy support 7567850SdougbOPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@ 7667850SdougbOPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@ 7767850SdougbOPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@ 7867850SdougbOPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@ 7967850SdougbOPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@ 8067859SdougbOPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@ 8167850SdougbOPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@ 8267859Sdougb 8367850Sdougb# We are building on this build system. 8467850Sdougb# When not cross-compiling, it is the same as the target. 8567850SdougbOPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@ 8667850SdougbOPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@ 8767859SdougbOPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@ 8867850Sdougb 8967850SdougbOPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@ 9067850SdougbOPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@ 9167850SdougbOPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ 9267850SdougbOPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ 9367850Sdougb 9467850Sdougb# Legacy OS values for use in release file. 9567850SdougbREQUIRED_OS_NAME:=@REQUIRED_OS_NAME@ 9667850SdougbREQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@ 9767850Sdougb 9867850Sdougb@SET_OPENJDK@ 9967850SdougbLIBM:=@LIBM@ 10067850SdougbLIBDL:=@LIBDL@ 10167850Sdougb 10258910Salfred# colon or semicolon 10358910SalfredPATH_SEP:=@PATH_SEP@ 10458910Salfred 10558910Salfred# Save the original path before replacing it with the Visual Studio tools 10658910SalfredORIGINAL_PATH:=@ORIGINAL_PATH@ 10758910Salfredifeq ($(OPENJDK_TARGET_OS), windows) 10867850Sdougb # On Windows, the Visual Studio toolchain needs the PATH to be adjusted 10958910Salfred # to include Visual Studio tools (this needs to be in cygwin/msys style). 11077323Sdougb export PATH:=@VS_PATH@ 11177323Sdougbendif 11267949Sdougb 11367850SdougbSYSROOT_CFLAGS := @SYSROOT_CFLAGS@ 11490564SdougbSYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@ 115109993Sdillon 116109993Sdillon# The top-level directory of the forest (SRC_ROOT is a traditional alias) 117109993SdillonTOPDIR:=@TOPDIR@ 118109993Sdillon# These two versions of TOPDIR are used in string comparisons 119109993SdillonORIGINAL_TOPDIR:=@ORIGINAL_TOPDIR@ 120110377SdougbCANONICAL_TOPDIR:=@CANONICAL_TOPDIR@ 121109993SdillonSRC_ROOT:=@TOPDIR@ 122109993Sdillon 12367850SdougbOUTPUT_ROOT:=@OUTPUT_ROOT@ 12467850SdougbJDK_TOPDIR:=@JDK_TOPDIR@ 125109993SdillonLANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@ 12667850SdougbCORBA_TOPDIR:=@CORBA_TOPDIR@ 12791193SdougbJAXP_TOPDIR:=@JAXP_TOPDIR@ 12867949SdougbJAXWS_TOPDIR:=@JAXWS_TOPDIR@ 12967949SdougbHOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@ 13067949SdougbNASHORN_TOPDIR:=@NASHORN_TOPDIR@ 13167949SdougbCOPYRIGHT_YEAR:=@COPYRIGHT_YEAR@ 13267949Sdougb 13368507Sdougb# New (JEP-223) version information 13467949Sdougb 13567949Sdougb## Building blocks of the version string 13667949Sdougb# First three version numbers, with well-specified meanings (numerical) 13767949SdougbVERSION_MAJOR := @VERSION_MAJOR@ 13867949SdougbVERSION_MINOR := @VERSION_MINOR@ 13967949SdougbVERSION_SECURITY := @VERSION_SECURITY@ 14067949Sdougb# Optional fourth element for use by OpenJDK consumers (numerical) 14167949SdougbVERSION_PATCH := @VERSION_PATCH@ 14267949Sdougb# The pre-release identifier (string) 14367949SdougbVERSION_PRE := @VERSION_PRE@ 14467949Sdougb# The build number (numerical) 14567949SdougbVERSION_BUILD := @VERSION_BUILD@ 14667850Sdougb# Optional build information (string) 14767859SdougbVERSION_OPT := @VERSION_OPT@ 14867850Sdougb 14967850Sdougb## Composite variables 15067850Sdougb# The version number as a dot separated sequence of numbers, e.g. 9.0.1 15167850SdougbVERSION_NUMBER := @VERSION_NUMBER@ 15277326Sdougb# VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions. 153109993SdillonVERSION_NUMBER_FOUR_POSITIONS := @VERSION_NUMBER_FOUR_POSITIONS@ 15467850Sdougb# The complete version string, with additional build information 15567850SdougbVERSION_STRING := @VERSION_STRING@ 15667850Sdougb# The short version string, without trailing zeroes and just PRE, if present. 15767850SdougbVERSION_SHORT := @VERSION_SHORT@ 15867850Sdougb# The Java specification version. It should be equal to version number. 15967859SdougbVERSION_SPECIFICATION := @VERSION_NUMBER@ 16067859Sdougb# A GA version is defined by the PRE string being empty. Rather than testing for 16167859Sdougb# that, this variable defines it with true/false. 16267850SdougbVERSION_IS_GA := @VERSION_IS_GA@ 16367850Sdougb 16467850Sdougb# Convenience CFLAGS settings for passing version information into native programs. 16567850SdougbVERSION_CFLAGS := \ 16667850Sdougb -DVERSION_MAJOR=$(VERSION_MAJOR) \ 16767850Sdougb -DVERSION_MINOR=$(VERSION_MINOR) \ 16867850Sdougb -DVERSION_SECURITY=$(VERSION_SECURITY) \ 16967850Sdougb -DVERSION_PATCH=$(VERSION_PATCH) \ 17067850Sdougb -DVERSION_PRE='"$(VERSION_PRE)"' \ 17167850Sdougb -DVERSION_BUILD=$(VERSION_BUILD) \ 17267850Sdougb -DVERSION_OPT='"$(VERSION_OPT)"' \ 17367850Sdougb -DVERSION_NUMBER='"$(VERSION_NUMBER)"' \ 17467850Sdougb -DVERSION_STRING='"$(VERSION_STRING)"' \ 17567850Sdougb -DVERSION_SHORT='"$(VERSION_SHORT)"' \ 17667850Sdougb -DVERSION_SPECIFICATION='"$(VERSION_SPECIFICATION)"' \ 17767850Sdougb # 17867850Sdougb 17967850Sdougb# Platform naming variables 18067850SdougbLAUNCHER_NAME:=@LAUNCHER_NAME@ 18167850SdougbPRODUCT_NAME:=@PRODUCT_NAME@ 18267850SdougbPRODUCT_SUFFIX:=@PRODUCT_SUFFIX@ 18367850SdougbJDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ 18467850SdougbCOMPANY_NAME:=@COMPANY_NAME@ 18567850SdougbMACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ 18667850SdougbMACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ 18767850Sdougb 18867850Sdougb# Different naming strings generated from the above information. 18967850SdougbRUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) 19067850Sdougb 19167850Sdougb# How to compile the code: release, fastdebug or slowdebug 19267850SdougbDEBUG_LEVEL:=@DEBUG_LEVEL@ 19367850Sdougb 19467850Sdougb# This is the JDK variant to build. 19567850Sdougb# The JDK variant is a name for a specific set of modules to be compiled for the JDK. 19667850SdougbJDK_VARIANT:=@JDK_VARIANT@ 19767850Sdougb 19867850Sdougb# Should we compile support for running with a graphical UI? (ie headful) 19967850Sdougb# Should we compile support for running without? (ie headless) 20067850SdougbSUPPORT_HEADFUL:=@SUPPORT_HEADFUL@ 20167850SdougbSUPPORT_HEADLESS:=@SUPPORT_HEADLESS@ 20267850Sdougb# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options. 20367850Sdougb@BUILD_HEADLESS@ 20467850Sdougb 20567859Sdougb# These are the libjvms that we want to build. 20667850Sdougb# The java launcher uses the default. 20767850Sdougb# The others can be selected by specifying -client -server -minimal1 -zero or -zeroshark 20867850Sdougb# on the java launcher command line. 20967850SdougbJVM_VARIANTS:=@JVM_VARIANTS@ 21067850SdougbJVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@ 21167850SdougbJVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@ 21267850SdougbJVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@ 21367850SdougbJVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ 21458910SalfredJVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ 21558910SalfredJVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ 21697960Sdougb 21797960Sdougb# Universal binaries on macosx 21897960SdougbMACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@ 21997960Sdougb 22097960Sdougb# Legacy setting: -debug or -fastdebug 22197960Sdougb# Still used in version string... 22252400SbillfBUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@ 22352400Sbillf 22452400Sbillf# JDK_OUTPUTDIR specifies where a working jvm is built. 22552400Sbillf# You can run $(JDK_OUTPUTDIR)/bin/java 22673651Sdougb# Though the layout of the contents of $(JDK_OUTPUTDIR) is not 22773651Sdougb# yet the same as a default installation. 22873651Sdougb# 22973651Sdougb# When you run "make install" it will create the standardized 23073651Sdougb# layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir. 23173651Sdougb# Then it will copy the contents of the jdk into the installation 23252400Sbillf# directory. 23352400Sbillf 23467949SdougbBUILD_OUTPUT:=@BUILD_OUTPUT@ 23552400Sbillf# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images 23652400SbillfSUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/support 23752400SbillfBUILDTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/buildtools 23852400Sbillf 23952400SbillfHOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot 24091193SdougbJDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk 24152400SbillfIMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images 24252400SbillfTESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make 24352400SbillfMAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support 244110377Sdougb# This does not get overridden in a bootcycle build 24552400SbillfCONFIGURESUPPORT_OUTPUTDIR:=@CONFIGURESUPPORT_OUTPUTDIR@ 24652400Sbillf 24752400SbillfHOTSPOT_DIST=@HOTSPOT_DIST@ 24852400Sbillf 24952400SbillfBUILD_HOTSPOT=@BUILD_HOTSPOT@ 25052400Sbillf 25152400Sbillf# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep 25252400Sbillf# it in sync. 25352400SbillfBOOT_JDK:=@BOOT_JDK@ 25452400Sbillf 25552400Sbillf# When compiling Java source to be run by the boot jdk 25652400Sbillf# use these extra flags, eg -source 6 -target 6 25752400SbillfBOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@ 25852400Sbillf 25952400Sbillf# Information about the build system 26052400SbillfNUM_CORES:=@NUM_CORES@ 26152400SbillfMEMORY_SIZE:=@MEMORY_SIZE@ 26252400Sbillf# Enable sjavac support = use a javac server, 26352400Sbillf# multi core javac compilation and dependency tracking. 26452400SbillfENABLE_SJAVAC:=@ENABLE_SJAVAC@ 26552400SbillfENABLE_JAVAC_SERVER:=@ENABLE_JAVAC_SERVER@ 26667949Sdougb# Store sjavac server synchronization files here, and 26767949Sdougb# the sjavac server log files. 26867949SdougbSJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers 26996045Sdougb 27096045Sdougb# Number of parallel jobs to use for compilation 27196045SdougbJOBS?=@JOBS@ 27291193SdougbTEST_JOBS?=@TEST_JOBS@ 27391193Sdougb 27496045Sdougb# Default make target 27596045SdougbDEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@ 27691193Sdougb 27752400SbillfFREETYPE_LIBS:=@FREETYPE_LIBS@ 27852400SbillfFREETYPE_CFLAGS:=@FREETYPE_CFLAGS@ 27952400SbillfFREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@ 28052400SbillfCUPS_CFLAGS:=@CUPS_CFLAGS@ 28152400SbillfALSA_LIBS:=@ALSA_LIBS@ 28252400SbillfALSA_CFLAGS:=@ALSA_CFLAGS@ 28352400SbillfLIBFFI_LIBS:=@LIBFFI_LIBS@ 28452400SbillfLIBFFI_CFLAGS:=@LIBFFI_CFLAGS@ 28552400Sbillf 28652400SbillfPACKAGE_PATH=@PACKAGE_PATH@ 28752400Sbillf 28852400Sbillf# Source file for cacerts 28952400SbillfCACERTS_FILE=@CACERTS_FILE@ 29052400Sbillf 29152400Sbillf# Enable unlimited crypto policy 29267949SdougbUNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@ 29367949Sdougb 29467949SdougbGCOV_ENABLED=@GCOV_ENABLED@ 29552400Sbillf 29652400Sbillf# Necessary additional compiler flags to compile X11 29752400SbillfX_CFLAGS:=@X_CFLAGS@ 29852400SbillfX_LIBS:=@X_LIBS@ 29952400Sbillf 30052400Sbillf# The lowest required version of macosx to enforce compatiblity for 30152400SbillfMACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 30252400Sbillf 30352400Sbillf# Toolchain type: gcc, clang, solstudio, lxc, microsoft... 30452400SbillfTOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@ 30552400SbillfTOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@ 30652400Sbillf 30752400Sbillf# Option used to tell the compiler whether to create 32- or 64-bit executables 30864467SbrianCOMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ 30952400SbillfCOMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ 31064467Sbrian 31167859Sdougb# Option used to pass a command file to the compiler 31252400SbillfCOMPILER_COMMAND_FILE_FLAG:=@COMPILER_COMMAND_FILE_FLAG@ 31352400Sbillf 31464467SbrianCC_OUT_OPTION:=@CC_OUT_OPTION@ 31564467SbrianEXE_OUT_OPTION:=@EXE_OUT_OPTION@ 31652400SbillfLD_OUT_OPTION:=@LD_OUT_OPTION@ 31752400SbillfAR_OUT_OPTION:=@AR_OUT_OPTION@ 31852400Sbillf 31952400Sbillf# Flags used for overriding the default opt setting for a C/C++ source file. 32052400SbillfC_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@ 32167859SdougbC_O_FLAG_HI:=@C_O_FLAG_HI@ 32267859SdougbC_O_FLAG_NORM:=@C_O_FLAG_NORM@ 32367859SdougbC_O_FLAG_NONE:=@C_O_FLAG_NONE@ 32452400SbillfCXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@ 32558910SalfredCXX_O_FLAG_HI:=@CXX_O_FLAG_HI@ 32652400SbillfCXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@ 32752400SbillfCXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@ 32858910Salfred 32964467SbrianC_FLAG_DEPS:=@C_FLAG_DEPS@ 33064467SbrianCXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ 33164467Sbrian 33258910SalfredDISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@ 33364467SbrianCFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ 33464467Sbrian 33564467Sbrian# A global flag (true or false) determining if native warnings are considered errors. 33664467SbrianWARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@ 33764467Sbrian 33864467SbrianCFLAGS_CCACHE:=@CFLAGS_CCACHE@ 33958910Salfred 34052400Sbillf# Tools that potentially need to be cross compilation aware. 34160420SbsdCC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@ 34252400Sbillf 34352400Sbillf# CFLAGS used to compile the jdk native libraries (C-code) 34458910SalfredCFLAGS_JDKLIB:=@CFLAGS_JDKLIB@ 34558910SalfredCXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ 34658910Salfred 34752400Sbillf# CFLAGS used to compile the jdk native launchers (C-code) 34852400SbillfCFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ 34958910SalfredCXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ 35052400Sbillf 35152400SbillfCXX:=@FIXPATH@ @CCACHE@ @ICECC@ @CXX@ 35252400Sbillf#CXXFLAGS:=@CXXFLAGS@ 35352400Sbillf 35452400SbillfCPP:=@FIXPATH@ @CPP@ 35552400Sbillf#CPPFLAGS:=@CPPFLAGS@ 35652400Sbillf 35752400Sbillf# The linker can be gcc or ld on unix systems, or link.exe on windows systems. 35852400SbillfLD:=@FIXPATH@ @LD@ 35952400Sbillf 36052400Sbillf# Xcode SDK path 36152400SbillfSDKROOT:=@SDKROOT@ 36252400Sbillf 36352400Sbillf# The linker on older SuSE distros (e.g. on SLES 10) complains with: 36452400Sbillf# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." 36552400Sbillf# if feeded with a version script which contains named tags. 36652400SbillfUSING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ 36752400Sbillf 36852400Sbillf# LDFLAGS used to link the jdk native libraries (C-code) 36952400SbillfLDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ 37052400SbillfJDKLIB_LIBS:=@JDKLIB_LIBS@ 37152400Sbillf 37296045Sdougb# LDFLAGS used to link the jdk native launchers (C-code) 37396045SdougbLDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@ 37496045SdougbJDKEXE_LIBS:=@JDKEXE_LIBS@ 375110377Sdougb 37696045Sdougb# LDFLAGS specific to C++ linking. 37796045SdougbLDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@ 37896045Sdougb 37996045Sdougb# Sometimes a different linker is needed for c++ libs 38096045SdougbLDCXX:=@FIXPATH@ @LDCXX@ 38196045Sdougb# The flags for linking libstdc++ linker. 38296045SdougbLIBCXX:=@LIBCXX@ 38396045Sdougb 38496045Sdougb# Compiler and linker flags used when building native tests 38596045SdougbCFLAGS_TESTLIB:=@CFLAGS_TESTLIB@ 38696045SdougbCXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@ 38796045SdougbCFLAGS_TESTEXE:=@CFLAGS_TESTEXE@ 38897380SdougbCXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@ 38997380SdougbLDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@ 39097380SdougbLDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@ 39196045Sdougb 39296045Sdougb# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the 39396045Sdougb# build platform. 39496045SdougbBUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ 39596045SdougbBUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ 39673651SdougbBUILD_LD:=@FIXPATH@ @BUILD_LD@ 39773651SdougbBUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@ 39873651SdougbBUILD_AS:=@FIXPATH@ @BUILD_AS@ 39973651SdougbBUILD_AR:=@FIXPATH@ @BUILD_AR@ 40099152SdougbBUILD_NM:=@FIXPATH@ @BUILD_NM@ 401101362SdougbBUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@ 402101362SdougbBUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@ 403101362Sdougb 40499152SdougbAS:=@FIXPATH@ @AS@ 40599152Sdougb 40652400Sbillf# AR is used to create a static library (is ar in unix, lib.exe in windows) 40752400SbillfAR:=@FIXPATH@ @AR@ 40852400SbillfARFLAGS:=@ARFLAGS@ 40952400Sbillf 41052400SbillfNM:=@NM@ 41152400SbillfGNM:=@GNM@ 41252400SbillfSTRIP:=@STRIP@ 41352400Sbillf 41452400SbillfLIPO:=@LIPO@ 41567859Sdougb 41652400Sbillf# Options to linker to specify a mapfile. 41752400Sbillf# (Note absence of := assignment, because we do not want to evaluate the macro body here) 41852400SbillfSET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@ 41952400Sbillf 42052400Sbillf# Options for C/CXX compiler to be used if linking is performed 42152400Sbillf# using reorder file 42252400SbillfC_FLAG_REORDER:=@C_FLAG_REORDER@ 42352400SbillfCXX_FLAG_REORDER:=@CXX_FLAG_REORDER@ 42452400Sbillf 42552400Sbillf# 42667859Sdougb# Options for generating debug symbols 42767859SdougbENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@ 42867859SdougbCFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ 42967859SdougbCXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ 43067859SdougbZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@ 43167859SdougbNATIVE_DEBUG_SYMBOLS:=@NATIVE_DEBUG_SYMBOLS@ 43267859SdougbDEBUG_BINARIES:=@DEBUG_BINARIES@ 43367859SdougbSTRIP_POLICY:=@STRIP_POLICY@ 43499152Sdougb 43567859Sdougb# 43652400Sbillf# Compress (or not) jars 43767859SdougbCOMPRESS_JARS=@COMPRESS_JARS@ 43867859Sdougb 43967859Sdougb# Options to linker to specify the library name. 44067859Sdougb# (Note absence of := assignment, because we do not want to evaluate the macro body here) 44167859SdougbSET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ 44267859Sdougb 44367859SdougbSHARED_LIBRARY_FLAGS=@SHARED_LIBRARY_FLAGS@ 44467859Sdougb 44567859Sdougb# Set origin using the linker, ie use the relative path to the dependent library to find the dependees. 44667859Sdougb# (Note absence of := assignment, because we do not want to evaluate the macro body here) 44767859SdougbSET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ 44867859SdougbSET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@ 44967859Sdougb 45067859Sdougb# Different OS:es have different ways of naming shared libraries. 45167859Sdougb# The SHARED_LIBRARY macro takes "verify" as and argument and returns: 45267859Sdougb# "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform. 45367859Sdougb# (Note absence of := assignment, because we do not want to evaluate the macro body here) 45467859SdougbSHARED_LIBRARY=@SHARED_LIBRARY@ 45567859SdougbSTATIC_LIBRARY=@STATIC_LIBRARY@ 45667859SdougbLIBRARY_PREFIX:=@LIBRARY_PREFIX@ 45752400SbillfSHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@ 45877323SdougbSTATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@ 45977323SdougbEXE_SUFFIX:=@EXE_SUFFIX@ 46052400SbillfOBJ_SUFFIX:=@OBJ_SUFFIX@ 46152400SbillfSTATIC_BUILD:=@STATIC_BUILD@ 46252400Sbillf 46352400SbillfSTRIPFLAGS:=@STRIPFLAGS@ 46452400Sbillf 46552400SbillfJAVA_FLAGS:=@JAVA_FLAGS@ 46652400SbillfJAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ 46752400SbillfJAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ 46852400SbillfJAVA_FLAGS_JAVAC:=@JAVA_FLAGS_JAVAC@ 46952400SbillfJAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@ 47052400SbillfSJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@ 47152400Sbillf 47252400Sbillf# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk 47352400Sbillf# for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD 47452400Sbillf# versions of the variables directly. 47552400SbillfJAVA_CMD:=@JAVA@ 47652400SbillfJAVAC_CMD:=@JAVAC@ 47752400SbillfJAVAH_CMD:=@JAVAH@ 47852400SbillfJAR_CMD:=@JAR@ 47952400SbillfJARSIGNER_CMD:=@JARSIGNER@ 48052400SbillfSJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@ 48152400Sbillf# These variables are meant to be used. They are defined with = instead of := to make 48252400Sbillf# it possible to override only the *_CMD variables. 48352400SbillfJAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) 48452400SbillfJAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) 48552400SbillfJAVA_JAVAC=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_JAVAC) $(JAVA_FLAGS) 48652400SbillfJAVAC=@FIXPATH@ $(JAVAC_CMD) 48797960SdougbJAVAH=@FIXPATH@ $(JAVAH_CMD) 48852400SbillfJAR=@FIXPATH@ $(JAR_CMD) 48952400SbillfJARSIGNER=@FIXPATH@ $(JARSIGNER_CMD) 49052400Sbillf# A specific java binary with specific options can be used to run 49191193Sdougb# the long running background sjavac servers and other long running tasks. 49291193SdougbSJAVAC_SERVER_JAVA=@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(SJAVAC_SERVER_JAVA_CMD) \ 49391193Sdougb $(SJAVAC_SERVER_JAVA_FLAGS) 49491193Sdougb 49591193Sdougb# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid 49691193Sdougb# overriding that value by using ?=. 49768507SdougbJAVAC_FLAGS?=@JAVAC_FLAGS@ 49891193Sdougb 49991193Sdougb# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... 50091193Sdougb# Use = assignment to be able to override in bootcycle-spec.gmk 50191193SdougbINTERIM_LANGTOOLS_JAR = $(BUILDTOOLS_OUTPUTDIR)/interim_langtools.jar 50291193SdougbINTERIM_LANGTOOLS_ARGS = "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTERIM_LANGTOOLS_JAR) 503105705SphkNEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main 50491193SdougbNEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main 50591193Sdougb 50691193Sdougb# Base flags for RC 50791193Sdougb# Guarding this against resetting value. Legacy make files include spec multiple 50891193Sdougb# times. 50991193Sdougbifndef RC_FLAGS 51091193Sdougb RC_FLAGS:=@RC_FLAGS@ 51191193Sdougbendif 51291193Sdougb 51391193Sdougb# Tools adhering to a minimal and common standard of posix compliance. 51491193SdougbAWK:=@AWK@ 51591193SdougbBASENAME:=@BASENAME@ 51691193SdougbCAT:=@CAT@ 51791193SdougbCCACHE:=@CCACHE@ 51891193Sdougb# CD is going away, but remains to cater for legacy makefiles. 51991193SdougbCD:=cd 52091193SdougbCHMOD:=@CHMOD@ 52152400SbillfCODESIGN:=@CODESIGN@ 52277323SdougbCOMM:=@COMM@ 52377323SdougbCP:=@CP@ 52477323SdougbCPIO:=@CPIO@ 52567949SdougbCUT:=@CUT@ 52667949SdougbDATE:=@DATE@ 52767949SdougbDIFF:=@DIFF@ 52867949SdougbDIRNAME:=@DIRNAME@ 52967949SdougbDSYMUTIL:=@DSYMUTIL@ 53067949SdougbFIND:=@FIND@ 53167949SdougbFIND_DELETE:=@FIND_DELETE@ 53267949SdougbECHO:=@ECHO@ 53367949SdougbEGREP:=@EGREP@ 53467949SdougbFGREP:=@FGREP@ 53597960SdougbGREP:=@GREP@ 536101348SdougbHEAD:=@HEAD@ 53767949SdougbLS:=@LS@ 53897960SdougbLN:=@LN@ 53967949SdougbMKDIR:=@MKDIR@ 54067949SdougbMV:=@MV@ 54167949SdougbNAWK:=@NAWK@ 54252534SbillfNICE:=@NICE@ 54352534SbillfPATCH:=@PATCH@ 54452534SbillfPRINTF:=@PRINTF@ 54596045SdougbPWD:=@THEPWDCMD@ 54652534SbillfRM:=@RM@ 54752534SbillfRMDIR:=@RMDIR@ 54852534SbillfSED:=@SED@ 54965115SbenSH:=@SH@ 55068507SdougbSORT:=@SORT@ 55191193SdougbTAR:=@TAR@ 55265115SbenTAIL:=@TAIL@ 55365115SbenTEE:=@TEE@ 55452400SbillfTIME:=@TIME@ 55552400SbillfIS_GNU_TIME:=@IS_GNU_TIME@ 55652400SbillfTR:=@TR@ 55777478SdougbTOUCH:=@TOUCH@ 55877478SdougbUNIQ:=@UNIQ@ 55977478SdougbWC:=@WC@ 56077478SdougbXARGS:=@XARGS@ 56191193SdougbZIPEXE:=@ZIP@ 56277478SdougbZIP:=@ZIP@ 56394196SdougbUNZIP:=@UNZIP@ 56496045SdougbMT:=@FIXPATH@ @MT@ 56594196SdougbRC:=@FIXPATH@ @RC@ 56652400SbillfDUMPBIN:=@FIXPATH@ @DUMPBIN@ 56752400SbillfCYGPATH:=@CYGPATH@ 56898084SdougbLDD:=@LDD@ 56998084SdougbOTOOL:=@OTOOL@ 57052400SbillfREADELF:=@READELF@ 57198084SdougbEXPR:=@EXPR@ 57298084SdougbFILE:=@FILE@ 57352400SbillfHG:=@HG@ 57477335SdougbOBJCOPY:=@OBJCOPY@ 57552400SbillfSETFILE:=@SETFILE@ 57652400SbillfXATTR:=@XATTR@ 57798084SdougbJT_HOME:=@JT_HOME@ 57898084SdougbJTREGEXE:=@JTREGEXE@ 57998084SdougbXCODEBUILD=@XCODEBUILD@ 58098084SdougbFIXPATH:=@FIXPATH@ 58198084Sdougb 58252400Sbillf# Build setup 58398084SdougbENABLE_JFR=@ENABLE_JFR@ 58498084SdougbENABLE_INTREE_EC=@ENABLE_INTREE_EC@ 58598084SdougbUSE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ 58698084SdougbUSE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ 58797960SdougbUSE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ 58898084SdougbLIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ 58998084SdougbMSVCR_DLL:=@MSVCR_DLL@ 59098084SdougbMSVCP_DLL:=@MSVCP_DLL@ 59198084Sdougb 59252400Sbillf#################################################### 59352400Sbillf# 59452400Sbillf# INSTALLATION 59598084Sdougb# 59652400Sbillf 59798084Sdougb# Common prefix for all installed files. Defaults to /usr/local, 59898084Sdougb# but /opt/myjdk is another common version. 59967949SdougbINSTALL_PREFIX=@prefix@ 60052400Sbillf 60167949Sdougb# Directories containing architecture-dependent files should be relative to exec_prefix 60252400SbillfINSTALL_EXECPREFIX=@exec_prefix@ 60367949Sdougb 60467949Sdougb# java,javac,javah,javap etc are installed here. 60567949SdougbINSTALL_BINDIR=@bindir@ 60667949Sdougb 60767949Sdougb# Read only architecture-independent data 60867949SdougbINSTALL_DATADIR=@datadir@ 60967949Sdougb 61067949Sdougb# Root of above. 61167949SdougbINSTALL_DATAROOTDIR=@datarootdir@ 61252400Sbillf 61352400Sbillf# Doc files, other than info and man. 61467859SdougbINSTALL_DOCDIR=@docdir@ 61567859Sdougb 61667859Sdougb# Html documentation 61752400SbillfINSTALL_HTMLDIR=@htmldir@ 61852400Sbillf 61952400Sbillf# Installing C header files, JNI headers for example. 62052400SbillfINSTALL_INCLUDEDIR=@includedir@ 62152400Sbillf 62252400Sbillf# Installing library files.... 62352400SbillfINSTALL_INCLUDEDIR=@libdir@ 62452400Sbillf 62552400Sbillf# Executables that other programs run. 62652400SbillfINSTALL_LIBEXECDIR=@libexecdir@ 62752400Sbillf 62852400Sbillf# Locale-dependent but architecture-independent data, such as message catalogs. 62952400SbillfINSTALL_LOCALEDIR=@localedir@ 63052400Sbillf 63198084Sdougb# Modifiable single-machine data 63252400SbillfINSTALL_LOCALSTATEDIR=@localstatedir@ 63352400Sbillf 63478490Sdougb# Man pages 63578490SdougbINSTALL_MANDIR=@mandir@ 63691193Sdougb 63778490Sdougb# Modifiable architecture-independent data. 63878490SdougbINSTALL_SHAREDSTATEDIR=@sharedstatedir@ 63998084Sdougb 64098084Sdougb# Read-only single-machine data 64198084SdougbINSTALL_SYSCONFDIR=@sysconfdir@ 64298084Sdougb 64398084Sdougb#################################################### 64498084Sdougb# 64598084Sdougb# Libraries 64698084Sdougb# 64752400Sbillf 64852400SbillfUSE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@ 64952400SbillfLCMS_CFLAGS:=@LCMS_CFLAGS@ 65052400SbillfLCMS_LIBS:=@LCMS_LIBS@ 65167949Sdougb 65252400SbillfUSE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ 65352400SbillfPNG_LIBS:=@PNG_LIBS@ 65452400SbillfPNG_CFLAGS:=@PNG_CFLAGS@ 65552400Sbillf 65652400Sbillf 65752400Sbillf#################################################### 65867949Sdougb# 65998084Sdougb# Misc 66067949Sdougb# 66152400Sbillf 66252400SbillfINCLUDE_SA=@INCLUDE_SA@ 66398084Sdougb 66452400SbillfOS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ 66552400SbillfOS_VERSION_MINOR:=@OS_VERSION_MINOR@ 66652400SbillfOS_VERSION_MICRO:=@OS_VERSION_MICRO@ 66764625Sgshapiro 66852400Sbillf# Images directory definitions 66952400SbillfJDK_IMAGE_SUBDIR:=jdk 67052400SbillfJRE_IMAGE_SUBDIR:=jre 67152400Sbillf 67252400Sbillf# Colon left out to be able to override output dir for bootcycle-images 67352400SbillfJDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) 67478490SdougbJRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) 67552400Sbillf 67652400Sbillf# Test image, as above 67752400SbillfTEST_IMAGE_SUBDIR:=test 67852400SbillfTEST_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) 67977335Sdougb 68077335Sdougb# Symbols image 68152400SbillfSYMBOLS_IMAGE_SUBDIR:=symbols 68252400SbillfSYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) 68367859Sdougb 68467859Sdougb# Macosx bundles directory definitions 68567859SdougbJDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle/jdk-$(VERSION_NUMBER).jdk/Contents 68667859SdougbJRE_MACOSX_BUNDLE_SUBDIR=jre-bundle/jre-$(VERSION_NUMBER).jre/Contents 68767859SdougbJDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) 68852400SbillfJRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) 68952400Sbillf 69052400Sbillf# This macro is called to allow inclusion of closed source counterparts. 69152400Sbillf# Unless overridden in closed sources, it expands to nothing. 69252400Sbillf# Usage: This function is called in an open makefile, with the following 69352400Sbillf# arguments: 69467949Sdougb# $1 the name of the repo, or empty if the top-level repo. 69552400Sbillf# $2 the name of the makefile 69652400Sbillfdefine IncludeCustomExtension 69752400Sbillfendef 69867859Sdougb 69967859Sdougb# Include the custom-spec.gmk file if it exists 70077335Sdougb-include $(dir @SPEC@)/custom-spec.gmk 70177335Sdougb