From 83b71e861f3ada6678c5ba83066dd05a39f16483 Mon Sep 17 00:00:00 2001 From: "Keith W. Campbell" Date: Fri, 31 May 2024 16:19:52 -0400 Subject: [PATCH] Revert "Simplify and improve module dependency management" This reverts commit 9f8f8605158ca032ef20b4ec8044431575db02dd. Signed-off-by: Keith W. Campbell --- closed/{custom/Main-post.gmk => GensrcJ9JCL.gmk} | 13 +++++++------ closed/OpenJ9.gmk | 1 + closed/autoconf/custom-spec.gmk.in | 1 + closed/custom/Main.gmk | 8 ++++++++ closed/custom/common/Modules.gmk | 13 +++++++++++++ 5 files changed, 30 insertions(+), 6 deletions(-) rename closed/{custom/Main-post.gmk => GensrcJ9JCL.gmk} (94%) diff --git a/closed/custom/Main-post.gmk b/closed/GensrcJ9JCL.gmk similarity index 94% rename from closed/custom/Main-post.gmk rename to closed/GensrcJ9JCL.gmk index 2b20224083..6cc0d3df43 100644 --- a/closed/custom/Main-post.gmk +++ b/closed/GensrcJ9JCL.gmk @@ -18,6 +18,12 @@ # 2 along with this work; if not, see . # =========================================================================== +.PHONY : all + +all : + +include $(SPEC) +include $(TOPDIR)/make/common/MakeBase.gmk include $(TOPDIR)/closed/JPP.gmk RecursiveWildcard = $(foreach dir,$(wildcard $1/*),$(call RecursiveWildcard,$(dir),$2) $(filter $(subst *,%,$2),$(dir))) @@ -53,8 +59,6 @@ $(eval $(call SetupCopyFiles,COPY_OVERLAY_FILES, \ IncludeIfUnsure := -includeIfUnsure -noWarnIncludeIf -J9JCL_SOURCES_DONEFILE := $(MAKESUPPORT_OUTPUTDIR)/j9jcl.done - $(J9JCL_SOURCES_DONEFILE) : \ $(foreach dir, $(JppSourceDirs), $(call RecursiveWildcard,$(dir),*)) \ $(COPY_OVERLAY_FILES) @@ -76,7 +80,4 @@ $(J9JCL_SOURCES_DONEFILE) : \ @$(MKDIR) -p $(@D) @$(TOUCH) $@ -# Force (re-)generation of module dependencies after preprocessing OpenJ9 source files. -$(MODULE_DEPS_MAKEFILE) : $(J9JCL_SOURCES_DONEFILE) - -# $(error in Main-post.gmk) +all : $(J9JCL_SOURCES_DONEFILE) diff --git a/closed/OpenJ9.gmk b/closed/OpenJ9.gmk index 5a7e9a55ee..3042116e80 100644 --- a/closed/OpenJ9.gmk +++ b/closed/OpenJ9.gmk @@ -27,6 +27,7 @@ ifeq (,$(wildcard $(SPEC))) endif include $(SPEC) include $(TOPDIR)/make/common/MakeBase.gmk +include $(TOPDIR)/closed/JPP.gmk ifeq (,$(BUILD_ID)) BUILD_ID := 000000 diff --git a/closed/autoconf/custom-spec.gmk.in b/closed/autoconf/custom-spec.gmk.in index bce99fa2c5..2ea6623745 100644 --- a/closed/autoconf/custom-spec.gmk.in +++ b/closed/autoconf/custom-spec.gmk.in @@ -166,6 +166,7 @@ $(foreach var, \ $(eval $(var) += -I$(SUPPORT_OUTPUTDIR)/openj9_include)) J9JCL_SOURCES_DIR := $(SUPPORT_OUTPUTDIR)/j9jcl +J9JCL_SOURCES_DONEFILE := $(MAKESUPPORT_OUTPUTDIR)/j9jcl.done ifeq (riscv64,$(OPENJDK_TARGET_CPU)) ifeq (cross,$(COMPILE_TYPE)) diff --git a/closed/custom/Main.gmk b/closed/custom/Main.gmk index fcb702dce7..43131afd24 100644 --- a/closed/custom/Main.gmk +++ b/closed/custom/Main.gmk @@ -36,6 +36,14 @@ PHASE_MAKEDIRS := $(TOPDIR)/closed/make $(PHASE_MAKEDIRS) OPENJ9_MAKE := $(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/closed/OpenJ9.gmk +# An early part of the build process involves computing the list of main targets. +# Those targets include {module}-java, {module}-jmod, etc. which requires that the +# set of module names be known. We must build and run the preprocessor to ensure the +# modules specific to OpenJ9 will be found and included in that set. The next two +# rules make that happen. + +create-main-targets-include java.base-gensrc : generate-j9jcl-sources + j9vm-build : buildtools-langtools ifeq ($(BUILD_OPENSSL),yes) @+$(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/closed/openssl.gmk diff --git a/closed/custom/common/Modules.gmk b/closed/custom/common/Modules.gmk index 1a10f34246..445fe5569f 100644 --- a/closed/custom/common/Modules.gmk +++ b/closed/custom/common/Modules.gmk @@ -59,3 +59,16 @@ TOP_SRC_DIRS += \ ifeq (true,$(BUILD_OPENJCEPLUS)) TOP_SRC_DIRS += $(OPENJCEPLUS_TOPDIR)/src/main endif + +.PHONY : generate-j9jcl-sources + +generate-j9jcl-sources $(J9JCL_SOURCES_DONEFILE) : + @+$(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/closed/GensrcJ9JCL.gmk + +# When building multiple configurations at once (e.g. 'make CONF= images') +# the 'create-main-targets-include' target will only be considered for the +# first configuration; J9JCL source generation will be delayed for other +# configurations. In order to produce a complete module-deps.gmk, we need +# to ensure that the J9JCL source has been generated. + +-include $(J9JCL_SOURCES_DONEFILE)