Skip to content

Commit 7130b6f

Browse files
committed
Encapsulate retrieval and display of git SHAs
Use functions to deal uniformly with optional repositories or failures. Signed-off-by: Keith W. Campbell <[email protected]>
1 parent 2abe659 commit 7130b6f

File tree

1 file changed

+38
-23
lines changed

1 file changed

+38
-23
lines changed

closed/OpenJ9.gmk

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,49 @@ ifeq (,$(BUILD_ID))
3232
BUILD_ID := 000000
3333
endif
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).
4669
OPENJ9_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)
6078
endif
6179

6280
ifeq (true,$(OPENJ9_ENABLE_CMAKE))
@@ -256,8 +274,8 @@ else # OPENJ9_ENABLE_CRIU_SUPPORT
256274
endif # OPENJ9_ENABLE_CRIU_SUPPORT
257275

258276
# Adjust OpenJDK MethodHandles enablement flags.
259-
FEATURE_SED_SCRIPT += $(call SedEnable,opt_openjdkMethodhandle)
260277
FEATURE_SED_SCRIPT += $(call SedDisable,opt_methodHandle)
278+
FEATURE_SED_SCRIPT += $(call SedEnable,opt_openjdkMethodhandle)
261279

262280
# Disable windows rebase.
263281
SPEC_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

499517
build-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

Comments
 (0)