1 # 2 # Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # Configured @DATE_WHEN_CONFIGURED@ to build 27 # for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@ 28 # (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf) 29 # on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@ 30 # (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf) 31 # using 'configure @CONFIGURE_COMMAND_LINE@' 32 33 # The command line given to configure. 34 CONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@ 35 # The current directory when configure was run 36 CONFIGURE_START_DIR:=@CONFIGURE_START_DIR@ 37 38 # A self-referential reference to this file. 39 SPEC:=@SPEC@ 40 41 # Path to autoconf if overriden by the user, to be used by "make reconfigure" 42 AUTOCONF := @AUTOCONF@ 43 44 # SPACE and COMMA are defined in MakeBase.gmk, but they are also used in 45 # some definitions here, and are needed if MakeBase.gmk is not included before 46 # this file. 47 X:= 48 SPACE:=$(X) $(X) 49 COMMA:=, 50 51 # What make to use for main processing, after bootstrapping top-level Makefile. 52 MAKE := @MAKE@ 53 54 # Make sure all shell commands are executed with the C locale 55 export LC_ALL := C 56 57 # The default make arguments 58 MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ 59 MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS) 60 61 OUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@ 62 OUTPUT_SYNC:=@OUTPUT_SYNC@ 63 64 # Override the shell with bash 65 BASH:=@BASH@ 66 BASH_ARGS:=@BASH_ARGS@ 67 SHELL:=$(BASH) $(BASH_ARGS) 68 69 # The "human readable" name of this configuration 70 CONF_NAME:=@CONF_NAME@ 71 72 # The built jdk will run in this target system. 73 OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ 74 OPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@ 75 OPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ 76 OPENJDK_TARGET_OS_UPPERCASE:=@OPENJDK_TARGET_OS_UPPERCASE@ 77 78 OPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ 79 OPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ 80 OPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ 81 OPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ 82 83 COMPILE_TYPE:=@COMPILE_TYPE@ 84 85 # Legacy support 86 OPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@ 87 OPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@ 88 OPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@ 89 OPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@ 90 OPENJDK_TARGET_OS_INCLUDE_SUBDIR:=@OPENJDK_TARGET_OS_INCLUDE_SUBDIR@ 91 92 HOTSPOT_TARGET_OS := @HOTSPOT_TARGET_OS@ 93 HOTSPOT_TARGET_OS_TYPE := @HOTSPOT_TARGET_OS_TYPE@ 94 95 HOTSPOT_TARGET_CPU := @HOTSPOT_TARGET_CPU@ 96 HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@ 97 HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@ 98 99 OPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@ 100 JDK_ARCH_ABI_PROP_NAME := @JDK_ARCH_ABI_PROP_NAME@ 101 102 # We are building on this build system. 103 # When not cross-compiling, it is the same as the target. 104 OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@ 105 OPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@ 106 OPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@ 107 108 OPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@ 109 OPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@ 110 OPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ 111 OPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ 112 113 OPENJDK_BUILD_OS_INCLUDE_SUBDIR:=@OPENJDK_TARGET_OS_INCLUDE_SUBDIR@ 114 115 # Target platform value in ModuleTarget class file attribute. 116 OPENJDK_MODULE_TARGET_PLATFORM:=@OPENJDK_MODULE_TARGET_PLATFORM@ 117 118 # OS_* properties in release file 119 RELEASE_FILE_OS_NAME:=@RELEASE_FILE_OS_NAME@ 120 RELEASE_FILE_OS_ARCH:=@RELEASE_FILE_OS_ARCH@ 121 122 SOURCE_DATE := @SOURCE_DATE@ 123 ENABLE_REPRODUCIBLE_BUILD := @ENABLE_REPRODUCIBLE_BUILD@ 124 125 LIBM:=@LIBM@ 126 LIBDL:=@LIBDL@ 127 128 # colon or semicolon 129 PATH_SEP:=@PATH_SEP@ 130 131 # Save the original path before replacing it with the Visual Studio tools 132 ORIGINAL_PATH:=@ORIGINAL_PATH@ 133 ifeq ($(OPENJDK_TARGET_OS), windows) 134 # On Windows, the Visual Studio toolchain needs the PATH to be adjusted 135 # to include Visual Studio tools (this needs to be in cygwin/msys style). 136 ifeq ($(OPENJDK_TARGET_OS_ENV), windows.wsl) 137 export FIXPATH_PATH:=@VS_PATH_WINDOWS@ 138 export WSLENV:=$(WSLENV):FIXPATH_PATH:DEBUG_FIXPATH 139 else 140 export PATH:=@VS_PATH@ 141 endif 142 endif 143 144 SYSROOT_CFLAGS := @SYSROOT_CFLAGS@ 145 SYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@ 146 147 # The top-level directory of the source repository 148 TOPDIR:=@TOPDIR@ 149 # Usually the top level directory, but could be something else if a custom 150 # root is defined. 151 WORKSPACE_ROOT:=@WORKSPACE_ROOT@ 152 IMPORT_MODULES_CLASSES:=@IMPORT_MODULES_CLASSES@ 153 IMPORT_MODULES_CMDS:=@IMPORT_MODULES_CMDS@ 154 IMPORT_MODULES_LIBS:=@IMPORT_MODULES_LIBS@ 155 IMPORT_MODULES_CONF:=@IMPORT_MODULES_CONF@ 156 IMPORT_MODULES_LEGAL:=@IMPORT_MODULES_LEGAL@ 157 IMPORT_MODULES_MAN:=@IMPORT_MODULES_MAN@ 158 IMPORT_MODULES_SRC:=@IMPORT_MODULES_SRC@ 159 IMPORT_MODULES_MAKE:=@IMPORT_MODULES_MAKE@ 160 161 COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@ 162 HOTSPOT_BUILD_TIME:=@HOTSPOT_BUILD_TIME@ 163 164 # Platform naming variables 165 LAUNCHER_NAME:=@LAUNCHER_NAME@ 166 PRODUCT_NAME:=@PRODUCT_NAME@ 167 PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@ 168 JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ 169 JDK_RC_NAME:=@JDK_RC_NAME@ 170 COMPANY_NAME:=@COMPANY_NAME@ 171 HOTSPOT_VM_DISTRO:=@HOTSPOT_VM_DISTRO@ 172 MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ 173 MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ 174 USERNAME:=@USERNAME@ 175 VENDOR_URL:=@VENDOR_URL@ 176 VENDOR_URL_BUG:=@VENDOR_URL_BUG@ 177 VENDOR_URL_VM_BUG:=@VENDOR_URL_VM_BUG@ 178 179 # New (JEP-223) version information 180 181 ## Building blocks of the version string 182 # First three version numbers, with well-specified meanings (numerical) 183 VERSION_FEATURE := @VERSION_FEATURE@ 184 VERSION_INTERIM := @VERSION_INTERIM@ 185 VERSION_UPDATE := @VERSION_UPDATE@ 186 VERSION_PATCH := @VERSION_PATCH@ 187 VERSION_EXTRA1 := @VERSION_EXTRA1@ 188 VERSION_EXTRA2 := @VERSION_EXTRA2@ 189 VERSION_EXTRA3 := @VERSION_EXTRA3@ 190 # The pre-release identifier (string) 191 VERSION_PRE := @VERSION_PRE@ 192 # The build number (numerical) 193 VERSION_BUILD := @VERSION_BUILD@ 194 # Optional build information (string) 195 VERSION_OPT := @VERSION_OPT@ 196 197 ## Composite variables 198 # The version number as a dot separated sequence of numbers, e.g. 9.0.1 199 VERSION_NUMBER := @VERSION_NUMBER@ 200 # VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions. 201 VERSION_NUMBER_FOUR_POSITIONS := @VERSION_NUMBER_FOUR_POSITIONS@ 202 # The complete version string, with additional build information 203 VERSION_STRING := @VERSION_STRING@ 204 # The short version string, without trailing zeroes and just PRE, if present. 205 VERSION_SHORT := @VERSION_SHORT@ 206 # The Java specification version. It usually equals the feature version number. 207 VERSION_SPECIFICATION := @VERSION_FEATURE@ 208 # A GA version is defined by the PRE string being empty. Rather than testing for 209 # that, this variable defines it with true/false. 210 VERSION_IS_GA := @VERSION_IS_GA@ 211 212 # Version date 213 VERSION_DATE := @VERSION_DATE@ 214 215 # Vendor version string 216 VENDOR_VERSION_STRING := @VENDOR_VERSION_STRING@ 217 218 # Class-file version 219 VERSION_CLASSFILE_MAJOR := @VERSION_CLASSFILE_MAJOR@ 220 VERSION_CLASSFILE_MINOR := @VERSION_CLASSFILE_MINOR@ 221 222 JDK_SOURCE_TARGET_VERSION := @JDK_SOURCE_TARGET_VERSION@ 223 224 # Convenience CFLAGS settings for passing version information into native programs. 225 VERSION_CFLAGS := \ 226 -DVERSION_FEATURE=$(VERSION_FEATURE) \ 227 -DVERSION_INTERIM=$(VERSION_INTERIM) \ 228 -DVERSION_UPDATE=$(VERSION_UPDATE) \ 229 -DVERSION_PATCH=$(VERSION_PATCH) \ 230 -DVERSION_EXTRA1=$(VERSION_EXTRA1) \ 231 -DVERSION_EXTRA2=$(VERSION_EXTRA2) \ 232 -DVERSION_EXTRA3=$(VERSION_EXTRA3) \ 233 -DVERSION_PRE='"$(VERSION_PRE)"' \ 234 -DVERSION_BUILD=$(VERSION_BUILD) \ 235 -DVERSION_OPT='"$(VERSION_OPT)"' \ 236 -DVERSION_NUMBER='"$(VERSION_NUMBER)"' \ 237 -DVERSION_STRING='"$(VERSION_STRING)"' \ 238 -DVERSION_SHORT='"$(VERSION_SHORT)"' \ 239 -DVERSION_SPECIFICATION='"$(VERSION_SPECIFICATION)"' \ 240 -DVERSION_DATE='"$(VERSION_DATE)"' \ 241 -DVENDOR_VERSION_STRING='"$(VENDOR_VERSION_STRING)"' \ 242 -DVERSION_CLASSFILE_MAJOR=$(VERSION_CLASSFILE_MAJOR) \ 243 -DVERSION_CLASSFILE_MINOR=$(VERSION_CLASSFILE_MINOR) \ 244 # 245 246 ifneq ($(COMPANY_NAME),) 247 # COMPANY_NAME is set to "N/A" in $AUTOCONF_DIR/version-numbers by default, 248 # but can be customized with the '--with-vendor-name' configure option. 249 # Only export "VENDOR" to the build if COMPANY_NAME contains a real value. 250 # Otherwise the default value for VENDOR, which is used to set the "java.vendor" 251 # and "java.vm.vendor" properties is hard-coded into the source code (i.e. in 252 # VersionProps.java.template in the jdk for "java.vendor" and 253 # vm_version.cpp in the VM for "java.vm.vendor") 254 ifneq ($(COMPANY_NAME), N/A) 255 VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"' 256 endif 257 endif 258 259 # Only export VENDOR_URL, VENDOR_URL_BUG and VENDOR_VM_URL_BUG to the build if 260 # they are not empty. Otherwise, default values which are defined in the sources 261 # will be used. 262 ifneq ($(VENDOR_URL),) 263 VERSION_CFLAGS += -DVENDOR_URL='"$(VENDOR_URL)"' 264 endif 265 ifneq ($(VENDOR_URL_BUG),) 266 VERSION_CFLAGS += -DVENDOR_URL_BUG='"$(VENDOR_URL_BUG)"' 267 endif 268 ifneq ($(VENDOR_URL_VM_BUG),) 269 VERSION_CFLAGS += -DVENDOR_URL_VM_BUG='"$(VENDOR_URL_VM_BUG)"' 270 endif 271 272 # Different naming strings generated from the above information. 273 RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) 274 275 # How to compile the code: release, fastdebug or slowdebug 276 DEBUG_LEVEL:=@DEBUG_LEVEL@ 277 HOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@ 278 279 # Which JVM variants to build (space-separated list) 280 JVM_VARIANTS := @JVM_VARIANTS@ 281 JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@ 282 283 # Lists of features per variant. Only relevant for the variants listed in 284 # JVM_VARIANTS. 285 JVM_FEATURES_server := @JVM_FEATURES_server@ 286 JVM_FEATURES_client := @JVM_FEATURES_client@ 287 JVM_FEATURES_core := @JVM_FEATURES_core@ 288 JVM_FEATURES_minimal := @JVM_FEATURES_minimal@ 289 JVM_FEATURES_zero := @JVM_FEATURES_zero@ 290 JVM_FEATURES_custom := @JVM_FEATURES_custom@ 291 292 # Used for make-time verifications 293 VALID_JVM_FEATURES := @VALID_JVM_FEATURES@ 294 VALID_JVM_VARIANTS := @VALID_JVM_VARIANTS@ 295 296 # Control whether Hotspot builds gtest tests 297 BUILD_GTEST := @BUILD_GTEST@ 298 299 # Allow overriding the default hotspot library path 300 HOTSPOT_OVERRIDE_LIBPATH := @HOTSPOT_OVERRIDE_LIBPATH@ 301 302 # Control use of precompiled header in hotspot libjvm build 303 USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@ 304 305 # Only build headless support or not 306 ENABLE_HEADLESS_ONLY := @ENABLE_HEADLESS_ONLY@ 307 308 ENABLE_LINKTIME_GC := @ENABLE_LINKTIME_GC@ 309 310 # Ship debug symbols (e.g. pdbs on Windows) 311 SHIP_DEBUG_SYMBOLS := @SHIP_DEBUG_SYMBOLS@ 312 313 ENABLE_FULL_DOCS := @ENABLE_FULL_DOCS@ 314 315 # JDK_OUTPUTDIR specifies where a working jvm is built. 316 # You can run $(JDK_OUTPUTDIR)/bin/java 317 318 OUTPUTDIR := @OUTPUTDIR@ 319 # Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images 320 SUPPORT_OUTPUTDIR=$(OUTPUTDIR)/support 321 BUILDTOOLS_OUTPUTDIR=$(OUTPUTDIR)/buildtools 322 323 HOTSPOT_OUTPUTDIR=$(OUTPUTDIR)/hotspot 324 JDK_OUTPUTDIR=$(OUTPUTDIR)/jdk 325 IMAGES_OUTPUTDIR=$(OUTPUTDIR)/images 326 BUNDLES_OUTPUTDIR=$(OUTPUTDIR)/bundles 327 TESTMAKE_OUTPUTDIR=$(OUTPUTDIR)/test-make 328 MAKESUPPORT_OUTPUTDIR=$(OUTPUTDIR)/make-support 329 330 # This does not get overridden in a bootcycle build 331 CONFIGURESUPPORT_OUTPUTDIR:=@CONFIGURESUPPORT_OUTPUTDIR@ 332 BUILDJDK_OUTPUTDIR=$(OUTPUTDIR)/buildjdk 333 334 BUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@ 335 336 ENABLE_GENERATE_CLASSLIST := @ENABLE_GENERATE_CLASSLIST@ 337 338 EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@ 339 340 BUILD_MANPAGES := @BUILD_MANPAGES@ 341 342 BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@ 343 344 ALLOW_ABSOLUTE_PATHS_IN_OUTPUT := @ALLOW_ABSOLUTE_PATHS_IN_OUTPUT@ 345 346 # The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep 347 # it in sync. 348 BOOT_JDK:=@BOOT_JDK@ 349 350 BUILD_JDK:=@BUILD_JDK@ 351 CREATE_BUILDJDK:=@CREATE_BUILDJDK@ 352 EXTERNAL_BUILDJDK:=@EXTERNAL_BUILDJDK@ 353 354 # When compiling Java source to be run by the boot jdk 355 # use these extra flags, eg -source 6 -target 6 356 BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@ 357 358 # Information about the build system 359 NUM_CORES:=@NUM_CORES@ 360 MEMORY_SIZE:=@MEMORY_SIZE@ 361 ENABLE_JAVAC_SERVER:=@ENABLE_JAVAC_SERVER@ 362 # Store javac server synchronization files here, and 363 # the javac server log files. 364 JAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers 365 366 # Number of parallel jobs to use for compilation 367 JOBS?=@JOBS@ 368 TEST_JOBS?=@TEST_JOBS@ 369 370 # Default make target 371 DEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@ 372 DEFAULT_LOG:=@DEFAULT_LOG@ 373 374 FREETYPE_TO_USE:=@FREETYPE_TO_USE@ 375 FREETYPE_LIBS:=@FREETYPE_LIBS@ 376 FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@ 377 FONTCONFIG_CFLAGS:=@FONTCONFIG_CFLAGS@ 378 CUPS_CFLAGS:=@CUPS_CFLAGS@ 379 ALSA_LIBS:=@ALSA_LIBS@ 380 ALSA_CFLAGS:=@ALSA_CFLAGS@ 381 LIBFFI_LIBS:=@LIBFFI_LIBS@ 382 LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@ 383 ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@ 384 LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@ 385 GRAALUNIT_LIB := @GRAALUNIT_LIB@ 386 FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@ 387 388 STATIC_LIBS_CFLAGS := @STATIC_LIBS_CFLAGS@ 389 390 JMH_CORE_JAR := @JMH_CORE_JAR@ 391 JMH_GENERATOR_JAR := @JMH_GENERATOR_JAR@ 392 JMH_JOPT_SIMPLE_JAR := @JMH_JOPT_SIMPLE_JAR@ 393 JMH_COMMONS_MATH_JAR := @JMH_COMMONS_MATH_JAR@ 394 JMH_VERSION := @JMH_VERSION@ 395 396 # Source file for cacerts 397 CACERTS_FILE=@CACERTS_FILE@ 398 399 # Enable unlimited crypto policy 400 UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@ 401 402 GCOV_ENABLED=@GCOV_ENABLED@ 403 JCOV_ENABLED=@JCOV_ENABLED@ 404 JCOV_HOME=@JCOV_HOME@ 405 JCOV_INPUT_JDK=@JCOV_INPUT_JDK@ 406 JCOV_FILTERS=@JCOV_FILTERS@ 407 408 # AddressSanitizer 409 export ASAN_ENABLED:=@ASAN_ENABLED@ 410 export DEVKIT_LIB_DIR:=@DEVKIT_LIB_DIR@ 411 ifeq ($(ASAN_ENABLED), yes) 412 export ASAN_OPTIONS=handle_segv=0 detect_leaks=0 413 ifneq ($(DEVKIT_LIB_DIR),) 414 export LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(DEVKIT_LIB_DIR) 415 endif 416 endif 417 418 # Necessary additional compiler flags to compile X11 419 X_CFLAGS:=@X_CFLAGS@ 420 X_LIBS:=@X_LIBS@ 421 422 # The lowest required version of macosx 423 MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 424 # The highest allowed version of macosx 425 MACOSX_VERSION_MAX=@MACOSX_VERSION_MAX@ 426 427 # The macosx code signing identity to use 428 MACOSX_CODESIGN_IDENTITY=@MACOSX_CODESIGN_IDENTITY@ 429 430 # Toolchain type: gcc, clang, solstudio, lxc, microsoft... 431 TOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@ 432 TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@ 433 CC_VERSION_NUMBER := @CC_VERSION_NUMBER@ 434 CXX_VERSION_NUMBER := @CXX_VERSION_NUMBER@ 435 436 # Legacy support 437 HOTSPOT_TOOLCHAIN_TYPE := @HOTSPOT_TOOLCHAIN_TYPE@ 438 439 # Option used to tell the compiler whether to create 32- or 64-bit executables 440 COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ 441 COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ 442 443 # Option used to pass a command file to the compiler 444 COMPILER_COMMAND_FILE_FLAG:=@COMPILER_COMMAND_FILE_FLAG@ 445 446 # Option for specifying a file which saves the binder commands 447 # produced by the link step (for debugging, currently AIX only) 448 COMPILER_BINDCMD_FILE_FLAG:=@COMPILER_BINDCMD_FILE_FLAG@ 449 450 CC_OUT_OPTION:=@CC_OUT_OPTION@ 451 LD_OUT_OPTION:=@LD_OUT_OPTION@ 452 AR_OUT_OPTION:=@AR_OUT_OPTION@ 453 454 # Flags used for overriding the default opt setting for a C/C++ source file. 455 C_O_FLAG_HIGHEST_JVM:=@C_O_FLAG_HIGHEST_JVM@ 456 C_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@ 457 C_O_FLAG_HI:=@C_O_FLAG_HI@ 458 C_O_FLAG_NORM:=@C_O_FLAG_NORM@ 459 C_O_FLAG_NONE:=@C_O_FLAG_NONE@ 460 C_O_FLAG_SIZE:=@C_O_FLAG_SIZE@ 461 CXX_O_FLAG_HIGHEST_JVM:=@CXX_O_FLAG_HIGHEST_JVM@ 462 CXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@ 463 CXX_O_FLAG_HI:=@CXX_O_FLAG_HI@ 464 CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@ 465 CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@ 466 CXX_O_FLAG_SIZE:=@CXX_O_FLAG_SIZE@ 467 468 C_FLAG_DEPS:=@C_FLAG_DEPS@ 469 CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ 470 471 DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@ 472 CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ 473 LDFLAGS_WARNINGS_ARE_ERRORS:=@LDFLAGS_WARNINGS_ARE_ERRORS@ 474 DISABLED_WARNINGS := @DISABLED_WARNINGS@ 475 DISABLED_WARNINGS_C := @DISABLED_WARNINGS_C@ 476 DISABLED_WARNINGS_CXX := @DISABLED_WARNINGS_CXX@ 477 478 # A global flag (true or false) determining if native warnings are considered errors. 479 WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@ 480 481 CFLAGS_CCACHE:=@CFLAGS_CCACHE@ 482 ADLC_CXXFLAG=@ADLC_CXXFLAG@ 483 484 # Tools that potentially need to be cross compilation aware. 485 CC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@ 486 487 # CFLAGS used to compile the jdk native libraries (C-code) 488 CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@ 489 CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ 490 491 # CFLAGS used to compile the jdk native launchers (C-code) 492 CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ 493 CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ 494 495 LIBJSIG_HASHSTYLE_LDFLAGS := @LIBJSIG_HASHSTYLE_LDFLAGS@ 496 LIBJSIG_NOEXECSTACK_LDFLAGS := @LIBJSIG_NOEXECSTACK_LDFLAGS@ 497 498 FDLIBM_CFLAGS := @FDLIBM_CFLAGS@ 499 JVM_CFLAGS := @JVM_CFLAGS@ 500 JVM_LDFLAGS := @JVM_LDFLAGS@ 501 JVM_ASFLAGS := @JVM_ASFLAGS@ 502 JVM_LIBS := @JVM_LIBS@ 503 JVM_RCFLAGS := @JVM_RCFLAGS@ 504 505 # These flags might contain variables set by a custom extension that is included later. 506 EXTRA_CFLAGS = @EXTRA_CFLAGS@ 507 EXTRA_CXXFLAGS = @EXTRA_CXXFLAGS@ 508 EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ 509 EXTRA_ASFLAGS = @EXTRA_ASFLAGS@ 510 511 CXX:=@FIXPATH@ @CCACHE@ @ICECC@ @CXX@ 512 513 CPP:=@FIXPATH@ @CPP@ 514 515 # The linker can be gcc or ld on unix systems, or link.exe on windows systems. 516 LD:=@FIXPATH@ @LD@ 517 518 # Linker used by the jaotc tool for AOT compilation. 519 LD_JAOTC:=@LD_JAOTC@ 520 521 # Xcode SDK path 522 SDKROOT:=@SDKROOT@ 523 524 # LDFLAGS used to link the jdk native libraries (C-code) 525 LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ 526 JDKLIB_LIBS:=@JDKLIB_LIBS@ 527 GLOBAL_LIBS:=@GLOBAL_LIBS@ 528 529 # LDFLAGS used to link the jdk native launchers (C-code) 530 LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@ 531 JDKEXE_LIBS:=@JDKEXE_LIBS@ 532 533 # LDFLAGS specific to C++ linking. 534 LDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@ 535 536 # Sometimes a different linker is needed for c++ libs 537 LDCXX:=@FIXPATH@ @LDCXX@ 538 # The flags for linking libstdc++ linker. 539 LIBCXX:=@LIBCXX@ 540 541 # Compiler and linker flags used when building native tests 542 LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@ 543 544 # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the 545 # build platform. 546 BUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ 547 BUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ 548 BUILD_LD:=@FIXPATH@ @BUILD_LD@ 549 BUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@ 550 BUILD_AS:=@FIXPATH@ @BUILD_AS@ 551 BUILD_AR:=@FIXPATH@ @BUILD_AR@ 552 BUILD_NM:=@FIXPATH@ @BUILD_NM@ 553 BUILD_OBJCOPY:=@BUILD_OBJCOPY@ 554 BUILD_STRIP:=@BUILD_STRIP@ 555 BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@ 556 BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@ 557 558 AS:=@FIXPATH@ @AS@ 559 560 # AR is used to create a static library (is ar in unix, lib.exe in windows) 561 AR:=@FIXPATH@ @AR@ 562 ARFLAGS:=@ARFLAGS@ 563 564 NM:=@NM@ 565 GNM:=@GNM@ 566 STRIP:=@STRIP@ 567 OBJDUMP:=@OBJDUMP@ 568 CXXFILT:=@CXXFILT@ 569 570 LIPO:=@LIPO@ 571 INSTALL_NAME_TOOL:=@INSTALL_NAME_TOOL@ 572 573 # Options to linker to specify a mapfile. 574 # (Note absence of := assignment, because we do not want to evaluate the macro body here) 575 SET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@ 576 577 # Options for C/CXX compiler to be used if linking is performed 578 # using reorder file 579 C_FLAG_REORDER:=@C_FLAG_REORDER@ 580 581 # 582 # Options for generating debug symbols 583 COMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@ 584 COPY_DEBUG_SYMBOLS := @COPY_DEBUG_SYMBOLS@ 585 ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@ 586 587 CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ 588 ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@ 589 590 # 591 # Compress (or not) jars 592 COMPRESS_JARS=@COMPRESS_JARS@ 593 594 # Options to linker to specify the library name. 595 # (Note absence of := assignment, because we do not want to evaluate the macro body here) 596 SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ 597 598 SHARED_LIBRARY_FLAGS=@SHARED_LIBRARY_FLAGS@ 599 600 # Set origin using the linker, ie use the relative path to the dependent library to find the dependees. 601 # (Note absence of := assignment, because we do not want to evaluate the macro body here) 602 SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ 603 SET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@ 604 605 # Different OS:es have different ways of naming shared libraries. 606 # The SHARED_LIBRARY macro takes "verify" as and argument and returns: 607 # "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform. 608 # (Note absence of := assignment, because we do not want to evaluate the macro body here) 609 SHARED_LIBRARY=@SHARED_LIBRARY@ 610 STATIC_LIBRARY=@STATIC_LIBRARY@ 611 LIBRARY_PREFIX:=@LIBRARY_PREFIX@ 612 SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@ 613 STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@ 614 EXE_SUFFIX:=@EXE_SUFFIX@ 615 OBJ_SUFFIX:=@OBJ_SUFFIX@ 616 STATIC_BUILD:=@STATIC_BUILD@ 617 618 STRIPFLAGS:=@STRIPFLAGS@ 619 620 JAVA_FLAGS:=@JAVA_FLAGS@ 621 JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ 622 JAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ 623 BUILDJDK_JAVA_FLAGS_SMALL:=@BUILDJDK_JAVA_FLAGS_SMALL@ 624 JAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@ 625 626 # The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk 627 # for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD 628 # versions of the variables directly. 629 JAVA_CMD:=@JAVA@ 630 JAVAC_CMD:=@JAVAC@ 631 JAVADOC_CMD:=@JAVADOC@ 632 JAR_CMD:=@JAR@ 633 JLINK_CMD := @JLINK@ 634 JMOD_CMD := @JMOD@ 635 JARSIGNER_CMD:=@JARSIGNER@ 636 JJS_CMD:=@JJS@ 637 # These variables are meant to be used. They are defined with = instead of := to make 638 # it possible to override only the *_CMD variables. 639 JAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) 640 JAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) 641 JAVA_DETACH =@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) 642 JAVAC=@FIXPATH@ $(JAVAC_CMD) 643 JAVADOC=@FIXPATH@ $(JAVADOC_CMD) 644 JAR=@FIXPATH@ $(JAR_CMD) 645 JLINK = @FIXPATH@ $(JLINK_CMD) 646 JMOD = @FIXPATH@ $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL) 647 JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD) 648 JJS=@FIXPATH@ $(JJS_CMD) $(JAVA_TOOL_FLAGS_SMALL) 649 650 BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@ 651 BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) 652 BUILD_JAR=@FIXPATH@ $(BUILD_JDK)/bin/jar 653 654 # Interim langtools modules and arguments 655 INTERIM_LANGTOOLS_BASE_MODULES := java.compiler jdk.compiler jdk.javadoc 656 INTERIM_LANGTOOLS_MODULES := $(addsuffix .interim, $(INTERIM_LANGTOOLS_BASE_MODULES)) 657 INTERIM_LANGTOOLS_ADD_EXPORTS := \ 658 --add-exports java.base/sun.reflect.annotation=jdk.compiler.interim \ 659 --add-exports java.base/jdk.internal.jmod=jdk.compiler.interim \ 660 --add-exports java.base/jdk.internal.misc=jdk.compiler.interim \ 661 # 662 INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \ 663 $(INTERIM_LANGTOOLS_MODULES)))) 664 INTERIM_LANGTOOLS_ARGS := \ 665 --limit-modules java.base,jdk.zipfs,$(INTERIM_LANGTOOLS_MODULES_COMMA) \ 666 --add-modules $(INTERIM_LANGTOOLS_MODULES_COMMA) \ 667 --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules \ 668 $(INTERIM_LANGTOOLS_ADD_EXPORTS) \ 669 # 670 JAVAC_MAIN_CLASS = -m jdk.compiler.interim/com.sun.tools.javac.Main 671 JAVADOC_MAIN_CLASS = -m jdk.javadoc.interim/jdk.javadoc.internal.tool.Main 672 673 # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... 674 # Use = assignment to be able to override in bootcycle-spec.gmk 675 NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) $(JAVAC_MAIN_CLASS) 676 NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS) 677 678 JLINK_KEEP_PACKAGED_MODULES:=@JLINK_KEEP_PACKAGED_MODULES@ 679 680 # Base flags for RC 681 # Guarding this against resetting value. Legacy make files include spec multiple 682 # times. 683 ifndef RC_FLAGS 684 RC_FLAGS:=@RC_FLAGS@ 685 endif 686 687 # Tools adhering to a minimal and common standard of posix compliance. 688 AWK:=@AWK@ 689 BASENAME:=@BASENAME@ 690 CAT:=@CAT@ 691 CCACHE:=@CCACHE@ 692 # CD is going away, but remains to cater for legacy makefiles. 693 CD:=cd 694 CHMOD:=@CHMOD@ 695 CODESIGN:=@CODESIGN@ 696 COMM:=@COMM@ 697 CP:=@CP@ 698 CPIO:=@CPIO@ 699 CUT:=@CUT@ 700 DATE:=@DATE@ 701 DIFF:=@DIFF@ 702 DIRNAME:=@DIRNAME@ 703 DSYMUTIL:=@DSYMUTIL@ 704 FIND:=@FIND@ 705 FIND_DELETE:=@FIND_DELETE@ 706 FLOCK:=@FLOCK@ 707 ECHO:=@ECHO@ 708 EGREP:=@EGREP@ 709 FGREP:=@FGREP@ 710 GREP:=@GREP@ 711 GZIP:=@GZIP@ 712 HEAD:=@HEAD@ 713 LS:=@LS@ 714 LN:=@LN@ 715 MIG:=@MIG@ 716 MKDIR:=@MKDIR@ 717 MV:=@MV@ 718 NAWK:=@NAWK@ 719 NICE:=@NICE@ 720 PANDOC:=@FIXPATH@ @PANDOC@ 721 PATCH:=@PATCH@ 722 PRINTF:=@PRINTF@ 723 READLINK:=@READLINK@ 724 RM:=@RM@ 725 RMDIR:=@RMDIR@ 726 SED:=@SED@ 727 SH:=@SH@ 728 SORT:=@SORT@ 729 TAR:=@TAR@ 730 TAIL:=@TAIL@ 731 TEE:=@TEE@ 732 TIME:=@TIME@ 733 IS_GNU_TIME:=@IS_GNU_TIME@ 734 TR:=@TR@ 735 TOUCH:=@TOUCH@ 736 UNIQ:=@UNIQ@ 737 WC:=@WC@ 738 XARGS:=@XARGS@ 739 ZIPEXE:=@ZIPEXE@ 740 UNZIP:=@UNZIP@ 741 MT:=@FIXPATH@ @MT@ 742 RC:=@FIXPATH@ @RC@ 743 DUMPBIN:=@FIXPATH@ @DUMPBIN@ 744 CYGPATH:=@CYGPATH@ 745 WSLPATH:=@WSLPATH@ 746 LDD:=@LDD@ 747 OTOOL:=@OTOOL@ 748 READELF:=@READELF@ 749 ELFEDIT:=@ELFEDIT@ 750 EXPR:=@EXPR@ 751 FILE:=@FILE@ 752 DOT:=@DOT@ 753 HG:=@HG@ 754 GIT:=@GIT@ 755 OBJCOPY:=@OBJCOPY@ 756 SETFILE:=@SETFILE@ 757 XATTR:=@XATTR@ 758 JT_HOME:=@JT_HOME@ 759 JIB_HOME:=@JIB_HOME@ 760 XCODEBUILD=@XCODEBUILD@ 761 DTRACE := @DTRACE@ 762 FIXPATH:=@FIXPATH@ 763 ULIMIT:=@ULIMIT@ 764 765 TAR_TYPE:=@TAR_TYPE@ 766 TAR_CREATE_EXTRA_PARAM:=@TAR_CREATE_EXTRA_PARAM@ 767 TAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@ 768 TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@ 769 770 # Build setup 771 ENABLE_AOT:=@ENABLE_AOT@ 772 ENABLE_INTREE_EC:=@ENABLE_INTREE_EC@ 773 USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ 774 USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ 775 USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ 776 LIBZ_CFLAGS:=@LIBZ_CFLAGS@ 777 LIBZ_LIBS:=@LIBZ_LIBS@ 778 LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ 779 MSVCR_DLL:=@MSVCR_DLL@ 780 VCRUNTIME_1_DLL:=@VCRUNTIME_1_DLL@ 781 MSVCP_DLL:=@MSVCP_DLL@ 782 UCRT_DLL_DIR:=@UCRT_DLL_DIR@ 783 STLPORT_LIB:=@STLPORT_LIB@ 784 ENABLE_PANDOC:=@ENABLE_PANDOC@ 785 PANDOC_MARKDOWN_FLAG:=@PANDOC_MARKDOWN_FLAG@ 786 787 #################################################### 788 # 789 # INSTALLATION 790 # 791 792 # Common prefix for all installed files. Defaults to /usr/local, 793 # but /opt/myjdk is another common version. 794 INSTALL_PREFIX=@prefix@ 795 796 # Directories containing architecture-dependent files should be relative to exec_prefix 797 INSTALL_EXECPREFIX=@exec_prefix@ 798 799 # java,javac,javap etc are installed here. 800 INSTALL_BINDIR=@bindir@ 801 802 # Read only architecture-independent data 803 INSTALL_DATADIR=@datadir@ 804 805 # Root of above. 806 INSTALL_DATAROOTDIR=@datarootdir@ 807 808 # Doc files, other than info and man. 809 INSTALL_DOCDIR=@docdir@ 810 811 # Html documentation 812 INSTALL_HTMLDIR=@htmldir@ 813 814 # Installing C header files, JNI headers for example. 815 INSTALL_INCLUDEDIR=@includedir@ 816 817 # Installing library files.... 818 INSTALL_INCLUDEDIR=@libdir@ 819 820 # Executables that other programs run. 821 INSTALL_LIBEXECDIR=@libexecdir@ 822 823 # Locale-dependent but architecture-independent data, such as message catalogs. 824 INSTALL_LOCALEDIR=@localedir@ 825 826 # Modifiable single-machine data 827 INSTALL_LOCALSTATEDIR=@localstatedir@ 828 829 # Man pages 830 INSTALL_MANDIR=@mandir@ 831 832 # Modifiable architecture-independent data. 833 INSTALL_SHAREDSTATEDIR=@sharedstatedir@ 834 835 # Read-only single-machine data 836 INSTALL_SYSCONFDIR=@sysconfdir@ 837 838 #################################################### 839 # 840 # Libraries 841 # 842 843 USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@ 844 LCMS_CFLAGS:=@LCMS_CFLAGS@ 845 LCMS_LIBS:=@LCMS_LIBS@ 846 847 USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ 848 PNG_LIBS:=@PNG_LIBS@ 849 PNG_CFLAGS:=@PNG_CFLAGS@ 850 851 #################################################### 852 # 853 # Misc 854 # 855 856 INCLUDE_SA=@INCLUDE_SA@ 857 INCLUDE_GRAAL=@INCLUDE_GRAAL@ 858 INCLUDE_JVMCI=@INCLUDE_JVMCI@ 859 860 OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ 861 OS_VERSION_MINOR:=@OS_VERSION_MINOR@ 862 OS_VERSION_MICRO:=@OS_VERSION_MICRO@ 863 864 # Images directory definitions 865 JDK_IMAGE_SUBDIR:=jdk 866 JRE_IMAGE_SUBDIR:=jre 867 JCOV_IMAGE_SUBDIR := jdk-jcov 868 869 # Colon left out to be able to override output dir for bootcycle-images 870 JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) 871 JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) 872 JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR) 873 874 # Test image, as above 875 TEST_IMAGE_SUBDIR:=test 876 TEST_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) 877 878 # Symbols image 879 SYMBOLS_IMAGE_SUBDIR:=symbols 880 SYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) 881 882 # Interim image 883 INTERIM_JMODS_DIR := $(SUPPORT_OUTPUTDIR)/interim-jmods 884 INTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image 885 886 # Docs image 887 DOCS_IMAGE_SUBDIR := docs 888 DOCS_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_IMAGE_SUBDIR) 889 # Output docs directly into image 890 DOCS_OUTPUTDIR := $(DOCS_IMAGE_DIR) 891 892 # Static libs image 893 STATIC_LIBS_IMAGE_SUBDIR := static-libs 894 STATIC_LIBS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_IMAGE_SUBDIR) 895 896 # Graal builder image 897 GRAAL_BUILDER_IMAGE_SUBDIR := graal-builder-jdk 898 GRAAL_BUILDER_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(GRAAL_BUILDER_IMAGE_SUBDIR) 899 900 # Macosx bundles directory definitions 901 JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle 902 JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle 903 JDK_MACOSX_BUNDLE_SUBDIR_SIGNED=jdk-bundle-signed 904 JRE_MACOSX_BUNDLE_SUBDIR_SIGNED=jre-bundle-signed 905 JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) 906 JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) 907 JDK_MACOSX_BUNDLE_DIR_SIGNED=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR_SIGNED) 908 JRE_MACOSX_BUNDLE_DIR_SIGNED=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR_SIGNED) 909 JDK_MACOSX_BUNDLE_TOP_DIR=jdk-$(VERSION_NUMBER).jdk 910 JRE_MACOSX_BUNDLE_TOP_DIR=jre-$(VERSION_NUMBER).jre 911 JDK_MACOSX_CONTENTS_SUBDIR=$(JDK_MACOSX_BUNDLE_TOP_DIR)/Contents 912 JRE_MACOSX_CONTENTS_SUBDIR=$(JRE_MACOSX_BUNDLE_TOP_DIR)/Contents 913 JDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR) 914 JRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR) 915 916 # Bundle names 917 BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) 918 ifeq ($(DEBUG_LEVEL), fastdebug) 919 DEBUG_PART := -debug 920 else ifneq ($(DEBUG_LEVEL), release) 921 DEBUG_PART := -$(DEBUG_LEVEL) 922 endif 923 ifeq ($(OPENJDK_TARGET_OS), windows) 924 JDK_BUNDLE_EXTENSION := zip 925 else 926 JDK_BUNDLE_EXTENSION := tar.gz 927 endif 928 JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) 929 JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) 930 JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz 931 TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz 932 TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz 933 DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz 934 STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz 935 JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) 936 937 JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME) 938 JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME) 939 JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME) 940 TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME) 941 TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME) 942 DOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME) 943 JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME) 944 945 # This macro is called to allow inclusion of closed source counterparts. 946 # Unless overridden in closed sources, it expands to nothing. 947 # Usage: This function is called in an open makefile, with the following 948 # argument: 949 # $1 the name of the makefile 950 define IncludeCustomExtension 951 endef 952 953 # Include the custom-spec.gmk file if it exists 954 -include $(dir @SPEC@)/custom-spec.gmk