@@ -32,31 +32,49 @@ ifeq (,$(BUILD_ID))
3232 BUILD_ID := 000000
3333endif
3434
35- OPENJDK_SHA := $(shell $(GIT) -C $(TOPDIR) rev-parse --short HEAD)
36- ifeq (,$(OPENJDK_SHA))
37- $(error Could not determine OpenJDK SHA)
38- endif
35+ # Auxiliary variables for communication between GetVersion and ShowVersions.
36+ VersionLabelWidth := 1
37+ VersionPairs :=
38+
39+ # GetVersion
40+ # ----------
41+ # $1 - repository display name
42+ # $2 - variable name
43+ # $3 - root directory of git repository
44+ # $4 - 'required' for a required repository, anything else for an optional one
45+ GetVersion = $(eval $(call GetVersionHelper,$(strip $1),$(strip $2),$(strip $3),$(strip $4)))
46+ define GetVersionHelper
47+ $2 := $$(if $(wildcard $3),$$(shell $(GIT) -C $3 rev-parse --short HEAD))
48+ ifneq (,$$($2))
49+ VersionLabelWidth := $(shell $(ECHO) "$1" | $(AWK) "{ width = length; print (width > $(VersionLabelWidth) ? width : $(VersionLabelWidth)) }")
50+ VersionPairs += "$1" "$$($2)"
51+ else ifeq ($4,required)
52+ $$(error Could not determine $2 for $3)
53+ endif
54+ endef # GetVersionHelper
3955
40- OPENJ9_SHA := $(shell $(GIT) -C $(OPENJ9_TOPDIR) rev-parse --short HEAD)
41- ifeq (,$(OPENJ9_SHA))
42- $(error Could not determine OpenJ9 SHA)
43- endif
56+ # ShowVersions
57+ # ---------
58+ define ShowVersions
59+ @$(PRINTF) " Source version info:\n"
60+ @$(PRINTF) " %-$(VersionLabelWidth)s - %s\n" $(VersionPairs)
61+ endef # ShowVersions
62+
63+ $(call GetVersion, openjdk, OPENJDK_SHA, $(TOPDIR), required)
64+ $(call GetVersion, openj9, OPENJ9_SHA, $(OPENJ9_TOPDIR), required)
65+ $(call GetVersion, omr, OPENJ9OMR_SHA, $(OPENJ9OMR_TOPDIR), required)
66+ $(call GetVersion, openssl, OPENSSL_SHA, $(OPENSSL_DIR))
4467
4568# Find OpenJ9 tag associated with current commit (suppressing stderr in case there is no such tag).
4669OPENJ9_TAG := $(shell $(GIT) -C $(OPENJ9_TOPDIR) describe --exact-match HEAD 2>/dev/null)
47- ifeq (,$(OPENJ9_TAG))
70+ ifneq (,$(OPENJ9_TAG))
71+ OPENJ9_VERSION_STRING := $(OPENJ9_TAG)
72+ else
4873 OPENJ9_BRANCH := $(shell $(GIT) -C $(OPENJ9_TOPDIR) rev-parse --abbrev-ref HEAD)
4974 ifeq (,$(OPENJ9_BRANCH))
5075 $(error Could not determine OpenJ9 branch)
5176 endif
5277 OPENJ9_VERSION_STRING := $(OPENJ9_BRANCH)-$(OPENJ9_SHA)
53- else
54- OPENJ9_VERSION_STRING := $(OPENJ9_TAG)
55- endif
56-
57- OPENJ9OMR_SHA := $(shell $(GIT) -C $(OPENJ9OMR_TOPDIR) rev-parse --short HEAD)
58- ifeq (,$(OPENJ9OMR_SHA))
59- $(error Could not determine OMR SHA)
6078endif
6179
6280ifeq (true,$(OPENJ9_ENABLE_CMAKE))
@@ -256,8 +274,8 @@ else # OPENJ9_ENABLE_CRIU_SUPPORT
256274endif # OPENJ9_ENABLE_CRIU_SUPPORT
257275
258276# Adjust OpenJDK MethodHandles enablement flags.
259- FEATURE_SED_SCRIPT += $(call SedEnable,opt_openjdkMethodhandle)
260277FEATURE_SED_SCRIPT += $(call SedDisable,opt_methodHandle)
278+ FEATURE_SED_SCRIPT += $(call SedEnable,opt_openjdkMethodhandle)
261279
262280# Disable windows rebase.
263281SPEC_SED_SCRIPT += $(call SedDisable,uma_windowsRebase)
@@ -339,9 +357,9 @@ ifeq (true,$(OPENJ9_ENABLE_CMAKE))
339357
340358 CMAKE_ARGS := \
341359 -C $(OPENJ9_TOPDIR)/runtime/cmake/caches/$(patsubst %_cross,%,$(OPENJ9_BUILDSPEC)).cmake \
342- -DCMAKE_TOOLCHAIN_FILE="$(OUTPUTDIR)/toolchain.cmake" \
343360 -DBOOT_JDK="$(BOOT_JDK)" \
344361 -DBUILD_ID=$(BUILD_ID) \
362+ -DCMAKE_TOOLCHAIN_FILE="$(OUTPUTDIR)/toolchain.cmake" \
345363 -DJ9VM_OMR_DIR="$(OPENJ9OMR_TOPDIR)" \
346364 -DJAVA_SPEC_VERSION=$(VERSION_FEATURE) \
347365 -DOMR_DDR=$(OPENJ9_ENABLE_DDR) \
@@ -414,8 +432,8 @@ ifeq (true,$(OPENJ9_ENABLE_CMAKE))
414432 CMAKE_ARGS += -DJ9VM_OPT_CRIU_SUPPORT=OFF
415433 endif # OPENJ9_ENABLE_CRIU_SUPPORT
416434
417- CMAKE_ARGS += -DJ9VM_OPT_OPENJDK_METHODHANDLE=ON
418435 CMAKE_ARGS += -DJ9VM_OPT_METHOD_HANDLE=OFF
436+ CMAKE_ARGS += -DJ9VM_OPT_OPENJDK_METHODHANDLE=ON
419437
420438 # Propagate configure option '--disable-warnings-as-errors-omr' to OMR.
421439 ifeq (false,$(WARNINGS_AS_ERRORS_OMR))
@@ -498,10 +516,7 @@ endif # OPENJ9_ENABLE_DDR
498516
499517build-j9 : run-preprocessors-j9
500518 @$(ECHO) "Compiling OpenJ9 in $(OUTPUTDIR)/vm"
501- @$(ECHO) " Source version info:"
502- @$(ECHO) " openjdk - $(OPENJDK_SHA)"
503- @$(ECHO) " openj9 - $(OPENJ9_SHA)"
504- @$(ECHO) " omr - $(OPENJ9OMR_SHA)"
519+ $(call ShowVersions)
505520 +OPENJ9_BUILD=true $(EXPORT_COMPILER_ENV_VARS) $(CUSTOM_COMPILER_ENV_VARS) \
506521 $(MAKE) $(MAKE_ARGS) -C $(OUTPUTDIR)/vm all
507522 @$(ECHO) OpenJ9 compile complete
0 commit comments