diff --git a/make/RunTestsPrebuilt.gmk b/make/RunTestsPrebuilt.gmk index 3ea0d330d58..f5fe1d33830 100644 --- a/make/RunTestsPrebuilt.gmk +++ b/make/RunTestsPrebuilt.gmk @@ -131,7 +131,7 @@ $(eval $(call SetupVariable,MAKE,make,NO_CHECK)) $(eval $(call SetupVariable,BASH,bash,NO_CHECK)) # Check optional variables -$(eval $(call SetupVariable,JIB_HOME,OPTIONAL)) +$(eval $(call SetupVariable,JIB_JAR,OPTIONAL)) # Now that we have verified that we have the required variables available, we # can include the prebuilt spec file ourselves, without an ephemeral spec @@ -265,7 +265,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \ SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \ MAKE := $(MAKE), \ BASH := $(BASH), \ - JIB_HOME := $(JIB_HOME), \ + JIB_JAR := $(JIB_JAR), \ FIXPATH_BASE := $(FIXPATH_BASE), \ FIXPATH := $(FIXPATH), \ OPENJDK_TARGET_OS := $(OPENJDK_TARGET_OS), \ @@ -295,7 +295,6 @@ test-prebuilt: # ExecuteWithLog is called in RunTests.gmk. The PrepareFailureLogs macro # is unfortunately not available at this point. $(call MakeDir, $(MAKESUPPORT_OUTPUTDIR)/failure-logs) - $(call MakeDir, $(JAVA_TMP_DIR)) @$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error # We need to fill the FindTest cache before entering RunTests.gmk. @cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) SPEC=$(SPEC) \ diff --git a/make/RunTestsPrebuiltSpec.gmk b/make/RunTestsPrebuiltSpec.gmk index 132532b3b38..e9fd901c9e1 100644 --- a/make/RunTestsPrebuiltSpec.gmk +++ b/make/RunTestsPrebuiltSpec.gmk @@ -27,6 +27,9 @@ # Fake minimalistic spec file for RunTestsPrebuilt.gmk. ################################################################################ +# Make sure all shell commands are executed with the C locale +export LC_ALL := C + define VerifyVariable ifeq ($$($1), ) $$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk) @@ -54,18 +57,26 @@ $(eval $(call VerifyVariable,BASH)) # The "human readable" name of this configuration CONF_NAME := run-test-prebuilt -LOCALE_USED := C - # Number of parallel jobs to use for compilation -CONF_JOBS := $(NUM_CORES) -CONF_TEST_JOBS := 0 +JOBS ?= $(NUM_CORES) +TEST_JOBS ?= 0 # Use hard-coded values for java flags (one size, fits all!) JAVA_FLAGS := -Duser.language=en -Duser.country=US JAVA_FLAGS_BIG := -Xms64M -Xmx2048M JAVA_FLAGS_SMALL := -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1 -BUILD_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1 -BOOTCYCLE_JVM_ARGS_BIG := $(JAVA_FLAGS_BIG) +BUILDJDK_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1 +BUILD_JAVA_FLAGS := $(JAVA_FLAGS_BIG) + +################################################################################ +# Hard-coded values copied from spec.gmk.in. +X := +SPACE := $(X) $(X) +COMMA := , +MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ + MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL) +BASH_ARGS := -o pipefail -e +SHELL := $(BASH) $(BASH_ARGS) ################################################################################ # Set some reasonable defaults for features @@ -73,6 +84,20 @@ DEBUG_LEVEL := release HOTSPOT_DEBUG_LEVEL := release BUILD_FAILURE_HANDLER := true +################################################################################ +# Alias some paths (that should not really be used) to our JDK image under test. +SUPPORT_OUTPUTDIR := $(OUTPUTDIR)/support +BUILDTOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools +HOTSPOT_OUTPUTDIR := $(OUTPUTDIR)/hotspot +JDK_OUTPUTDIR := $(OUTPUTDIR)/jdk +IMAGES_OUTPUTDIR := $(OUTPUTDIR)/images +BUNDLES_OUTPUTDIR := $(OUTPUTDIR)/bundles +TESTMAKE_OUTPUTDIR := $(OUTPUTDIR)/test-make +MAKESUPPORT_OUTPUTDIR := $(OUTPUTDIR)/make-support +BUILDJDK_OUTPUTDIR := $(OUTPUTDIR)/buildjdk + +JRE_IMAGE_DIR := $(JDK_IMAGE_DIR) + ################################################################################ # Assume build platform is same as target platform OPENJDK_BUILD_OS := $(OPENJDK_TARGET_OS) @@ -84,19 +109,30 @@ OPENJDK_BUILD_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH) OPENJDK_BUILD_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS) OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN) -EXTERNAL_BUILDJDK_PATH := - ################################################################################ # Java executable definitions -JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java -JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac -JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar +JAVA_CMD := $(BOOT_JDK)/bin/java +JAVAC_CMD := $(BOOT_JDK)/bin/javac +JAR_CMD := $(BOOT_JDK)/bin/jar +JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink +JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod +JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) +JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) +JAVAC := $(FIXPATH) $(JAVAC_CMD) +JAR := $(FIXPATH) $(JAR_CMD) +JLINK := $(FIXPATH) $(JLINK_CMD) +JMOD := $(FIXPATH) $(JMOD_CMD) + +JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) + +BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA ################################################################################ # Some common tools. Assume most common name and no path. AWK := awk BASENAME := basename CAT := cat +CD := cd CHMOD := chmod CP := cp CUT := cut diff --git a/make/autoconf/boot-jdk.m4 b/make/autoconf/boot-jdk.m4 index 49a3842573c..1dd768b2ae1 100644 --- a/make/autoconf/boot-jdk.m4 +++ b/make/autoconf/boot-jdk.m4 @@ -376,10 +376,10 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK], AC_SUBST(BOOT_JDK) # Setup tools from the Boot JDK. - BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA_CMD, java) - BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC_CMD, javac) - BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC_CMD, javadoc) - BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR_CMD, jar) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar) # Finally, set some other options... diff --git a/make/autoconf/bootcycle-spec.gmk.template b/make/autoconf/bootcycle-spec.gmk.template index 572ea8f221f..8b6035606a5 100644 --- a/make/autoconf/bootcycle-spec.gmk.template +++ b/make/autoconf/bootcycle-spec.gmk.template @@ -28,4 +28,23 @@ # First include the real base spec.gmk file include @SPEC@ -IS_BOOTCYCLE_JDK_SPEC := true +# Override specific values to do a boot cycle build + +# Use a different Boot JDK +BOOT_JDK := $(JDK_IMAGE_DIR) + +# The bootcycle build has a different output directory +OLD_OUTPUTDIR := @OUTPUTDIR@ +OUTPUTDIR := $(OLD_OUTPUTDIR)/bootcycle-build +# No spaces in patsubst to avoid leading space in variable +JAVAC_SERVER_DIR := $(patsubst $(OLD_OUTPUTDIR)%,$(OUTPUTDIR)%,$(JAVAC_SERVER_DIR)) + +JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java +JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac +JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar +# The bootcycle JVM arguments may differ from the original boot jdk. +JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@ +# Any CDS settings generated for the bootjdk are invalid in the bootcycle build. +# By filtering out those JVM args, the bootcycle JVM will use its default +# settings for CDS. +JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS)) diff --git a/make/autoconf/build-performance.m4 b/make/autoconf/build-performance.m4 index 49ae9b39cf2..dfc9e979d2f 100644 --- a/make/autoconf/build-performance.m4 +++ b/make/autoconf/build-performance.m4 @@ -130,18 +130,18 @@ AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS], memory_gb=`expr $MEMORY_SIZE / 1024` # Pick the lowest of memory in gb and number of cores. if test "$memory_gb" -lt "$NUM_CORES"; then - CONF_JOBS="$memory_gb" + JOBS="$memory_gb" else - CONF_JOBS="$NUM_CORES" + JOBS="$NUM_CORES" fi - if test "$CONF_JOBS" -eq "0"; then - CONF_JOBS=1 + if test "$JOBS" -eq "0"; then + JOBS=1 fi - AC_MSG_RESULT([$CONF_JOBS]) + AC_MSG_RESULT([$JOBS]) else - CONF_JOBS=$with_jobs + JOBS=$with_jobs fi - AC_SUBST(CONF_JOBS) + AC_SUBST(JOBS) ]) AC_DEFUN_ONCE([BPERF_SETUP_TEST_JOBS], @@ -150,11 +150,11 @@ AC_DEFUN_ONCE([BPERF_SETUP_TEST_JOBS], AC_ARG_WITH(test-jobs, [AS_HELP_STRING([--with-test-jobs], [number of parallel tests jobs to run @<:@based on build jobs@:>@])]) if test "x$with_test_jobs" = x; then - CONF_TEST_JOBS=0 + TEST_JOBS=0 else - CONF_TEST_JOBS=$with_test_jobs + TEST_JOBS=$with_test_jobs fi - AC_SUBST(CONF_TEST_JOBS) + AC_SUBST(TEST_JOBS) ]) AC_DEFUN([BPERF_SETUP_CCACHE], diff --git a/make/autoconf/buildjdk-spec.gmk.template b/make/autoconf/buildjdk-spec.gmk.template index 02f2a6396ce..924389b94e8 100644 --- a/make/autoconf/buildjdk-spec.gmk.template +++ b/make/autoconf/buildjdk-spec.gmk.template @@ -30,4 +30,81 @@ # First include the real base spec.gmk file include @SPEC@ -IS_BUILD_JDK_SPEC := true +CC := @BUILD_CC@ +CXX := @BUILD_CXX@ +# Ideally this should be probed by configure but that is tricky to implement, +# and this should work in most cases. +CPP := @BUILD_CC@ -E +LD := @BUILD_LD@ +LDCXX := @BUILD_LDCXX@ +AS := @BUILD_AS@ +NM := @BUILD_NM@ +AR := @BUILD_AR@ +LIB := @BUILD_LIB@ +OBJCOPY := @BUILD_OBJCOPY@ +STRIP := @BUILD_STRIP@ +SYSROOT_CFLAGS := @BUILD_SYSROOT_CFLAGS@ +SYSROOT_LDFLAGS := @BUILD_SYSROOT_LDFLAGS@ + +# These directories should not be moved to BUILDJDK_OUTPUTDIR +HOTSPOT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(HOTSPOT_OUTPUTDIR)) +BUILDTOOLS_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(BUILDTOOLS_OUTPUTDIR)) +SUPPORT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(SUPPORT_OUTPUTDIR)) +JDK_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(JDK_OUTPUTDIR)) +IMAGES_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(IMAGES_OUTPUTDIR)) + +OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@ +OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@ +OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@ +OPENJDK_TARGET_CPU := @OPENJDK_BUILD_CPU@ +OPENJDK_TARGET_CPU_ARCH := @OPENJDK_BUILD_CPU_ARCH@ +OPENJDK_TARGET_CPU_BITS := @OPENJDK_BUILD_CPU_BITS@ +OPENJDK_TARGET_CPU_ENDIAN := @OPENJDK_BUILD_CPU_ENDIAN@ +OPENJDK_TARGET_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@ +OPENJDK_TARGET_LIBC := @OPENJDK_BUILD_LIBC@ +OPENJDK_TARGET_OS_INCLUDE_SUBDIR := @OPENJDK_BUILD_OS_INCLUDE_SUBDIR@ + +HOTSPOT_TARGET_OS := @HOTSPOT_BUILD_OS@ +HOTSPOT_TARGET_OS_TYPE := @HOTSPOT_BUILD_OS_TYPE@ +HOTSPOT_TARGET_CPU := @HOTSPOT_BUILD_CPU@ +HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_BUILD_CPU_ARCH@ +HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_BUILD_CPU_DEFINE@ +HOTSPOT_TARGET_LIBC := @HOTSPOT_BUILD_LIBC@ + +CFLAGS_JDKLIB := @OPENJDK_BUILD_CFLAGS_JDKLIB@ +CXXFLAGS_JDKLIB := @OPENJDK_BUILD_CXXFLAGS_JDKLIB@ +LDFLAGS_JDKLIB := @OPENJDK_BUILD_LDFLAGS_JDKLIB@ +CFLAGS_JDKEXE := @OPENJDK_BUILD_CFLAGS_JDKEXE@ +CXXFLAGS_JDKEXE := @OPENJDK_BUILD_CXXFLAGS_JDKEXE@ +LDFLAGS_JDKEXE := @OPENJDK_BUILD_LDFLAGS_JDKEXE@ + +JVM_CFLAGS := @OPENJDK_BUILD_JVM_CFLAGS@ +JVM_LDFLAGS := @OPENJDK_BUILD_JVM_LDFLAGS@ +JVM_ASFLAGS := @OPENJDK_BUILD_JVM_ASFLAGS@ +JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@ + +FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@ + +INTERIM_LANGTOOLS_ARGS := $(subst $(OUTPUTDIR),$(BUILDJDK_OUTPUTDIR),$(INTERIM_LANGTOOLS_ARGS)) + +# The compiler for the build platform is likely not warning compatible with the official +# compiler. +WARNINGS_AS_ERRORS := false +DISABLE_WARNING_PREFIX := @BUILD_CC_DISABLE_WARNING_PREFIX@ + +# Save speed and disk space by not enabling debug symbols for the buildjdk +ENABLE_DEBUG_SYMBOLS := false + +JVM_VARIANTS := server +JVM_VARIANT_MAIN := server +JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc + +# Some users still set EXTRA_*FLAGS on the make command line. Must +# make sure to override that when building buildjdk. +override EXTRA_CFLAGS := +override EXTRA_CXXFLAGS := +override EXTRA_LDFLAGS := + +# hsdis is not needed +HSDIS_BACKEND := none +ENABLE_HSDIS_BUNDLING := false diff --git a/make/autoconf/help.m4 b/make/autoconf/help.m4 index 4dc3cb5c267..d8c0b2ffaef 100644 --- a/make/autoconf/help.m4 +++ b/make/autoconf/help.m4 @@ -305,7 +305,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS], $ECHO "* Version string: $VERSION_STRING ($VERSION_SHORT)" if test "x$SOURCE_DATE" != xupdated; then - source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601_FIXED)" + source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601)" else source_date_info="Determined at build time" fi @@ -330,7 +330,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS], $ECHO "" $ECHO "Build performance summary:" - $ECHO "* Build jobs: $CONF_JOBS" + $ECHO "* Build jobs: $JOBS" $ECHO "* Memory limit: $MEMORY_SIZE MB" if test "x$CCACHE_STATUS" != "x"; then $ECHO "* ccache status: $CCACHE_STATUS" diff --git a/make/autoconf/hotspot.m4 b/make/autoconf/hotspot.m4 index aba5f1ef1d2..6dc46d17aa3 100644 --- a/make/autoconf/hotspot.m4 +++ b/make/autoconf/hotspot.m4 @@ -129,7 +129,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_MISC], AC_MSG_RESULT([determined at build time (default)]) else # If we have a fixed value for SOURCE_DATE, use it as default - HOTSPOT_BUILD_TIME="$SOURCE_DATE_ISO_8601_FIXED" + HOTSPOT_BUILD_TIME="$SOURCE_DATE_ISO_8601" AC_MSG_RESULT([$HOTSPOT_BUILD_TIME (from --with-source-date)]) fi fi diff --git a/make/autoconf/jdk-options.m4 b/make/autoconf/jdk-options.m4 index 6de43d0a169..d4299078abf 100644 --- a/make/autoconf/jdk-options.m4 +++ b/make/autoconf/jdk-options.m4 @@ -897,15 +897,15 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD], # for the rest of configure. SOURCE_DATE_EPOCH="$SOURCE_DATE" if test "x$IS_GNU_DATE" = xyes; then - SOURCE_DATE_ISO_8601_FIXED=`$DATE --utc --date="@$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null` + SOURCE_DATE_ISO_8601=`$DATE --utc --date="@$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null` else - SOURCE_DATE_ISO_8601_FIXED=`$DATE -u -j -f "%s" "$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null` + SOURCE_DATE_ISO_8601=`$DATE -u -j -f "%s" "$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null` fi fi AC_SUBST(SOURCE_DATE) AC_SUBST(ISO_8601_FORMAT_STRING) - AC_SUBST(SOURCE_DATE_ISO_8601_FIXED) + AC_SUBST(SOURCE_DATE_ISO_8601) ]) ################################################################################ diff --git a/make/autoconf/spec.gmk.template b/make/autoconf/spec.gmk.template index 3258e87e2be..0b336721d65 100644 --- a/make/autoconf/spec.gmk.template +++ b/make/autoconf/spec.gmk.template @@ -46,15 +46,33 @@ SPEC := @SPEC@ # Path to autoconf if overridden by the user, to be used by "make reconfigure" AUTOCONF := @AUTOCONF@ +# SPACE and COMMA are defined in MakeBase.gmk, but they are also used in +# some definitions here, and are needed if MakeBase.gmk is not included before +# this file. +X := +SPACE := $(X) $(X) +COMMA := , + # What make to use for main processing, after bootstrapping top-level Makefile. MAKE := @MAKE@ +# Make sure all shell commands are executed with a proper locale +export LC_ALL := @LOCALE_USED@ + +# Make sure we override any local CLASSPATH variable +export CLASSPATH := @CLASSPATH@ + +# The default make arguments +MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ + MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS) + OUTPUT_SYNC_SUPPORTED := @OUTPUT_SYNC_SUPPORTED@ OUTPUT_SYNC := @OUTPUT_SYNC@ # Override the shell with bash BASH := @BASH@ BASH_ARGS := @BASH_ARGS@ +SHELL := $(BASH) $(BASH_ARGS) # The "human readable" name of this configuration CONF_NAME := @CONF_NAME@ @@ -103,33 +121,9 @@ OPENJDK_BUILD_CPU_ARCH := @OPENJDK_BUILD_CPU_ARCH@ OPENJDK_BUILD_CPU_BITS := @OPENJDK_BUILD_CPU_BITS@ OPENJDK_BUILD_CPU_ENDIAN := @OPENJDK_BUILD_CPU_ENDIAN@ -OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@ -OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@ OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@ -OPENJDK_BUILD_OS_INCLUDE_SUBDIR := @OPENJDK_BUILD_OS_INCLUDE_SUBDIR@ - -HOTSPOT_BUILD_OS := @HOTSPOT_BUILD_OS@ -HOTSPOT_BUILD_OS_TYPE := @HOTSPOT_BUILD_OS_TYPE@ -HOTSPOT_BUILD_CPU := @HOTSPOT_BUILD_CPU@ -HOTSPOT_BUILD_CPU_ARCH := @HOTSPOT_BUILD_CPU_ARCH@ -HOTSPOT_BUILD_CPU_DEFINE := @HOTSPOT_BUILD_CPU_DEFINE@ -HOTSPOT_BUILD_LIBC := @HOTSPOT_BUILD_LIBC@ - -OPENJDK_BUILD_CFLAGS_JDKLIB := @OPENJDK_BUILD_CFLAGS_JDKLIB@ -OPENJDK_BUILD_CXXFLAGS_JDKLIB := @OPENJDK_BUILD_CXXFLAGS_JDKLIB@ -OPENJDK_BUILD_LDFLAGS_JDKLIB := @OPENJDK_BUILD_LDFLAGS_JDKLIB@ -OPENJDK_BUILD_CFLAGS_JDKEXE := @OPENJDK_BUILD_CFLAGS_JDKEXE@ -OPENJDK_BUILD_CXXFLAGS_JDKEXE := @OPENJDK_BUILD_CXXFLAGS_JDKEXE@ -OPENJDK_BUILD_LDFLAGS_JDKEXE := @OPENJDK_BUILD_LDFLAGS_JDKEXE@ - -OPENJDK_BUILD_JVM_CFLAGS := @OPENJDK_BUILD_JVM_CFLAGS@ -OPENJDK_BUILD_JVM_LDFLAGS := @OPENJDK_BUILD_JVM_LDFLAGS@ -OPENJDK_BUILD_JVM_ASFLAGS := @OPENJDK_BUILD_JVM_ASFLAGS@ -OPENJDK_BUILD_JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@ - -OPENJDK_BUILD_FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@ -BUILD_CC_DISABLE_WARNING_PREFIX := @BUILD_CC_DISABLE_WARNING_PREFIX@ +OPENJDK_BUILD_OS_INCLUDE_SUBDIR := @OPENJDK_TARGET_OS_INCLUDE_SUBDIR@ # Target platform value in ModuleTarget class file attribute. OPENJDK_MODULE_TARGET_PLATFORM := @OPENJDK_MODULE_TARGET_PLATFORM@ @@ -141,7 +135,12 @@ RELEASE_FILE_LIBC := @RELEASE_FILE_LIBC@ SOURCE_DATE := @SOURCE_DATE@ ISO_8601_FORMAT_STRING := @ISO_8601_FORMAT_STRING@ -SOURCE_DATE_ISO_8601_FIXED := @SOURCE_DATE_ISO_8601_FIXED@ + +ifneq ($(SOURCE_DATE), updated) + # For "updated" source date value, these are set in InitSupport.gmk + export SOURCE_DATE_EPOCH := $(SOURCE_DATE) + SOURCE_DATE_ISO_8601 := @SOURCE_DATE_ISO_8601@ +endif LIBM := @LIBM@ LIBDL := @LIBDL@ @@ -150,9 +149,23 @@ LIBPTHREAD := @LIBPTHREAD@ WINENV_ROOT := @WINENV_ROOT@ WINENV_PREFIX := @WINENV_PREFIX@ +ifneq ($(findstring windows.wsl, @OPENJDK_BUILD_OS_ENV@), ) + # Tell WSL to convert PATH between linux and windows + export WSLENV := PATH/l +else ifeq (@OPENJDK_BUILD_OS_ENV@, windows.msys2) + # Prohibit msys2 from attempting any path wrangling + export MSYS2_ARG_CONV_EXCL := "*" +endif + # Save the original path before replacing it with the Visual Studio tools ORIGINAL_PATH := @ORIGINAL_PATH@ +ifeq (@TOOLCHAIN_TYPE@, microsoft) + # The Visual Studio toolchain needs the PATH to be adjusted to include + # Visual Studio tools. + export PATH := @TOOLCHAIN_PATH@:$(PATH) +endif + SYSROOT_CFLAGS := @SYSROOT_CFLAGS@ SYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@ @@ -217,6 +230,8 @@ VERSION_NUMBER_FOUR_POSITIONS := @VERSION_NUMBER_FOUR_POSITIONS@ VERSION_STRING := @VERSION_STRING@ # The short version string, without trailing zeroes and just PRE, if present. VERSION_SHORT := @VERSION_SHORT@ +# The Java specification version. It usually equals the feature version number. +VERSION_SPECIFICATION := @VERSION_FEATURE@ # A GA version is defined by the PRE string being empty. Rather than testing for # that, this variable defines it with true/false. VERSION_IS_GA := @VERSION_IS_GA@ @@ -236,6 +251,57 @@ VERSION_DOCS_API_SINCE := @VERSION_DOCS_API_SINCE@ JDK_SOURCE_TARGET_VERSION := @JDK_SOURCE_TARGET_VERSION@ +# Convenience CFLAGS settings for passing version information into native programs. +VERSION_CFLAGS = \ + -DVERSION_FEATURE=$(VERSION_FEATURE) \ + -DVERSION_INTERIM=$(VERSION_INTERIM) \ + -DVERSION_UPDATE=$(VERSION_UPDATE) \ + -DVERSION_PATCH=$(VERSION_PATCH) \ + -DVERSION_EXTRA1=$(VERSION_EXTRA1) \ + -DVERSION_EXTRA2=$(VERSION_EXTRA2) \ + -DVERSION_EXTRA3=$(VERSION_EXTRA3) \ + -DVERSION_PRE='"$(VERSION_PRE)"' \ + -DVERSION_BUILD=$(VERSION_BUILD) \ + -DVERSION_OPT='"$(VERSION_OPT)"' \ + -DVERSION_NUMBER='"$(VERSION_NUMBER)"' \ + -DVERSION_STRING='"$(VERSION_STRING)"' \ + -DVERSION_SHORT='"$(VERSION_SHORT)"' \ + -DVERSION_SPECIFICATION='"$(VERSION_SPECIFICATION)"' \ + -DVERSION_DATE='"$(VERSION_DATE)"' \ + -DVENDOR_VERSION_STRING='"$(VENDOR_VERSION_STRING)"' \ + -DVERSION_CLASSFILE_MAJOR=$(VERSION_CLASSFILE_MAJOR) \ + -DVERSION_CLASSFILE_MINOR=$(VERSION_CLASSFILE_MINOR) \ + # + +ifneq ($(COMPANY_NAME), ) + # COMPANY_NAME is set to "N/A" in make/conf/branding.conf by default, + # but can be customized with the '--with-vendor-name' configure option. + # Only export "VENDOR" to the build if COMPANY_NAME contains a real value. + # Otherwise the default value for VENDOR, which is used to set the "java.vendor" + # and "java.vm.vendor" properties is hard-coded into the source code (i.e. in + # VersionProps.java.template in the jdk for "java.vendor" and + # vm_version.cpp in the VM for "java.vm.vendor") + ifneq ($(COMPANY_NAME), N/A) + VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"' + endif +endif + +# Only export VENDOR_URL, VENDOR_URL_BUG and VENDOR_VM_URL_BUG to the build if +# they are not empty. Otherwise, default values which are defined in the sources +# will be used. +ifneq ($(VENDOR_URL), ) + VERSION_CFLAGS += -DVENDOR_URL='"$(VENDOR_URL)"' +endif +ifneq ($(VENDOR_URL_BUG), ) + VERSION_CFLAGS += -DVENDOR_URL_BUG='"$(VENDOR_URL_BUG)"' +endif +ifneq ($(VENDOR_URL_VM_BUG), ) + VERSION_CFLAGS += -DVENDOR_URL_VM_BUG='"$(VENDOR_URL_VM_BUG)"' +endif + +# Different naming strings generated from the above information. +RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX) + # How to compile the code: release, fastdebug or slowdebug DEBUG_LEVEL := @DEBUG_LEVEL@ HOTSPOT_DEBUG_LEVEL := @HOTSPOT_DEBUG_LEVEL@ @@ -277,8 +343,22 @@ ENABLE_FULL_DOCS := @ENABLE_FULL_DOCS@ # You can run $(JDK_OUTPUTDIR)/bin/java OUTPUTDIR := @OUTPUTDIR@ +# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images +SUPPORT_OUTPUTDIR = $(OUTPUTDIR)/support +BUILDTOOLS_OUTPUTDIR = $(OUTPUTDIR)/buildtools +HOTSPOT_OUTPUTDIR = $(OUTPUTDIR)/hotspot +JDK_OUTPUTDIR = $(OUTPUTDIR)/jdk +IMAGES_OUTPUTDIR = $(OUTPUTDIR)/images +BUNDLES_OUTPUTDIR = $(OUTPUTDIR)/bundles +TESTMAKE_OUTPUTDIR = $(OUTPUTDIR)/test-make +MAKESUPPORT_OUTPUTDIR = $(OUTPUTDIR)/make-support + +JAVA_TMP_DIR = $(SUPPORT_OUTPUTDIR)/javatmp + +# This does not get overridden in a bootcycle build CONFIGURESUPPORT_OUTPUTDIR := @CONFIGURESUPPORT_OUTPUTDIR@ +BUILDJDK_OUTPUTDIR = $(OUTPUTDIR)/buildjdk BUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@ @@ -308,6 +388,21 @@ BOOT_JDK := @BOOT_JDK@ EXTERNAL_BUILDJDK_PATH := @EXTERNAL_BUILDJDK_PATH@ +ifneq ($(EXTERNAL_BUILDJDK_PATH), ) + EXTERNAL_BUILDJDK := true + CREATE_BUILDJDK := false + BUILD_JDK := $(EXTERNAL_BUILDJDK_PATH) +else + EXTERNAL_BUILDJDK := false + ifeq ($(COMPILE_TYPE), cross) + CREATE_BUILDJDK := true + BUILD_JDK := $(BUILDJDK_OUTPUTDIR)/jdk + else + CREATE_BUILDJDK := false + BUILD_JDK := $(JDK_OUTPUTDIR) + endif +endif + # Whether the boot jdk jar supports --date=TIMESTAMP BOOT_JDK_JAR_SUPPORTS_DATE := @BOOT_JDK_JAR_SUPPORTS_DATE@ @@ -318,10 +413,13 @@ OLDEST_BOOT_JDK_VERSION := @OLDEST_BOOT_JDK_VERSION@ NUM_CORES := @NUM_CORES@ MEMORY_SIZE := @MEMORY_SIZE@ ENABLE_JAVAC_SERVER := @ENABLE_JAVAC_SERVER@ +# Store javac server synchronization files here, and +# the javac server log files. +JAVAC_SERVER_DIR = $(MAKESUPPORT_OUTPUTDIR)/javacservers # Number of parallel jobs to use for compilation -CONF_JOBS := @CONF_JOBS@ -CONF_TEST_JOBS := @CONF_TEST_JOBS@ +JOBS ?= @JOBS@ +TEST_JOBS ?= @TEST_JOBS@ # Default make target DEFAULT_MAKE_TARGET := @DEFAULT_MAKE_TARGET@ @@ -439,7 +537,7 @@ ADLC_LANGSTD_CXXFLAGS := @ADLC_LANGSTD_CXXFLAGS@ ADLC_LDFLAGS := @ADLC_LDFLAGS@ # Tools that potentially need to be cross compilation aware. -CC := @CC@ +CC := @CCACHE@ @ICECC@ @CC@ # CFLAGS used to compile the jdk native libraries (C-code) CFLAGS_JDKLIB := @CFLAGS_JDKLIB@ @@ -465,7 +563,7 @@ EXTRA_CXXFLAGS := @EXTRA_CXXFLAGS@ EXTRA_LDFLAGS := @EXTRA_LDFLAGS@ EXTRA_ASFLAGS := @EXTRA_ASFLAGS@ -CXX := @CXX@ +CXX := @CCACHE@ @ICECC@ @CXX@ CPP := @CPP@ @@ -496,8 +594,8 @@ LIBCXX := @LIBCXX@ # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the # build platform. -BUILD_CC := @BUILD_CC@ -BUILD_CXX := @BUILD_CXX@ +BUILD_CC := @BUILD_ICECC@ @BUILD_CC@ +BUILD_CXX := @BUILD_ICECC@ @BUILD_CXX@ BUILD_LD := @BUILD_LD@ BUILD_LDCXX := @BUILD_LDCXX@ BUILD_AS := @BUILD_AS@ @@ -548,24 +646,77 @@ OBJ_SUFFIX := @OBJ_SUFFIX@ STRIPFLAGS := @STRIPFLAGS@ -JAVA_FLAGS := @JAVA_FLAGS@ +JAVA_FLAGS_TMPDIR := -Djava.io.tmpdir=$(JAVA_TMP_DIR) +JAVA_FLAGS := @JAVA_FLAGS@ $(JAVA_FLAGS_TMPDIR) JAVA_FLAGS_BIG := @JAVA_FLAGS_BIG@ JAVA_FLAGS_SMALL := @JAVA_FLAGS_SMALL@ BUILD_JAVA_FLAGS_SMALL := @BUILD_JAVA_FLAGS_SMALL@ JAVA_TOOL_FLAGS_SMALL := @JAVA_TOOL_FLAGS_SMALL@ -# Do not use the *_CMD versions of the variables directly. -JAVA_CMD := @JAVA_CMD@ -JAVAC_CMD := @JAVAC_CMD@ -JAVADOC_CMD := @JAVADOC_CMD@ -JAR_CMD := @JAR_CMD@ +# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk +# for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD +# versions of the variables directly. +JAVA_CMD := @JAVA@ +JAVAC_CMD := @JAVAC@ +JAVADOC_CMD := @JAVADOC@ +JAR_CMD := @JAR@ +JLINK_CMD := @FIXPATH@ $(BUILD_JDK)/bin/jlink +JMOD_CMD := @FIXPATH@ $(BUILD_JDK)/bin/jmod +# These variables are meant to be used. They are defined with = instead of := to make +# it possible to override only the *_CMD variables. +JAVA = $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) +JAVA_SMALL = $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) +JAVAC = $(JAVAC_CMD) +JAVADOC = $(JAVADOC_CMD) +JAR = $(JAR_CMD) +JLINK = $(JLINK_CMD) +JMOD = $(JMOD_CMD) JTREG_JDK := @JTREG_JDK@ +JTREG_JAVA = @FIXPATH@ $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) -BOOTCYCLE_JVM_ARGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@ +BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@ +BUILD_JAVA = @FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) +BUILD_JAVA_SMALL = @FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS_SMALL) +BUILD_JAVAC = @FIXPATH@ $(BUILD_JDK)/bin/javac +BUILD_JAR = @FIXPATH@ $(BUILD_JDK)/bin/jar DOCS_REFERENCE_JAVADOC := @DOCS_REFERENCE_JAVADOC@ +# A file containing a way to uniquely identify the source code revision that +# the build was created from +SOURCE_REVISION_TRACKER := $(SUPPORT_OUTPUTDIR)/src-rev/source-revision-tracker + +# Interim langtools modules and arguments +INTERIM_LANGTOOLS_BASE_MODULES := java.compiler jdk.compiler jdk.internal.md jdk.javadoc +INTERIM_LANGTOOLS_MODULES := $(addsuffix .interim, $(INTERIM_LANGTOOLS_BASE_MODULES)) +INTERIM_LANGTOOLS_ADD_EXPORTS := \ + --add-exports java.base/sun.reflect.annotation=jdk.compiler.interim \ + --add-exports java.base/jdk.internal.jmod=jdk.compiler.interim \ + --add-exports java.base/jdk.internal.misc=jdk.compiler.interim \ + --add-exports java.base/sun.invoke.util=jdk.compiler.interim \ + --add-exports java.base/jdk.internal.javac=java.compiler.interim \ + --add-exports java.base/jdk.internal.javac=jdk.compiler.interim \ + --add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \ + --add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim \ + # +INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \ + $(INTERIM_LANGTOOLS_MODULES)))) +INTERIM_LANGTOOLS_ARGS := \ + --limit-modules java.base,jdk.zipfs,$(INTERIM_LANGTOOLS_MODULES_COMMA) \ + --add-modules $(INTERIM_LANGTOOLS_MODULES_COMMA) \ + --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules \ + --patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \ + $(INTERIM_LANGTOOLS_ADD_EXPORTS) \ + # +JAVAC_MAIN_CLASS := -m jdk.compiler.interim/com.sun.tools.javac.Main +JAVADOC_MAIN_CLASS := -m jdk.javadoc.interim/jdk.javadoc.internal.tool.Main + +# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... +# Use = assignment to be able to override in bootcycle-spec.gmk +NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) $(JAVAC_MAIN_CLASS) +NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS) + JMOD_COMPRESS := @JMOD_COMPRESS@ JLINK_KEEP_PACKAGED_MODULES := @JLINK_KEEP_PACKAGED_MODULES@ JLINK_PRODUCE_LINKABLE_RUNTIME := @JLINK_PRODUCE_LINKABLE_RUNTIME@ @@ -578,6 +729,8 @@ AWK := @AWK@ BASENAME := @BASENAME@ CAT := @CAT@ CCACHE := @CCACHE@ +# CD is going away, but remains to cater for legacy makefiles. +CD := cd CHMOD := @CHMOD@ CMAKE := @CMAKE@ CODESIGN := @CODESIGN@ @@ -628,6 +781,7 @@ MT := @MT@ RC := @RC@ DUMPBIN := @DUMPBIN@ PATHTOOL := @PATHTOOL@ +WSLPATH := @WSLPATH@ LDD := @LDD@ OTOOL := @OTOOL@ READELF := @READELF@ @@ -692,11 +846,110 @@ OS_VERSION_MICRO := @OS_VERSION_MICRO@ # Arm SVE SVE_CFLAGS := @SVE_CFLAGS@ -BUILD_ICECC := @BUILD_ICECC@ -ICECC := @ICECC@ -TOOLCHAIN_PATH := @TOOLCHAIN_PATH@ -LOCALE_USED := @LOCALE_USED@ -CLASSPATH := @CLASSPATH@ +# Images directory definitions +JDK_IMAGE_SUBDIR := jdk +JRE_IMAGE_SUBDIR := jre +JCOV_IMAGE_SUBDIR := jdk-jcov +STATIC_JDK_IMAGE_SUBDIR := static-jdk + +# Colon left out to be able to override output dir for bootcycle-images +JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) +JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) +STATIC_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(STATIC_JDK_IMAGE_SUBDIR) +JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR) + +# Test image, as above +TEST_IMAGE_SUBDIR := test +TEST_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) + +# Symbols image +SYMBOLS_IMAGE_SUBDIR := symbols +SYMBOLS_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) + +# Interim image +INTERIM_JMODS_DIR := $(SUPPORT_OUTPUTDIR)/interim-jmods +INTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image + +# Docs image +DOCS_JDK_IMAGE_SUBDIR := docs +DOCS_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_JDK_IMAGE_SUBDIR) +DOCS_JAVASE_IMAGE_SUBDIR := docs-javase +DOCS_JAVASE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_JAVASE_IMAGE_SUBDIR) +DOCS_REFERENCE_IMAGE_SUBDIR := docs-reference +DOCS_REFERENCE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_REFERENCE_IMAGE_SUBDIR) +# Output docs directly into image +DOCS_OUTPUTDIR := $(DOCS_JDK_IMAGE_DIR) + +# Static libs image +STATIC_LIBS_IMAGE_SUBDIR := static-libs +STATIC_LIBS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_IMAGE_SUBDIR) + +# Graal static libs image +STATIC_LIBS_GRAAL_IMAGE_SUBDIR := static-libs-graal +STATIC_LIBS_GRAAL_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_GRAAL_IMAGE_SUBDIR) + +# Graal builder image +GRAAL_BUILDER_IMAGE_SUBDIR := graal-builder-jdk +GRAAL_BUILDER_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(GRAAL_BUILDER_IMAGE_SUBDIR) + +# Macosx bundles directory definitions +JDK_MACOSX_BUNDLE_SUBDIR := jdk-bundle +JRE_MACOSX_BUNDLE_SUBDIR := jre-bundle +JDK_MACOSX_BUNDLE_SUBDIR_SIGNED := jdk-bundle-signed +JRE_MACOSX_BUNDLE_SUBDIR_SIGNED := jre-bundle-signed +JDK_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) +JRE_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) +JDK_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR_SIGNED) +JRE_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR_SIGNED) +JDK_MACOSX_BUNDLE_TOP_SUBDIR = jdk-$(VERSION_NUMBER).jdk +JRE_MACOSX_BUNDLE_TOP_SUBDIR = jre-$(VERSION_NUMBER).jre +JDK_MACOSX_CONTENTS_SUBDIR = $(JDK_MACOSX_BUNDLE_TOP_SUBDIR)/Contents +JRE_MACOSX_CONTENTS_SUBDIR = $(JRE_MACOSX_BUNDLE_TOP_SUBDIR)/Contents +JDK_MACOSX_CONTENTS_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR) +JRE_MACOSX_CONTENTS_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR) +JDK_MACOSX_BUNDLE_TOP_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_BUNDLE_TOP_SUBDIR) +JRE_MACOSX_BUNDLE_TOP_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_BUNDLE_TOP_SUBDIR) + +# Bundle names +ifneq ($(VERSION_BUILD), ) + BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) +else + BASE_NAME := $(VERSION_SHORT)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) +endif + +ifeq ($(DEBUG_LEVEL), fastdebug) + DEBUG_PART := -debug +else ifneq ($(DEBUG_LEVEL), release) + DEBUG_PART := -$(DEBUG_LEVEL) +endif +ifeq ($(OPENJDK_TARGET_OS), windows) + JDK_BUNDLE_EXTENSION := zip +else + JDK_BUNDLE_EXTENSION := tar.gz +endif +JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) +JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) +JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz +TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz +TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz +DOCS_JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz +DOCS_JAVASE_BUNDLE_NAME := javase-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz +DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz +STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz +STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz +STATIC_JDK_BUNDLE_NAME := static-jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) +JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) + +JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME) +JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME) +JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME) +TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME) +TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME) +DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME) +DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME) +DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME) +STATIC_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(STATIC_JDK_BUNDLE_NAME) +JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME) # This macro is called to allow inclusion of closed source counterparts. # Unless overridden in closed sources, it expands to nothing. @@ -707,4 +960,4 @@ define IncludeCustomExtension endef # Include the custom-spec.gmk file if it exists --include $(dir $(SPEC))/custom-spec.gmk +-include $(dir @SPEC@)/custom-spec.gmk diff --git a/make/common/CommonVars.gmk b/make/common/CommonVars.gmk deleted file mode 100644 index 1ee6cc27481..00000000000 --- a/make/common/CommonVars.gmk +++ /dev/null @@ -1,442 +0,0 @@ -# -# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -include MakeIncludeStart.gmk -ifeq ($(INCLUDE), true) - -################################################################################ -# CommonVars include common variables and definitions used in multiple -# makefiles. -################################################################################ - -# Make sure all shell commands are executed with a proper locale -export LC_ALL := $(LOCALE_USED) - -# Make sure we override any local CLASSPATH variable -export CLASSPATH := $(CLASSPATH) - -# The default make arguments -MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ - MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS) - -SHELL := $(BASH) $(BASH_ARGS) - -ifneq ($(SOURCE_DATE), updated) - # For "updated" source date value, these are set in InitSupport.gmk - export SOURCE_DATE_EPOCH := $(SOURCE_DATE) - SOURCE_DATE_ISO_8601 := $(SOURCE_DATE_ISO_8601_FIXED) -endif - -ifneq ($(findstring windows.wsl, $(OPENJDK_BUILD_OS_ENV)), ) - # Tell WSL to convert PATH between linux and windows - export WSLENV := PATH/l -else ifeq ($(OPENJDK_BUILD_OS_ENV), windows.msys2) - # Prohibit msys2 from attempting any path wrangling - export MSYS2_ARG_CONV_EXCL := "*" -endif - -ifeq ($(TOOLCHAIN_TYPE), microsoft) - # The Visual Studio toolchain needs the PATH to be adjusted to include - # Visual Studio tools. - export PATH := $(TOOLCHAIN_PATH):$(PATH) -endif - -# The Java specification version. It usually equals the feature version number. -VERSION_SPECIFICATION := $(VERSION_FEATURE) - -# Convenience CFLAGS settings for passing version information into native programs. -VERSION_CFLAGS = \ - -DVERSION_FEATURE=$(VERSION_FEATURE) \ - -DVERSION_INTERIM=$(VERSION_INTERIM) \ - -DVERSION_UPDATE=$(VERSION_UPDATE) \ - -DVERSION_PATCH=$(VERSION_PATCH) \ - -DVERSION_EXTRA1=$(VERSION_EXTRA1) \ - -DVERSION_EXTRA2=$(VERSION_EXTRA2) \ - -DVERSION_EXTRA3=$(VERSION_EXTRA3) \ - -DVERSION_PRE='"$(VERSION_PRE)"' \ - -DVERSION_BUILD=$(VERSION_BUILD) \ - -DVERSION_OPT='"$(VERSION_OPT)"' \ - -DVERSION_NUMBER='"$(VERSION_NUMBER)"' \ - -DVERSION_STRING='"$(VERSION_STRING)"' \ - -DVERSION_SHORT='"$(VERSION_SHORT)"' \ - -DVERSION_SPECIFICATION='"$(VERSION_SPECIFICATION)"' \ - -DVERSION_DATE='"$(VERSION_DATE)"' \ - -DVENDOR_VERSION_STRING='"$(VENDOR_VERSION_STRING)"' \ - -DVERSION_CLASSFILE_MAJOR=$(VERSION_CLASSFILE_MAJOR) \ - -DVERSION_CLASSFILE_MINOR=$(VERSION_CLASSFILE_MINOR) \ - # - -ifneq ($(COMPANY_NAME), ) - # COMPANY_NAME is set to "N/A" in make/conf/branding.conf by default, - # but can be customized with the '--with-vendor-name' configure option. - # Only export "VENDOR" to the build if COMPANY_NAME contains a real value. - # Otherwise the default value for VENDOR, which is used to set the "java.vendor" - # and "java.vm.vendor" properties is hard-coded into the source code (i.e. in - # VersionProps.java.template in the jdk for "java.vendor" and - # vm_version.cpp in the VM for "java.vm.vendor") - ifneq ($(COMPANY_NAME), N/A) - VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"' - endif -endif - -# Only export VENDOR_URL, VENDOR_URL_BUG and VENDOR_VM_URL_BUG to the build if -# they are not empty. Otherwise, default values which are defined in the sources -# will be used. -ifneq ($(VENDOR_URL), ) - VERSION_CFLAGS += -DVENDOR_URL='"$(VENDOR_URL)"' -endif -ifneq ($(VENDOR_URL_BUG), ) - VERSION_CFLAGS += -DVENDOR_URL_BUG='"$(VENDOR_URL_BUG)"' -endif -ifneq ($(VENDOR_URL_VM_BUG), ) - VERSION_CFLAGS += -DVENDOR_URL_VM_BUG='"$(VENDOR_URL_VM_BUG)"' -endif - -# Different naming strings generated from the above information. -RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX) - -# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images -SUPPORT_OUTPUTDIR = $(OUTPUTDIR)/support -BUILDTOOLS_OUTPUTDIR = $(OUTPUTDIR)/buildtools - -HOTSPOT_OUTPUTDIR = $(OUTPUTDIR)/hotspot -JDK_OUTPUTDIR = $(OUTPUTDIR)/jdk -IMAGES_OUTPUTDIR = $(OUTPUTDIR)/images -BUNDLES_OUTPUTDIR = $(OUTPUTDIR)/bundles -TESTMAKE_OUTPUTDIR = $(OUTPUTDIR)/test-make -MAKESUPPORT_OUTPUTDIR = $(OUTPUTDIR)/make-support - -JAVA_TMP_DIR = $(SUPPORT_OUTPUTDIR)/javatmp - -BUILDJDK_OUTPUTDIR = $(OUTPUTDIR)/buildjdk - -ifneq ($(EXTERNAL_BUILDJDK_PATH), ) - EXTERNAL_BUILDJDK := true - CREATE_BUILDJDK := false - BUILD_JDK := $(EXTERNAL_BUILDJDK_PATH) -else - EXTERNAL_BUILDJDK := false - ifeq ($(COMPILE_TYPE), cross) - CREATE_BUILDJDK := true - BUILD_JDK := $(BUILDJDK_OUTPUTDIR)/jdk - else - CREATE_BUILDJDK := false - BUILD_JDK := $(JDK_OUTPUTDIR) - endif -endif - -# Store javac server synchronization files here, and -# the javac server log files. -JAVAC_SERVER_DIR = $(MAKESUPPORT_OUTPUTDIR)/javacservers - -# Number of parallel jobs to use for compilation -JOBS ?= $(CONF_JOBS) -TEST_JOBS ?= $(CONF_TEST_JOBS) - -# Tools that potentially need to be cross compilation aware. -CC := $(CCACHE) $(ICECC) $(CC) - -CXX := $(CCACHE) $(ICECC) $(CXX) - -# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the -# build platform. -BUILD_CC := $(BUILD_ICECC) $(BUILD_CC) -BUILD_CXX := $(BUILD_ICECC) $(BUILD_CXX) - -JAVA_FLAGS_TMPDIR := -Djava.io.tmpdir=$(JAVA_TMP_DIR) -JAVA_FLAGS := $(JAVA_FLAGS) $(JAVA_FLAGS_TMPDIR) - -JLINK_CMD := $(FIXPATH) $(BUILD_JDK)/bin/jlink -JMOD_CMD := $(FIXPATH) $(BUILD_JDK)/bin/jmod - -# These variables are meant to be used. They are defined with = instead of := to make -# it possible to override only the *_CMD variables. -JAVA = $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) -JAVA_SMALL = $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) -JAVAC = $(JAVAC_CMD) -JAVADOC = $(JAVADOC_CMD) -JAR = $(JAR_CMD) -JLINK = $(JLINK_CMD) -JMOD = $(JMOD_CMD) - -JTREG_JAVA = $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) - -BUILD_JAVA_FLAGS := $(BOOTCYCLE_JVM_ARGS_BIG) -BUILD_JAVA = $(FIXPATH) $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) -BUILD_JAVA_SMALL = $(FIXPATH) $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS_SMALL) -BUILD_JAVAC = $(FIXPATH) $(BUILD_JDK)/bin/javac -BUILD_JAR = $(FIXPATH) $(BUILD_JDK)/bin/jar - -# A file containing a way to uniquely identify the source code revision that -# the build was created from -SOURCE_REVISION_TRACKER := $(SUPPORT_OUTPUTDIR)/src-rev/source-revision-tracker - -# Interim langtools modules and arguments -INTERIM_LANGTOOLS_BASE_MODULES := java.compiler jdk.compiler jdk.internal.md jdk.javadoc -INTERIM_LANGTOOLS_MODULES := $(addsuffix .interim, $(INTERIM_LANGTOOLS_BASE_MODULES)) -INTERIM_LANGTOOLS_ADD_EXPORTS := \ - --add-exports java.base/sun.reflect.annotation=jdk.compiler.interim \ - --add-exports java.base/jdk.internal.jmod=jdk.compiler.interim \ - --add-exports java.base/jdk.internal.misc=jdk.compiler.interim \ - --add-exports java.base/sun.invoke.util=jdk.compiler.interim \ - --add-exports java.base/jdk.internal.javac=java.compiler.interim \ - --add-exports java.base/jdk.internal.javac=jdk.compiler.interim \ - --add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \ - --add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim \ - # -INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \ - $(INTERIM_LANGTOOLS_MODULES)))) -INTERIM_LANGTOOLS_ARGS := \ - --limit-modules java.base,jdk.zipfs,$(INTERIM_LANGTOOLS_MODULES_COMMA) \ - --add-modules $(INTERIM_LANGTOOLS_MODULES_COMMA) \ - --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules \ - --patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \ - $(INTERIM_LANGTOOLS_ADD_EXPORTS) \ - # - -JAVADOC_MAIN_CLASS := -m jdk.javadoc.interim/jdk.javadoc.internal.tool.Main -# Use = assignment to pick up overridden INTERIM_LANGTOOLS_ARGS in bootcycle builds -NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS) - -# CD is going away, but remains to cater for legacy makefiles. -CD := cd - -# Images directory definitions -JDK_IMAGE_SUBDIR := jdk -JRE_IMAGE_SUBDIR := jre -JCOV_IMAGE_SUBDIR := jdk-jcov -STATIC_JDK_IMAGE_SUBDIR := static-jdk - -# Colon left out to be able to override output dir for bootcycle-images -ifeq ($(JDK_IMAGE_DIR), ) - JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) -endif -JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) -STATIC_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(STATIC_JDK_IMAGE_SUBDIR) -ifeq ($(JCOV_IMAGE_DIR), ) - JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR) -endif -# Test image, as above -TEST_IMAGE_SUBDIR := test -ifeq ($(TEST_IMAGE_DIR), ) - TEST_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) -endif - -# Symbols image -SYMBOLS_IMAGE_SUBDIR := symbols -ifeq ($(SYMBOLS_IMAGE_DIR), ) - SYMBOLS_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) -endif - -# Interim image -INTERIM_JMODS_DIR := $(SUPPORT_OUTPUTDIR)/interim-jmods -INTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image - -# Docs image -DOCS_JDK_IMAGE_SUBDIR := docs -DOCS_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_JDK_IMAGE_SUBDIR) -DOCS_JAVASE_IMAGE_SUBDIR := docs-javase -DOCS_JAVASE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_JAVASE_IMAGE_SUBDIR) -DOCS_REFERENCE_IMAGE_SUBDIR := docs-reference -DOCS_REFERENCE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_REFERENCE_IMAGE_SUBDIR) -# Output docs directly into image -DOCS_OUTPUTDIR := $(DOCS_JDK_IMAGE_DIR) - -# Static libs image -STATIC_LIBS_IMAGE_SUBDIR := static-libs -STATIC_LIBS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_IMAGE_SUBDIR) - -# Graal static libs image -STATIC_LIBS_GRAAL_IMAGE_SUBDIR := static-libs-graal -STATIC_LIBS_GRAAL_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_GRAAL_IMAGE_SUBDIR) - -# Graal builder image -GRAAL_BUILDER_IMAGE_SUBDIR := graal-builder-jdk -GRAAL_BUILDER_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(GRAAL_BUILDER_IMAGE_SUBDIR) - -# Macosx bundles directory definitions -JDK_MACOSX_BUNDLE_SUBDIR := jdk-bundle -JRE_MACOSX_BUNDLE_SUBDIR := jre-bundle -JDK_MACOSX_BUNDLE_SUBDIR_SIGNED := jdk-bundle-signed -JRE_MACOSX_BUNDLE_SUBDIR_SIGNED := jre-bundle-signed -JDK_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) -JRE_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) -JDK_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR_SIGNED) -JRE_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR_SIGNED) -JDK_MACOSX_BUNDLE_TOP_SUBDIR = jdk-$(VERSION_NUMBER).jdk -JRE_MACOSX_BUNDLE_TOP_SUBDIR = jre-$(VERSION_NUMBER).jre -JDK_MACOSX_CONTENTS_SUBDIR = $(JDK_MACOSX_BUNDLE_TOP_SUBDIR)/Contents -JRE_MACOSX_CONTENTS_SUBDIR = $(JRE_MACOSX_BUNDLE_TOP_SUBDIR)/Contents -JDK_MACOSX_CONTENTS_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR) -JRE_MACOSX_CONTENTS_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR) -JDK_MACOSX_BUNDLE_TOP_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_BUNDLE_TOP_SUBDIR) -JRE_MACOSX_BUNDLE_TOP_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_BUNDLE_TOP_SUBDIR) - -# Bundle names -ifneq ($(VERSION_BUILD), ) - BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) -else - BASE_NAME := $(VERSION_SHORT)_$(OPENJDK_TARGET_BUNDLE_PLATFORM) -endif - -ifeq ($(DEBUG_LEVEL), fastdebug) - DEBUG_PART := -debug -else ifneq ($(DEBUG_LEVEL), release) - DEBUG_PART := -$(DEBUG_LEVEL) -endif -ifeq ($(OPENJDK_TARGET_OS), windows) - JDK_BUNDLE_EXTENSION := zip -else - JDK_BUNDLE_EXTENSION := tar.gz -endif -JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) -JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) -JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz -TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz -TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz -DOCS_JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz -DOCS_JAVASE_BUNDLE_NAME := javase-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz -DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz -STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz -STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz -STATIC_JDK_BUNDLE_NAME := static-jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) -JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION) - -JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME) -JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME) -JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME) -TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME) -TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME) -DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME) -DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME) -DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME) -STATIC_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(STATIC_JDK_BUNDLE_NAME) -JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME) - -ifeq ($(IS_BUILD_JDK_SPEC), true) - CC := $(BUILD_CC) - CXX := $(BUILD_CXX) - # Ideally this should be probed by configure but that is tricky to implement, - # and this should work in most cases. - CPP := $(BUILD_CC) -E - LD := $(BUILD_LD) - LDCXX := $(BUILD_LDCXX) - AS := $(BUILD_AS) - NM := $(BUILD_NM) - AR := $(BUILD_AR) - LIB := $(BUILD_LIB) - OBJCOPY := $(BUILD_OBJCOPY) - STRIP := $(BUILD_STRIP) - SYSROOT_CFLAGS := $(BUILD_SYSROOT_CFLAGS) - SYSROOT_LDFLAGS := $(BUILD_SYSROOT_LDFLAGS) - - # These directories should not be moved to BUILDJDK_OUTPUTDIR - HOTSPOT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(HOTSPOT_OUTPUTDIR)) - BUILDTOOLS_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(BUILDTOOLS_OUTPUTDIR)) - SUPPORT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(SUPPORT_OUTPUTDIR)) - JDK_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(JDK_OUTPUTDIR)) - IMAGES_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(IMAGES_OUTPUTDIR)) - - OPENJDK_TARGET_CPU := $(OPENJDK_BUILD_CPU) - OPENJDK_TARGET_CPU_ARCH := $(OPENJDK_BUILD_CPU_ARCH) - OPENJDK_TARGET_CPU_BITS := $(OPENJDK_BUILD_CPU_BITS) - OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_BUILD_CPU_ENDIAN) - OPENJDK_TARGET_CPU_LEGACY := $(OPENJDK_BUILD_CPU_LEGACY) - OPENJDK_TARGET_LIBC := $(OPENJDK_BUILD_LIBC) - OPENJDK_TARGET_OS_INCLUDE_SUBDIR := $(OPENJDK_BUILD_OS_INCLUDE_SUBDIR) - - HOTSPOT_TARGET_OS := $(HOTSPOT_BUILD_OS) - HOTSPOT_TARGET_OS_TYPE := $(HOTSPOT_BUILD_OS_TYPE) - HOTSPOT_TARGET_CPU := $(HOTSPOT_BUILD_CPU) - HOTSPOT_TARGET_CPU_ARCH := $(HOTSPOT_BUILD_CPU_ARCH) - HOTSPOT_TARGET_CPU_DEFINE := $(HOTSPOT_BUILD_CPU_DEFINE) - HOTSPOT_TARGET_LIBC := $(HOTSPOT_BUILD_LIBC) - - CFLAGS_JDKLIB := $(OPENJDK_BUILD_CFLAGS_JDKLIB) - CXXFLAGS_JDKLIB := $(OPENJDK_BUILD_CXXFLAGS_JDKLIB) - LDFLAGS_JDKLIB := $(OPENJDK_BUILD_LDFLAGS_JDKLIB) - CFLAGS_JDKEXE := $(OPENJDK_BUILD_CFLAGS_JDKEXE) - CXXFLAGS_JDKEXE := $(OPENJDK_BUILD_CXXFLAGS_JDKEXE) - LDFLAGS_JDKEXE := $(OPENJDK_BUILD_LDFLAGS_JDKEXE) - - JVM_CFLAGS := $(OPENJDK_BUILD_JVM_CFLAGS) - JVM_LDFLAGS := $(OPENJDK_BUILD_JVM_LDFLAGS) - JVM_ASFLAGS := $(OPENJDK_BUILD_JVM_ASFLAGS) - JVM_LIBS := $(OPENJDK_BUILD_JVM_LIBS) - - FDLIBM_CFLAGS := $(OPENJDK_BUILD_FDLIBM_CFLAGS) - - INTERIM_LANGTOOLS_ARGS := $(subst $(OUTPUTDIR),$(BUILDJDK_OUTPUTDIR),$(INTERIM_LANGTOOLS_ARGS)) - - # The compiler for the build platform is likely not warning compatible with the official - # compiler. - WARNINGS_AS_ERRORS := false - DISABLE_WARNING_PREFIX := $(BUILD_CC_DISABLE_WARNING_PREFIX) - - # Save speed and disk space by not enabling debug symbols for the buildjdk - ENABLE_DEBUG_SYMBOLS := false - - JVM_VARIANTS := server - JVM_VARIANT_MAIN := server - JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc - - # Some users still set EXTRA_*FLAGS on the make command line. Must - # make sure to override that when building buildjdk. - override EXTRA_CFLAGS := - override EXTRA_CXXFLAGS := - override EXTRA_LDFLAGS := - - # hsdis is not needed - HSDIS_BACKEND := none - ENABLE_HSDIS_BUNDLING := false -endif - -ifeq ($(IS_BOOTCYCLE_JDK_SPEC), true) - # Override specific values to do a boot cycle build - - # Use a different Boot JDK - BOOT_JDK := $(JDK_IMAGE_DIR) - - # The bootcycle build has a different output directory - OLD_OUTPUTDIR := $(OUTPUTDIR) - OUTPUTDIR := $(OLD_OUTPUTDIR)/bootcycle-build - # No spaces in patsubst to avoid leading space in variable - JAVAC_SERVER_DIR := $(patsubst $(OLD_OUTPUTDIR)%,$(OUTPUTDIR)%,$(JAVAC_SERVER_DIR)) - - JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java - JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac - JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar - # The bootcycle JVM arguments may differ from the original boot jdk. - JAVA_FLAGS_BIG := $(BOOTCYCLE_JVM_ARGS_BIG) - # Any CDS settings generated for the bootjdk are invalid in the bootcycle build. - # By filtering out those JVM args, the bootcycle JVM will use its default - # settings for CDS. - JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS)) -endif - -################################################################################ - -include MakeIncludeEnd.gmk -endif # include guard diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk index 2bc5d562924..97ef88932cb 100644 --- a/make/common/MakeBase.gmk +++ b/make/common/MakeBase.gmk @@ -75,7 +75,6 @@ endif # least for now. # Utils.gmk must be included before FileUtils.gmk, since it uses some of the # basic utility functions there. -include $(TOPDIR)/make/common/CommonVars.gmk include $(TOPDIR)/make/common/Utils.gmk include $(TOPDIR)/make/common/FileUtils.gmk