Proposal: make/Main.gmk Add extra extension/override points to the make file
Erik Joelsson
erik.joelsson at oracle.com
Fri Feb 16 19:19:06 UTC 2018
Hello,
I would rename the JVM_VARIANT_TARGETS to JVM_MAIN_LIB_TARGETS. The
purpose of this target is to be the minimal amount of prerequisites
before we can start linking to -ljvm. I would also move the definition
of that variable down to its first use, like the other variables.
I'm not clear on the difference between JVM_BUILD_TARGETS and
JVM_MAIN_TARGETS. They should probably be merged.
The docs targets comment needs a newline before it.
Otherwise this looks ok.
/Erik
On 2018-02-14 07:01, Steve Groeger wrote:
> diff -r b2f2bdba0472 make/Main.gmk
> --- a/make/Main.gmkFri Jan 26 11:27:53 2018 -0800
> +++ b/make/Main.gmkWed Feb 14 14:37:15 2018 +0000
> @@ -56,6 +56,9 @@
> # All modules for the current target platform.
> ALL_MODULES := $(call FindAllModules)
> +# If not already set, set the JVM variant target so that the JVM will
> be built.
> +JVM_VARIANT_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-libs
> +
> ################################################################################
> ################################################################################
> #
> @@ -645,7 +648,7 @@
> generate-exported-symbols: java.base-libs jdk.jdwp.agent-libs
> # Building one JVM variant is enough to start building the other libs
> - $(LIBS_TARGETS): hotspot-$(JVM_VARIANT_MAIN)-libs
> + $(LIBS_TARGETS): $(JVM_VARIANT_TARGETS)
> $(LAUNCHER_TARGETS): java.base-libs
> @@ -722,8 +725,11 @@
> java.base-jmod: jrtfs-jar $(filter-out java.base-jmod,
> $(JMOD_TARGETS))
> endif
> - # Building java.base-jmod requires all of hotspot to be built.
> - java.base-jmod: hotspot
> + # If not already set, set the JVM target so that the JVM will be built.
> + JVM_MAIN_TARGETS ?= hotspot
> +
> + # Building java.base-jmod requires all of VM (ie hotspot) to be built.
> + java.base-jmod: $(JVM_MAIN_TARGETS)
> # Declare dependencies from <module>-jmod to all other module targets
> # When creating a BUILDJDK, the java compilation has already been
> done by the
> @@ -749,7 +755,7 @@
> # in java.base-copy) and tzdb.dat (done in java.base-gendata) to the
> # appropriate location otherwise jimage, jlink and jmod won't
> start. This
> # also applies when creating the buildjdk.
> - DEFAULT_JMOD_DEPS := java.base-libs java.base-copy java.base-gendata \
> + DEFAULT_JMOD_DEPS += java.base-libs java.base-copy java.base-gendata \
> jdk.jlink-launchers
> # When cross compiling and buildjdk is to be created, depend on
> creating the
> # buildjdk instead of the default dependencies.
> @@ -824,9 +830,11 @@
> docs-javase-api-modulegraph: exploded-image buildtools-modules
> docs-reference-api-modulegraph: exploded-image buildtools-modules
> -
> + # If not already set, then set the JVM specific docs targets
> + JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc
> +
> # The gensrc steps for hotspot and jdk.jdi create html spec files.
> - docs-jdk-specs: hotspot-$(JVM_VARIANT_MAIN)-gensrc jdk.jdi-gensrc \
> + docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
> docs-jdk-index
> docs-jdk-index: exploded-image buildtools-modules
> @@ -893,8 +901,10 @@
> ################################################################################
> # Virtual targets without recipes
> +# If not already set, set the JVM specific tools targets
> +JVM_TOOLS_TARGETS ?= buildtools-hotspot
> buildtools: buildtools-langtools interim-langtools interim-rmic \
> - buildtools-jdk buildtools-hotspot
> + buildtools-jdk $(JVM_TOOLS_TARGETS)
> hotspot: $(HOTSPOT_VARIANT_TARGETS) hotspot-jsig
> @@ -936,8 +946,11 @@
> $(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers))
> $(foreach m, $(ALL_COPY_MODULES), $(eval $m: $m-copy))
> +# If not already set, set the JVM specific build targets
> +JVM_BUILD_TARGETS ?= hotspot
> +
> # Building java.base includes building all of hotspot.
> -java.base: hotspot
> +java.base: $(JVM_BUILD_TARGETS)
> demos: demos-jdk
> @@ -1004,10 +1017,15 @@
> # This target builds the documentation image
> docs-image: docs-jdk
> +# If not already set, set the JVM specific targets to built the test
> image
> +JVM_TEST_IMAGE_TARGETS ?= test-image-hotspot-jtreg-native
> test-image-hotspot-gtest
> +
> # This target builds the test image
> -test-image: prepare-test-image test-image-hotspot-jtreg-native \
> - test-image-jdk-jtreg-native test-image-failure-handler
> test-image-hotspot-gtest \
> - test-image-demos-jdk
> +test-image: prepare-test-image \
> + test-image-jdk-jtreg-native test-image-failure-handler \
> + test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
> +
> +################################################################################
> # all-images builds all our deliverables as images.
> all-images: product-images test-image docs-image
> @@ -1146,7 +1164,10 @@
> $(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
> ################################################################################
> +# Hook to include the corresponding custom file, if present.
> +$(eval $(call IncludeCustomExtension, Main-post.gmk))
> .PHONY: $(ALL_TARGETS)
> FRC: # Force target
> +
More information about the build-dev
mailing list