spec.gmk.in revision 2369:66b770c85156
1203319Sweongyo# 2203319Sweongyo# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 3203319Sweongyo# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4203319Sweongyo# 5203319Sweongyo# This code is free software; you can redistribute it and/or modify it 6203319Sweongyo# under the terms of the GNU General Public License version 2 only, as 7203319Sweongyo# published by the Free Software Foundation. Oracle designates this 8203319Sweongyo# particular file as subject to the "Classpath" exception as provided 9203319Sweongyo# by Oracle in the LICENSE file that accompanied this code. 10203319Sweongyo# 11203319Sweongyo# This code is distributed in the hope that it will be useful, but WITHOUT 12203319Sweongyo# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13203319Sweongyo# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14203319Sweongyo# version 2 for more details (a copy is included in the LICENSE file that 15203319Sweongyo# accompanied this code). 16203319Sweongyo# 17203319Sweongyo# You should have received a copy of the GNU General Public License version 18203319Sweongyo# 2 along with this work; if not, write to the Free Software Foundation, 19203319Sweongyo# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20203319Sweongyo# 21203319Sweongyo# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22203319Sweongyo# or visit www.oracle.com if you need additional information or have any 23203319Sweongyo# questions. 24203319Sweongyo# 25203319Sweongyo 26203319Sweongyo# Configured @DATE_WHEN_CONFIGURED@ to build 27203319Sweongyo# for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@ 28203319Sweongyo# (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf) 29203319Sweongyo# on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@ 30203319Sweongyo# (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf) 31203319Sweongyo# using 'configure @CONFIGURE_COMMAND_LINE@' 32203319Sweongyo 33203319Sweongyo# The command line given to configure. 34203319SweongyoCONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@ 35203319Sweongyo 36203319Sweongyo# A self-referential reference to this file. 37203319SweongyoSPEC:=@SPEC@ 38203319Sweongyo 39203319Sweongyo# SPACE and COMMA are defined in MakeBase.gmk, but they are also used in 40203319Sweongyo# some definitions here, and are needed if MakeBase.gmk is not included before 41203319Sweongyo# this file. 42203319SweongyoX:= 43203319SweongyoSPACE:=$(X) $(X) 44203319SweongyoCOMMA:=, 45203319Sweongyo 46203319Sweongyo# What make to use for main processing, after bootstrapping top-level Makefile. 47203319SweongyoMAKE := @MAKE@ 48203319Sweongyo 49203319Sweongyo# The default make arguments 50203319SweongyoMAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ 51203319Sweongyo MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL) 52203319Sweongyo 53203319SweongyoOUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@ 54203319SweongyoOUTPUT_SYNC:=@OUTPUT_SYNC@ 55203319Sweongyo 56203319Sweongyo# Override the shell with bash 57203319SweongyoBASH:=@BASH@ 58203319SweongyoBASH_ARGS:=@BASH_ARGS@ 59203319SweongyoSHELL:=$(BASH) $(BASH_ARGS) 60203319Sweongyo 61203319Sweongyo# The "human readable" name of this configuration 62203319SweongyoCONF_NAME:=@CONF_NAME@ 63203319Sweongyo 64203319Sweongyo# The built jdk will run in this target system. 65203319SweongyoOPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ 66203319SweongyoOPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@ 67203319SweongyoOPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ 68203319Sweongyo 69203319SweongyoOPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ 70203319SweongyoOPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ 71203319SweongyoOPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ 72203319SweongyoOPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ 73203319Sweongyo 74203319SweongyoCOMPILE_TYPE:=@COMPILE_TYPE@ 75203319Sweongyo 76203319Sweongyo# Legacy support 77203319SweongyoOPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@ 78203319SweongyoOPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@ 79203319SweongyoOPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@ 80203319SweongyoOPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@ 81203319SweongyoOPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@ 82203319SweongyoOPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@ 83203319SweongyoOPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@ 84203319Sweongyo 85203319SweongyoHOTSPOT_TARGET_OS := @HOTSPOT_TARGET_OS@ 86203319SweongyoHOTSPOT_TARGET_OS_TYPE := @HOTSPOT_TARGET_OS_TYPE@ 87203319Sweongyo 88203319SweongyoHOTSPOT_TARGET_CPU := @HOTSPOT_TARGET_CPU@ 89203319SweongyoHOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@ 90203319SweongyoHOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@ 91203319Sweongyo 92203319SweongyoOPENJDK_TARGET_CPU_BUNDLE:=@OPENJDK_TARGET_CPU_BUNDLE@ 93203319SweongyoOPENJDK_TARGET_OS_BUNDLE:=@OPENJDK_TARGET_OS_BUNDLE@ 94203319SweongyoOPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@ 95203319Sweongyo 96203319Sweongyo# We are building on this build system. 97203319Sweongyo# When not cross-compiling, it is the same as the target. 98203319SweongyoOPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@ 99203319SweongyoOPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@ 100203319SweongyoOPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@ 101203319Sweongyo 102203319SweongyoOPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@ 103203319SweongyoOPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@ 104203319SweongyoOPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ 105203319SweongyoOPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ 106203319Sweongyo 107203319Sweongyo# Legacy OS values for use in release file. 108203319SweongyoREQUIRED_OS_NAME:=@REQUIRED_OS_NAME@ 109203319SweongyoREQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@ 110203319Sweongyo 111203319SweongyoLIBM:=@LIBM@ 112203319SweongyoLIBDL:=@LIBDL@ 113203319Sweongyo 114203319Sweongyo# colon or semicolon 115203319SweongyoPATH_SEP:=@PATH_SEP@ 116203319Sweongyo 117203319Sweongyo# Save the original path before replacing it with the Visual Studio tools 118203319SweongyoORIGINAL_PATH:=@ORIGINAL_PATH@ 119203319Sweongyoifeq ($(OPENJDK_TARGET_OS), windows) 120203319Sweongyo # On Windows, the Visual Studio toolchain needs the PATH to be adjusted 121203319Sweongyo # to include Visual Studio tools (this needs to be in cygwin/msys style). 122203319Sweongyo export PATH:=@VS_PATH@ 123203319Sweongyoendif 124203319Sweongyo 125203319SweongyoSYSROOT_CFLAGS := @SYSROOT_CFLAGS@ 126203319SweongyoSYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@ 127203319Sweongyo 128203319Sweongyo# The top-level directory of the forest (SRC_ROOT is a traditional alias) 129203319SweongyoTOPDIR:=@TOPDIR@ 130203319Sweongyo# These two versions of TOPDIR are used in string comparisons 131203319SweongyoORIGINAL_TOPDIR:=@ORIGINAL_TOPDIR@ 132203319SweongyoCANONICAL_TOPDIR:=@CANONICAL_TOPDIR@ 133203319SweongyoSRC_ROOT:=@TOPDIR@ 134203319Sweongyo 135203319SweongyoOUTPUT_ROOT:=@OUTPUT_ROOT@ 136204922SweongyoJDK_TOPDIR:=@JDK_TOPDIR@ 137204922SweongyoLANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@ 138204922SweongyoCORBA_TOPDIR:=@CORBA_TOPDIR@ 139204922SweongyoJAXP_TOPDIR:=@JAXP_TOPDIR@ 140204922SweongyoJAXWS_TOPDIR:=@JAXWS_TOPDIR@ 141204922SweongyoHOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@ 142204922SweongyoNASHORN_TOPDIR:=@NASHORN_TOPDIR@ 143203319Sweongyo 144203319SweongyoIMPORT_MODULES_CLASSES:=@IMPORT_MODULES_CLASSES@ 145203319SweongyoIMPORT_MODULES_CMDS:=@IMPORT_MODULES_CMDS@ 146203319SweongyoIMPORT_MODULES_LIBS:=@IMPORT_MODULES_LIBS@ 147203319SweongyoIMPORT_MODULES_CONF:=@IMPORT_MODULES_CONF@ 148203319SweongyoIMPORT_MODULES_SRC:=@IMPORT_MODULES_SRC@ 149203319SweongyoIMPORT_MODULES_MAKE:=@IMPORT_MODULES_MAKE@ 150203319Sweongyo 151203319SweongyoCOPYRIGHT_YEAR:=@COPYRIGHT_YEAR@ 152203319Sweongyo 153203319Sweongyo# New (JEP-223) version information 154203319Sweongyo 155203319Sweongyo## Building blocks of the version string 156203319Sweongyo# First three version numbers, with well-specified meanings (numerical) 157203319SweongyoVERSION_MAJOR := @VERSION_MAJOR@ 158203319SweongyoVERSION_MINOR := @VERSION_MINOR@ 159203319SweongyoVERSION_SECURITY := @VERSION_SECURITY@ 160203319Sweongyo# Optional fourth element for use by OpenJDK consumers (numerical) 161203319SweongyoVERSION_PATCH := @VERSION_PATCH@ 162203319Sweongyo# The pre-release identifier (string) 163203319SweongyoVERSION_PRE := @VERSION_PRE@ 164203319Sweongyo# The build number (numerical) 165203319SweongyoVERSION_BUILD := @VERSION_BUILD@ 166203319Sweongyo# Optional build information (string) 167203319SweongyoVERSION_OPT := @VERSION_OPT@ 168203319Sweongyo 169203319Sweongyo## Composite variables 170203319Sweongyo# The version number as a dot separated sequence of numbers, e.g. 9.0.1 171203319SweongyoVERSION_NUMBER := @VERSION_NUMBER@ 172203319Sweongyo# VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions. 173203319SweongyoVERSION_NUMBER_FOUR_POSITIONS := @VERSION_NUMBER_FOUR_POSITIONS@ 174203319Sweongyo# The complete version string, with additional build information 175203319SweongyoVERSION_STRING := @VERSION_STRING@ 176203319Sweongyo# The short version string, without trailing zeroes and just PRE, if present. 177203319SweongyoVERSION_SHORT := @VERSION_SHORT@ 178203319Sweongyo# The Java specification version. It usually equals the major version number. 179203319SweongyoVERSION_SPECIFICATION := @VERSION_MAJOR@ 180203319Sweongyo# A GA version is defined by the PRE string being empty. Rather than testing for 181203319Sweongyo# that, this variable defines it with true/false. 182203319SweongyoVERSION_IS_GA := @VERSION_IS_GA@ 183203319Sweongyo 184203319Sweongyo# Convenience CFLAGS settings for passing version information into native programs. 185203319SweongyoVERSION_CFLAGS := \ 186203319Sweongyo -DVERSION_MAJOR=$(VERSION_MAJOR) \ 187203319Sweongyo -DVERSION_MINOR=$(VERSION_MINOR) \ 188203319Sweongyo -DVERSION_SECURITY=$(VERSION_SECURITY) \ 189203319Sweongyo -DVERSION_PATCH=$(VERSION_PATCH) \ 190203319Sweongyo -DVERSION_PRE='"$(VERSION_PRE)"' \ 191204922Sweongyo -DVERSION_BUILD=$(VERSION_BUILD) \ 192203319Sweongyo -DVERSION_OPT='"$(VERSION_OPT)"' \ 193203319Sweongyo -DVERSION_NUMBER='"$(VERSION_NUMBER)"' \ 194203319Sweongyo -DVERSION_STRING='"$(VERSION_STRING)"' \ 195203319Sweongyo -DVERSION_SHORT='"$(VERSION_SHORT)"' \ 196203319Sweongyo -DVERSION_SPECIFICATION='"$(VERSION_SPECIFICATION)"' \ 197203319Sweongyo # 198203319Sweongyo 199203319Sweongyo# Platform naming variables 200203319SweongyoLAUNCHER_NAME:=@LAUNCHER_NAME@ 201203319SweongyoPRODUCT_NAME:=@PRODUCT_NAME@ 202203319SweongyoPRODUCT_SUFFIX:=@PRODUCT_SUFFIX@ 203203319SweongyoJDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ 204204922SweongyoCOMPANY_NAME:=@COMPANY_NAME@ 205203319SweongyoHOTSPOT_VM_DISTRO:=@HOTSPOT_VM_DISTRO@ 206203319SweongyoMACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ 207203319SweongyoMACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ 208204657SweongyoUSERNAME:=@USERNAME@ 209204922Sweongyo 210204922Sweongyo# Different naming strings generated from the above information. 211204657SweongyoRUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) 212203319Sweongyo 213203319Sweongyo# How to compile the code: release, fastdebug or slowdebug 214203319SweongyoDEBUG_LEVEL:=@DEBUG_LEVEL@ 215203319SweongyoHOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@ 216203319Sweongyo 217227701Shselasky# This is the JDK variant to build. 218227849Shselasky# The JDK variant is a name for a specific set of modules to be compiled for the JDK. 219203319SweongyoJDK_VARIANT:=@JDK_VARIANT@ 220203319Sweongyo 221203319Sweongyo# Which JVM variants to build (space-separated list) 222203319SweongyoJVM_VARIANTS := @JVM_VARIANTS@ 223203319Sweongyo 224203319Sweongyo# Lists of features per variant. Only relevant for the variants listed in 225203319Sweongyo# JVM_VARIANTS. 226203319SweongyoJVM_FEATURES_server := @JVM_FEATURES_server@ 227203319SweongyoJVM_FEATURES_client := @JVM_FEATURES_client@ 228203319SweongyoJVM_FEATURES_core := @JVM_FEATURES_core@ 229203319SweongyoJVM_FEATURES_minimal := @JVM_FEATURES_minimal@ 230203319SweongyoJVM_FEATURES_zero := @JVM_FEATURES_zero@ 231203319SweongyoJVM_FEATURES_zeroshark := @JVM_FEATURES_zeroshark@ 232203319SweongyoJVM_FEATURES_custom := @JVM_FEATURES_custom@ 233203319Sweongyo 234203319Sweongyo# Used for make-time verifications 235203319SweongyoVALID_JVM_FEATURES := @VALID_JVM_FEATURES@ 236203319SweongyoVALID_JVM_VARIANTS := @VALID_JVM_VARIANTS@ 237203319Sweongyo 238203319Sweongyo# Control wether Hotspot builds gtest tests 239203319SweongyoBUILD_GTEST := @BUILD_GTEST@ 240203319Sweongyo 241203319Sweongyo# Control use of precompiled header in hotspot libjvm build 242203319SweongyoUSE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@ 243203319Sweongyo 244203319Sweongyo# Only build headless support or not 245203319SweongyoENABLE_HEADLESS_ONLY := @ENABLE_HEADLESS_ONLY@ 246203319Sweongyo 247203319Sweongyo# JDK_OUTPUTDIR specifies where a working jvm is built. 248203319Sweongyo# You can run $(JDK_OUTPUTDIR)/bin/java 249203319Sweongyo# Though the layout of the contents of $(JDK_OUTPUTDIR) is not 250203319Sweongyo# yet the same as a default installation. 251203319Sweongyo# 252203319Sweongyo# When you run "make install" it will create the standardized 253203319Sweongyo# layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir. 254203319Sweongyo# Then it will copy the contents of the jdk into the installation 255203319Sweongyo# directory. 256203319Sweongyo 257203319SweongyoBUILD_OUTPUT:=@BUILD_OUTPUT@ 258203319Sweongyo# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images 259203319SweongyoSUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/support 260203319SweongyoBUILDTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/buildtools 261203319Sweongyo 262203319SweongyoHOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot 263203319SweongyoJDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk 264203319SweongyoIMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images 265203319SweongyoBUNDLES_OUTPUTDIR=$(BUILD_OUTPUT)/bundles 266203319SweongyoTESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make 267203319SweongyoMAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support 268203319Sweongyo 269203319Sweongyo# By default, output javadoc directly into image 270203319SweongyoJAVADOC_OUTPUTDIR = $(DOCS_IMAGE_DIR) 271203319Sweongyo 272203319Sweongyo# This does not get overridden in a bootcycle build 273204657SweongyoCONFIGURESUPPORT_OUTPUTDIR:=@CONFIGURESUPPORT_OUTPUTDIR@ 274203319SweongyoBUILDJDK_OUTPUTDIR=$(BUILD_OUTPUT)/buildjdk 275203319Sweongyo 276203319SweongyoHOTSPOT_DIST=@HOTSPOT_DIST@ 277203319Sweongyo 278203319SweongyoBUILD_HOTSPOT=@BUILD_HOTSPOT@ 279203319Sweongyo 280203319SweongyoBUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@ 281203319Sweongyo 282203319SweongyoENABLE_GENERATE_CLASSLIST := @ENABLE_GENERATE_CLASSLIST@ 283203319Sweongyo 284203319Sweongyo# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep 285203319Sweongyo# it in sync. 286203319SweongyoBOOT_JDK:=@BOOT_JDK@ 287203319Sweongyo 288203319SweongyoBUILD_JDK:=@BUILD_JDK@ 289203319SweongyoCREATE_BUILDJDK:=@CREATE_BUILDJDK@ 290203319SweongyoEXTERNAL_BUILDJDK:=@EXTERNAL_BUILDJDK@ 291203319Sweongyo 292203319Sweongyo# When compiling Java source to be run by the boot jdk 293203319Sweongyo# use these extra flags, eg -source 6 -target 6 294203319SweongyoBOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@ 295203319Sweongyo 296203319Sweongyo# Information about the build system 297203319SweongyoNUM_CORES:=@NUM_CORES@ 298203319SweongyoMEMORY_SIZE:=@MEMORY_SIZE@ 299203319Sweongyo# Enable sjavac support = use a javac server, 300203319Sweongyo# multi core javac compilation and dependency tracking. 301203319SweongyoENABLE_SJAVAC:=@ENABLE_SJAVAC@ 302203319SweongyoENABLE_JAVAC_SERVER:=@ENABLE_JAVAC_SERVER@ 303203319Sweongyo# Store sjavac server synchronization files here, and 304203319Sweongyo# the sjavac server log files. 305203319SweongyoSJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers 306203319Sweongyo 307203319Sweongyo# Number of parallel jobs to use for compilation 308203319SweongyoJOBS?=@JOBS@ 309203319SweongyoTEST_JOBS?=@TEST_JOBS@ 310203319Sweongyo 311203319Sweongyo# Default make target 312203319SweongyoDEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@ 313203319Sweongyo 314203319SweongyoFREETYPE_LIBS:=@FREETYPE_LIBS@ 315203319SweongyoFREETYPE_CFLAGS:=@FREETYPE_CFLAGS@ 316203319SweongyoFREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@ 317203319SweongyoCUPS_CFLAGS:=@CUPS_CFLAGS@ 318203319SweongyoALSA_LIBS:=@ALSA_LIBS@ 319203319SweongyoALSA_CFLAGS:=@ALSA_CFLAGS@ 320203319SweongyoLIBFFI_LIBS:=@LIBFFI_LIBS@ 321203319SweongyoLIBFFI_CFLAGS:=@LIBFFI_CFLAGS@ 322203319SweongyoENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@ 323203319SweongyoLIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@ 324203319Sweongyo 325203319SweongyoPACKAGE_PATH=@PACKAGE_PATH@ 326203319Sweongyo 327203319Sweongyo# Source file for cacerts 328203319SweongyoCACERTS_FILE=@CACERTS_FILE@ 329203319Sweongyo 330203319Sweongyo# Enable unlimited crypto policy 331203319SweongyoUNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@ 332203319Sweongyo 333203319SweongyoGCOV_ENABLED=@GCOV_ENABLED@ 334203319Sweongyo 335203319Sweongyo# Necessary additional compiler flags to compile X11 336203319SweongyoX_CFLAGS:=@X_CFLAGS@ 337203319SweongyoX_LIBS:=@X_LIBS@ 338203319Sweongyo 339203319Sweongyo# The lowest required version of macosx to enforce compatiblity for 340203319SweongyoMACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 341203319Sweongyo 342203319Sweongyo# Toolchain type: gcc, clang, solstudio, lxc, microsoft... 343203319SweongyoTOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@ 344203319SweongyoTOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@ 345203319SweongyoCC_VERSION_NUMBER := @CC_VERSION_NUMBER@ 346203319SweongyoCXX_VERSION_NUMBER := @CXX_VERSION_NUMBER@ 347203319Sweongyo 348203319Sweongyo# Legacy support 349203319SweongyoHOTSPOT_TOOLCHAIN_TYPE := @HOTSPOT_TOOLCHAIN_TYPE@ 350203319Sweongyo 351203319Sweongyo# Option used to tell the compiler whether to create 32- or 64-bit executables 352203319SweongyoCOMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ 353203319SweongyoCOMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ 354203319Sweongyo 355203319Sweongyo# Option used to pass a command file to the compiler 356203319SweongyoCOMPILER_COMMAND_FILE_FLAG:=@COMPILER_COMMAND_FILE_FLAG@ 357219902Sjhb 358203319Sweongyo# Option for specifying a file which saves the binder commands 359203319Sweongyo# produced by the link step (for debugging, currently AIX only) 360203319SweongyoCOMPILER_BINDCMD_FILE_FLAG:=@COMPILER_BINDCMD_FILE_FLAG@ 361203319Sweongyo 362203319SweongyoCC_OUT_OPTION:=@CC_OUT_OPTION@ 363203319SweongyoEXE_OUT_OPTION:=@EXE_OUT_OPTION@ 364203319SweongyoLD_OUT_OPTION:=@LD_OUT_OPTION@ 365203319SweongyoAR_OUT_OPTION:=@AR_OUT_OPTION@ 366203319Sweongyo 367203319Sweongyo# Flags used for overriding the default opt setting for a C/C++ source file. 368203319SweongyoC_O_FLAG_HIGHEST_JVM:=@C_O_FLAG_HIGHEST_JVM@ 369203319SweongyoC_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@ 370203319SweongyoC_O_FLAG_HI:=@C_O_FLAG_HI@ 371203319SweongyoC_O_FLAG_NORM:=@C_O_FLAG_NORM@ 372203319SweongyoC_O_FLAG_NONE:=@C_O_FLAG_NONE@ 373203319SweongyoC_O_FLAG_SIZE:=@C_O_FLAG_SIZE@ 374203319SweongyoCXX_O_FLAG_HIGHEST_JVM:=@CXX_O_FLAG_HIGHEST_JVM@ 375203319SweongyoCXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@ 376203319SweongyoCXX_O_FLAG_HI:=@CXX_O_FLAG_HI@ 377203319SweongyoCXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@ 378203319SweongyoCXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@ 379203319SweongyoCXX_O_FLAG_SIZE:=@CXX_O_FLAG_SIZE@ 380203319Sweongyo 381203319SweongyoC_FLAG_DEPS:=@C_FLAG_DEPS@ 382203319SweongyoCXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ 383203319Sweongyo 384204657SweongyoDISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@ 385204657SweongyoCFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ 386204657Sweongyo 387204657Sweongyo# A global flag (true or false) determining if native warnings are considered errors. 388204657SweongyoWARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@ 389204657Sweongyo 390204657SweongyoCFLAGS_CCACHE:=@CFLAGS_CCACHE@ 391204657SweongyoCXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@ 392203319Sweongyo 393203319Sweongyo# Tools that potentially need to be cross compilation aware. 394203319SweongyoCC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@ 395203319Sweongyo 396203319Sweongyo# CFLAGS used to compile the jdk native libraries (C-code) 397203319SweongyoCFLAGS_JDKLIB:=@CFLAGS_JDKLIB@ 398203319SweongyoCXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ 399203319Sweongyo 400203319Sweongyo# CFLAGS used to compile the jdk native launchers (C-code) 401203319SweongyoCFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ 402203319SweongyoCXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ 403203319Sweongyo 404203319SweongyoLDFLAGS_HASH_STYLE := @LDFLAGS_HASH_STYLE@ 405203319Sweongyo 406203319SweongyoJVM_CFLAGS := @JVM_CFLAGS@ 407203319SweongyoJVM_CFLAGS_SYMBOLS := @JVM_CFLAGS_SYMBOLS@ 408203319SweongyoJVM_LDFLAGS := @JVM_LDFLAGS@ 409203319SweongyoJVM_ASFLAGS := @JVM_ASFLAGS@ 410203319SweongyoJVM_LIBS := @JVM_LIBS@ 411203319SweongyoJVM_RCFLAGS := @JVM_RCFLAGS@ 412203319Sweongyo 413203319Sweongyo# Flags for zeroshark 414203319SweongyoLLVM_CFLAGS := @LLVM_CFLAGS@ 415203319SweongyoLLVM_LIBS := @LLVM_LIBS@ 416203319SweongyoLLVM_LDFLAGS := @LLVM_LDFLAGS@ 417203319Sweongyo 418203319Sweongyo# These flags might contain variables set by a custom extension that is included later. 419203319SweongyoEXTRA_CFLAGS = @EXTRA_CFLAGS@ 420203319SweongyoEXTRA_CXXFLAGS = @EXTRA_CXXFLAGS@ 421203319SweongyoEXTRA_LDFLAGS = @EXTRA_LDFLAGS@ 422203319Sweongyo 423203319SweongyoCXX:=@FIXPATH@ @CCACHE@ @ICECC@ @CXX@ 424203319Sweongyo 425203319SweongyoCPP:=@FIXPATH@ @CPP@ 426203319Sweongyo 427203319Sweongyo# The linker can be gcc or ld on unix systems, or link.exe on windows systems. 428203319SweongyoLD:=@FIXPATH@ @LD@ 429203319Sweongyo 430203319Sweongyo# Xcode SDK path 431203319SweongyoSDKROOT:=@SDKROOT@ 432203319Sweongyo 433203319Sweongyo# The linker on older SuSE distros (e.g. on SLES 10) complains with: 434203319Sweongyo# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." 435203319Sweongyo# if feeded with a version script which contains named tags. 436203319SweongyoUSING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ 437203319Sweongyo 438203319Sweongyo# LDFLAGS used to link the jdk native libraries (C-code) 439203319SweongyoLDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ 440203319SweongyoJDKLIB_LIBS:=@JDKLIB_LIBS@ 441203319Sweongyo 442203319Sweongyo# LDFLAGS used to link the jdk native launchers (C-code) 443203319SweongyoLDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@ 444203319SweongyoJDKEXE_LIBS:=@JDKEXE_LIBS@ 445203319Sweongyo 446203319Sweongyo# LDFLAGS specific to C++ linking. 447203319SweongyoLDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@ 448203319Sweongyo 449203319Sweongyo# Sometimes a different linker is needed for c++ libs 450203319SweongyoLDCXX:=@FIXPATH@ @LDCXX@ 451203319Sweongyo# The flags for linking libstdc++ linker. 452203319SweongyoLIBCXX:=@LIBCXX@ 453203319Sweongyo 454203319Sweongyo# Compiler and linker flags used when building native tests 455203319SweongyoCFLAGS_TESTLIB:=@CFLAGS_TESTLIB@ 456203319SweongyoCXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@ 457203319SweongyoCFLAGS_TESTEXE:=@CFLAGS_TESTEXE@ 458203319SweongyoCXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@ 459203319SweongyoLDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@ 460203319SweongyoLDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@ 461203319Sweongyo 462203319Sweongyo# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the 463203319Sweongyo# build platform. 464203319SweongyoBUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ 465203319SweongyoBUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ 466203319SweongyoBUILD_LD:=@FIXPATH@ @BUILD_LD@ 467203319SweongyoBUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@ 468203319SweongyoBUILD_AS:=@FIXPATH@ @BUILD_AS@ 469203319SweongyoBUILD_AR:=@FIXPATH@ @BUILD_AR@ 470203319SweongyoBUILD_NM:=@FIXPATH@ @BUILD_NM@ 471203319SweongyoBUILD_OBJCOPY:=@BUILD_OBJCOPY@ 472203319SweongyoBUILD_STRIP:=@BUILD_STRIP@ 473203319SweongyoBUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@ 474203319SweongyoBUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@ 475203319Sweongyo 476203319SweongyoAS:=@FIXPATH@ @AS@ 477203319Sweongyo 478203319Sweongyo# AR is used to create a static library (is ar in unix, lib.exe in windows) 479203319SweongyoAR:=@FIXPATH@ @AR@ 480203319SweongyoARFLAGS:=@ARFLAGS@ 481203319Sweongyo 482203319SweongyoNM:=@NM@ 483203319SweongyoGNM:=@GNM@ 484203319SweongyoSTRIP:=@STRIP@ 485203319Sweongyo 486203319SweongyoLIPO:=@LIPO@ 487203319Sweongyo 488203319Sweongyo# Options to linker to specify a mapfile. 489203319Sweongyo# (Note absence of := assignment, because we do not want to evaluate the macro body here) 490203319SweongyoSET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@ 491203319Sweongyo 492203319Sweongyo# Options for C/CXX compiler to be used if linking is performed 493203319Sweongyo# using reorder file 494203319SweongyoC_FLAG_REORDER:=@C_FLAG_REORDER@ 495203319SweongyoCXX_FLAG_REORDER:=@CXX_FLAG_REORDER@ 496203319Sweongyo 497203319Sweongyo# 498203319Sweongyo# Options for generating debug symbols 499203319SweongyoCOMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@ 500203319SweongyoCOPY_DEBUG_SYMBOLS := @COPY_DEBUG_SYMBOLS@ 501203319SweongyoZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@ 502203319Sweongyo 503203319SweongyoCFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ 504203319SweongyoCXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ 505203319Sweongyo 506203319Sweongyo# 507203319Sweongyo# Compress (or not) jars 508203319SweongyoCOMPRESS_JARS=@COMPRESS_JARS@ 509203319Sweongyo 510203319Sweongyo# Options to linker to specify the library name. 511203319Sweongyo# (Note absence of := assignment, because we do not want to evaluate the macro body here) 512203319SweongyoSET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ 513203319Sweongyo 514203319SweongyoSHARED_LIBRARY_FLAGS=@SHARED_LIBRARY_FLAGS@ 515203319Sweongyo 516203319Sweongyo# Set origin using the linker, ie use the relative path to the dependent library to find the dependees. 517203319Sweongyo# (Note absence of := assignment, because we do not want to evaluate the macro body here) 518203319SweongyoSET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ 519203319SweongyoSET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@ 520203319Sweongyo 521203319Sweongyo# Different OS:es have different ways of naming shared libraries. 522203319Sweongyo# The SHARED_LIBRARY macro takes "verify" as and argument and returns: 523203319Sweongyo# "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform. 524203319Sweongyo# (Note absence of := assignment, because we do not want to evaluate the macro body here) 525203319SweongyoSHARED_LIBRARY=@SHARED_LIBRARY@ 526203319SweongyoSTATIC_LIBRARY=@STATIC_LIBRARY@ 527203319SweongyoLIBRARY_PREFIX:=@LIBRARY_PREFIX@ 528203319SweongyoSHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@ 529203319SweongyoSTATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@ 530203319SweongyoEXE_SUFFIX:=@EXE_SUFFIX@ 531203319SweongyoOBJ_SUFFIX:=@OBJ_SUFFIX@ 532203319SweongyoSTATIC_BUILD:=@STATIC_BUILD@ 533203319Sweongyo 534203319SweongyoSTRIPFLAGS:=@STRIPFLAGS@ 535203319Sweongyo 536203319SweongyoJAVA_FLAGS:=@JAVA_FLAGS@ 537203319SweongyoJAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ 538203319SweongyoJAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ 539203319SweongyoJAVA_FLAGS_JAVAC:=@JAVA_FLAGS_JAVAC@ 540203319SweongyoJAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@ 541203319SweongyoSJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@ 542203319Sweongyo 543203319Sweongyo# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk 544203319Sweongyo# for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD 545203319Sweongyo# versions of the variables directly. 546203319SweongyoJAVA_CMD:=@JAVA@ 547203319SweongyoJAVAC_CMD:=@JAVAC@ 548203319SweongyoJAVAH_CMD:=@JAVAH@ 549203319SweongyoJAR_CMD:=@JAR@ 550203319SweongyoJLINK_CMD := @JLINK@ 551203319SweongyoJMOD_CMD := @JMOD@ 552203319SweongyoJARSIGNER_CMD:=@JARSIGNER@ 553203319SweongyoSJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@ 554203319Sweongyo# These variables are meant to be used. They are defined with = instead of := to make 555203319Sweongyo# it possible to override only the *_CMD variables. 556203319SweongyoJAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) 557203319SweongyoJAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) 558203319SweongyoJAVA_JAVAC=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_JAVAC) $(JAVA_FLAGS) 559203319SweongyoJAVAC=@FIXPATH@ $(JAVAC_CMD) 560203319SweongyoJAVAH=@FIXPATH@ $(JAVAH_CMD) 561203319SweongyoJAR=@FIXPATH@ $(JAR_CMD) 562203319SweongyoJLINK = @FIXPATH@ $(JLINK_CMD) $(JAVA_TOOL_FLAGS_SMALL) 563203319SweongyoJMOD = @FIXPATH@ $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL) 564203319SweongyoJARSIGNER=@FIXPATH@ $(JARSIGNER_CMD) 565203319Sweongyo# A specific java binary with specific options can be used to run 566203319Sweongyo# the long running background sjavac servers and other long running tasks. 567203319SweongyoSJAVAC_SERVER_JAVA=@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(SJAVAC_SERVER_JAVA_CMD) \ 568203319Sweongyo $(SJAVAC_SERVER_JAVA_FLAGS) 569203319Sweongyo 570203319Sweongyo# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid 571203319Sweongyo# overriding that value by using ?=. 572203319SweongyoJAVAC_FLAGS?=@JAVAC_FLAGS@ 573203319Sweongyo 574203319Sweongyo 575203319SweongyoBUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@ 576203319SweongyoBUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) 577203319Sweongyo 578203319Sweongyo# Use ?= as this can be overridden from bootcycle-spec.gmk 579203319SweongyoBOOT_JDK_MODULAR ?= @BOOT_JDK_MODULAR@ 580203319Sweongyo 581203319SweongyoINTERIM_OVERRIDE_MODULES := java.compiler jdk.compiler \ 582203319Sweongyo jdk.jdeps jdk.javadoc jdk.rmic 583203319Sweongyoifeq ($(BOOT_JDK_MODULAR), true) 584203319Sweongyo INTERIM_OVERRIDE_MODULES_ARGS = $(foreach m, $(INTERIM_OVERRIDE_MODULES), \ 585203319Sweongyo --patch-module $m=$(BUILDTOOLS_OUTPUTDIR)/override_modules/$m) 586203319Sweongyo INTERIM_LANGTOOLS_ARGS = $(INTERIM_OVERRIDE_MODULES_ARGS) 587203319Sweongyo JAVAC_MAIN_CLASS = -m jdk.compiler/com.sun.tools.javac.Main 588203319Sweongyo JAVADOC_MAIN_CLASS = -m jdk.javadoc/jdk.javadoc.internal.tool.Main 589203319Sweongyoelse 590203319Sweongyo INTERIM_OVERRIDE_MODULES_ARGS = \ 591203319Sweongyo -Xbootclasspath/p:$(call PathList, \ 592203319Sweongyo $(addprefix $(BUILDTOOLS_OUTPUTDIR)/override_modules/, \ 593203319Sweongyo $(INTERIM_OVERRIDE_MODULES))) 594203319Sweongyo INTERIM_LANGTOOLS_ARGS = $(INTERIM_OVERRIDE_MODULES_ARGS) \ 595203319Sweongyo -cp $(BUILDTOOLS_OUTPUTDIR)/override_modules/jdk.compiler 596203319Sweongyo JAVAC_MAIN_CLASS = com.sun.tools.javac.Main 597203319Sweongyo JAVADOC_MAIN_CLASS = jdk.javadoc.internal.tool.Main 598203319Sweongyoendif 599203319Sweongyo# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... 600203319Sweongyo# Use = assignment to be able to override in bootcycle-spec.gmk 601203319SweongyoNEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) $(JAVAC_MAIN_CLASS) 602203319SweongyoNEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS) 603203319Sweongyo 604203319SweongyoJLINK_KEEP_PACKAGED_MODULES:=@JLINK_KEEP_PACKAGED_MODULES@ 605203319Sweongyo 606203319Sweongyo# Base flags for RC 607203319Sweongyo# Guarding this against resetting value. Legacy make files include spec multiple 608203319Sweongyo# times. 609203319Sweongyoifndef RC_FLAGS 610203319Sweongyo RC_FLAGS:=@RC_FLAGS@ 611203319Sweongyoendif 612203319Sweongyo 613203319Sweongyo# Tools adhering to a minimal and common standard of posix compliance. 614203319SweongyoAWK:=@AWK@ 615203319SweongyoBASENAME:=@BASENAME@ 616203319SweongyoCAT:=@CAT@ 617203319SweongyoCCACHE:=@CCACHE@ 618203319Sweongyo# CD is going away, but remains to cater for legacy makefiles. 619203319SweongyoCD:=cd 620203319SweongyoCHMOD:=@CHMOD@ 621203319SweongyoCODESIGN:=@CODESIGN@ 622203319SweongyoCOMM:=@COMM@ 623203319SweongyoCP:=@CP@ 624203319SweongyoCPIO:=@CPIO@ 625203319SweongyoCUT:=@CUT@ 626203319SweongyoDATE:=@DATE@ 627203319SweongyoDIFF:=@DIFF@ 628203319SweongyoDIRNAME:=@DIRNAME@ 629203319SweongyoDSYMUTIL:=@DSYMUTIL@ 630203319SweongyoFIND:=@FIND@ 631203319SweongyoFIND_DELETE:=@FIND_DELETE@ 632203319SweongyoECHO:=@ECHO@ 633203319SweongyoEGREP:=@EGREP@ 634203319SweongyoFGREP:=@FGREP@ 635203319SweongyoGREP:=@GREP@ 636203319SweongyoGZIP:=@GZIP@ 637203319SweongyoHEAD:=@HEAD@ 638203319SweongyoLS:=@LS@ 639203319SweongyoLN:=@LN@ 640203319SweongyoMKDIR:=@MKDIR@ 641203319SweongyoMV:=@MV@ 642203319SweongyoNAWK:=@NAWK@ 643203319SweongyoNICE:=@NICE@ 644203319SweongyoPATCH:=@PATCH@ 645203319SweongyoPRINTF:=@PRINTF@ 646203319SweongyoPWD:=@THEPWDCMD@ 647203319SweongyoRM:=@RM@ 648203319SweongyoRMDIR:=@RMDIR@ 649203319SweongyoSED:=@SED@ 650203319SweongyoSH:=@SH@ 651203319SweongyoSORT:=@SORT@ 652203319SweongyoTAR:=@TAR@ 653203319SweongyoTAIL:=@TAIL@ 654203319SweongyoTEE:=@TEE@ 655203319SweongyoTIME:=@TIME@ 656203319SweongyoIS_GNU_TIME:=@IS_GNU_TIME@ 657203319SweongyoTR:=@TR@ 658203319SweongyoTOUCH:=@TOUCH@ 659203319SweongyoUNIQ:=@UNIQ@ 660203319SweongyoWC:=@WC@ 661203319SweongyoXARGS:=@XARGS@ 662203319SweongyoZIPEXE:=@ZIPEXE@ 663203319SweongyoUNZIP:=@UNZIP@ 664203319SweongyoMT:=@FIXPATH@ @MT@ 665203319SweongyoRC:=@FIXPATH@ @RC@ 666203319SweongyoDUMPBIN:=@FIXPATH@ @DUMPBIN@ 667203319SweongyoCYGPATH:=@CYGPATH@ 668203319SweongyoLDD:=@LDD@ 669203319SweongyoOTOOL:=@OTOOL@ 670203319SweongyoREADELF:=@READELF@ 671203319SweongyoEXPR:=@EXPR@ 672203319SweongyoFILE:=@FILE@ 673203319SweongyoHG:=@HG@ 674203319SweongyoOBJCOPY:=@OBJCOPY@ 675203319SweongyoSETFILE:=@SETFILE@ 676203319SweongyoXATTR:=@XATTR@ 677203319SweongyoJT_HOME:=@JT_HOME@ 678203319SweongyoJTREGEXE:=@JTREGEXE@ 679203319SweongyoXCODEBUILD=@XCODEBUILD@ 680203319SweongyoDTRACE := @DTRACE@ 681203319SweongyoFIXPATH:=@FIXPATH@ 682203319Sweongyo 683203319SweongyoTAR_TYPE:=@TAR_TYPE@ 684203319SweongyoTAR_CREATE_EXTRA_PARAM:=@TAR_CREATE_EXTRA_PARAM@ 685203319SweongyoTAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@ 686203319SweongyoTAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@ 687203319Sweongyo 688203319Sweongyo# Build setup 689203319SweongyoENABLE_JFR=@ENABLE_JFR@ 690203319SweongyoENABLE_INTREE_EC=@ENABLE_INTREE_EC@ 691203319SweongyoUSE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ 692203319SweongyoUSE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ 693203319SweongyoUSE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ 694203319SweongyoLIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ 695203319SweongyoMSVCR_DLL:=@MSVCR_DLL@ 696203319SweongyoMSVCP_DLL:=@MSVCP_DLL@ 697203319SweongyoSTLPORT_LIB:=@STLPORT_LIB@ 698203319Sweongyo 699203319Sweongyo#################################################### 700203319Sweongyo# 701203319Sweongyo# INSTALLATION 702203319Sweongyo# 703203319Sweongyo 704203319Sweongyo# Common prefix for all installed files. Defaults to /usr/local, 705203319Sweongyo# but /opt/myjdk is another common version. 706203319SweongyoINSTALL_PREFIX=@prefix@ 707203319Sweongyo 708203319Sweongyo# Directories containing architecture-dependent files should be relative to exec_prefix 709203319SweongyoINSTALL_EXECPREFIX=@exec_prefix@ 710203319Sweongyo 711203319Sweongyo# java,javac,javah,javap etc are installed here. 712203319SweongyoINSTALL_BINDIR=@bindir@ 713203319Sweongyo 714203319Sweongyo# Read only architecture-independent data 715203319SweongyoINSTALL_DATADIR=@datadir@ 716203319Sweongyo 717203319Sweongyo# Root of above. 718203319SweongyoINSTALL_DATAROOTDIR=@datarootdir@ 719203319Sweongyo 720203319Sweongyo# Doc files, other than info and man. 721203319SweongyoINSTALL_DOCDIR=@docdir@ 722203319Sweongyo 723203319Sweongyo# Html documentation 724203319SweongyoINSTALL_HTMLDIR=@htmldir@ 725203319Sweongyo 726203319Sweongyo# Installing C header files, JNI headers for example. 727203319SweongyoINSTALL_INCLUDEDIR=@includedir@ 728203319Sweongyo 729203319Sweongyo# Installing library files.... 730203319SweongyoINSTALL_INCLUDEDIR=@libdir@ 731203319Sweongyo 732203319Sweongyo# Executables that other programs run. 733203319SweongyoINSTALL_LIBEXECDIR=@libexecdir@ 734203319Sweongyo 735203319Sweongyo# Locale-dependent but architecture-independent data, such as message catalogs. 736203319SweongyoINSTALL_LOCALEDIR=@localedir@ 737203319Sweongyo 738203319Sweongyo# Modifiable single-machine data 739203319SweongyoINSTALL_LOCALSTATEDIR=@localstatedir@ 740203319Sweongyo 741203319Sweongyo# Man pages 742204922SweongyoINSTALL_MANDIR=@mandir@ 743203319Sweongyo 744204922Sweongyo# Modifiable architecture-independent data. 745204922SweongyoINSTALL_SHAREDSTATEDIR=@sharedstatedir@ 746203319Sweongyo 747204922Sweongyo# Read-only single-machine data 748204922SweongyoINSTALL_SYSCONFDIR=@sysconfdir@ 749204922Sweongyo 750204922Sweongyo#################################################### 751204922Sweongyo# 752204922Sweongyo# Libraries 753204922Sweongyo# 754203319Sweongyo 755203319SweongyoUSE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@ 756203319SweongyoLCMS_CFLAGS:=@LCMS_CFLAGS@ 757203319SweongyoLCMS_LIBS:=@LCMS_LIBS@ 758203319Sweongyo 759203319SweongyoUSE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ 760203319SweongyoPNG_LIBS:=@PNG_LIBS@ 761203319SweongyoPNG_CFLAGS:=@PNG_CFLAGS@ 762203319Sweongyo 763203319Sweongyo 764203319Sweongyo#################################################### 765203319Sweongyo# 766203319Sweongyo# Misc 767203319Sweongyo# 768203319Sweongyo 769203319SweongyoINCLUDE_SA=@INCLUDE_SA@ 770203319Sweongyo 771203319SweongyoOS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ 772203319SweongyoOS_VERSION_MINOR:=@OS_VERSION_MINOR@ 773203319SweongyoOS_VERSION_MICRO:=@OS_VERSION_MICRO@ 774203319Sweongyo 775203319Sweongyo# Images directory definitions 776203319SweongyoJDK_IMAGE_SUBDIR:=jdk 777203319SweongyoJRE_IMAGE_SUBDIR:=jre 778203319Sweongyo 779203319Sweongyo# Colon left out to be able to override output dir for bootcycle-images 780203319SweongyoJDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) 781203319SweongyoJRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) 782203319Sweongyo 783203319Sweongyo# Test image, as above 784203319SweongyoTEST_IMAGE_SUBDIR:=test 785203319SweongyoTEST_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) 786203319Sweongyo 787203319Sweongyo# Symbols image 788203319SweongyoSYMBOLS_IMAGE_SUBDIR:=symbols 789203319SweongyoSYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) 790203319Sweongyo 791203319Sweongyo# Interim image 792203319SweongyoINTERIM_JMODS_DIR := $(SUPPORT_OUTPUTDIR)/interim-jmods 793203319SweongyoINTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image 794203319Sweongyo 795203319Sweongyo# Docs image 796203319SweongyoDOCS_IMAGE_SUBDIR := docs 797203319SweongyoDOCS_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_IMAGE_SUBDIR) 798203319Sweongyo 799203319Sweongyo# Macosx bundles directory definitions 800203319SweongyoJDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle 801203319SweongyoJRE_MACOSX_BUNDLE_SUBDIR=jre-bundle 802203319SweongyoJDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) 803203319SweongyoJRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) 804203319SweongyoJDK_MACOSX_CONTENTS_SUBDIR=jdk-$(VERSION_NUMBER).jdk/Contents 805203319SweongyoJRE_MACOSX_CONTENTS_SUBDIR=jre-$(VERSION_NUMBER).jre/Contents 806203319SweongyoJDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR) 807204922SweongyoJRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR) 808203319Sweongyo 809204922Sweongyo# Bundle names 810203319SweongyoBASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) 811203319Sweongyoifeq ($(DEBUG_LEVEL), fastdebug) 812203319Sweongyo DEBUG_PART := -debug 813203319Sweongyoelse ifneq ($(DEBUG_LEVEL), release) 814203319Sweongyo DEBUG_PART := -$(DEBUG_LEVEL) 815204922Sweongyoendif 816203319SweongyoJDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz 817204922SweongyoJRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz 818203319SweongyoJDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz 819204922SweongyoJRE_SYMBOLS_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz 820204922Sweongyoifeq ($(OPENJDK_TARGET_OS), windows) 821204922Sweongyo DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).zip 822204922Sweongyoelse 823204922Sweongyo DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).tar.gz 824204922Sweongyoendif 825204922SweongyoTEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz 826203319SweongyoDOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz 827203319Sweongyo 828203319SweongyoJDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME) 829203319SweongyoJRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME) 830204922SweongyoJDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME) 831203319SweongyoJRE_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_SYMBOLS_BUNDLE_NAME) 832204922SweongyoDEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DEMOS_BUNDLE_NAME) 833203319SweongyoTEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME) 834203319SweongyoDOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME) 835203319Sweongyo 836203319Sweongyo# This macro is called to allow inclusion of closed source counterparts. 837203319Sweongyo# Unless overridden in closed sources, it expands to nothing. 838204922Sweongyo# Usage: This function is called in an open makefile, with the following 839203319Sweongyo# arguments: 840204922Sweongyo# $1 the name of the repo, or empty if the top-level repo. 841203319Sweongyo# $2 the name of the makefile 842204922Sweongyodefine IncludeCustomExtension 843204922Sweongyoendef 844204922Sweongyo 845204922Sweongyo# Include the custom-spec.gmk file if it exists 846204922Sweongyo-include $(dir @SPEC@)/custom-spec.gmk 847204922Sweongyo