diff -r e492513d3630 -r f9ac726ab347 make/Main.gmk --- a/make/Main.gmk Tue Oct 29 14:22:18 2019 -0400 +++ b/make/Main.gmk Tue Oct 29 12:01:14 2019 -0700 @@ -218,6 +218,21 @@ ALL_TARGETS += $(LIBS_TARGETS) ################################################################################ +# Targets for compiling static versions of certain native libraries. These do +# not end up in the jmods or the normal JDK image, but are instead bundled into +# a special deliverable. +$(eval $(call DeclareRecipesForPhase, STATIC_LIBS, \ + TARGET_SUFFIX := static-libs, \ + FILE_PREFIX := Lib, \ + MAKE_SUBDIR := lib, \ + CHECK_MODULES := $(STATIC_LIBS_MODULES), \ + USE_WRAPPER := true, \ + EXTRA_ARGS := STATIC_LIBS=true, \ +)) + +ALL_TARGETS += $(STATIC_LIBS_TARGETS) + +################################################################################ # Targets for compiling native executables $(eval $(call DeclareRecipesForPhase, LAUNCHER, \ TARGET_SUFFIX := launchers, \ @@ -377,6 +392,9 @@ symbols-image: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk symbols) +static-libs-image: + +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f StaticLibsImage.gmk) + mac-jdk-bundle: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk jdk-bundle) @@ -396,7 +414,7 @@ ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \ zip-source jrtfs-jar jdk-image legacy-jre-image \ - symbols-image mac-jdk-bundle mac-legacy-jre-bundle \ + symbols-image static-libs-image mac-jdk-bundle mac-legacy-jre-bundle \ release-file exploded-image-optimize jcov-image ################################################################################ @@ -614,12 +632,16 @@ docs-bundles: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles) +static-libs-bundles: + +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk static-libs-bundles) + ifeq ($(JCOV_ENABLED), true) jcov-bundles: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk jcov-bundles) endif -ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles jcov-bundles +ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles \ + static-libs-bundles jcov-bundles ################################################################################ # Install targets @@ -796,6 +818,10 @@ vscode-project-rtags: compile-commands vscode-project-ccls: compile-commands + # The -static-libs targets depend on -java as well as java.base-copy. + $(foreach m, $(filter $(JAVA_MODULES), $(STATIC_LIBS_MODULES)), \ + $(eval $m-static-libs: $m-java java.base-copy)) + # Jmods cannot be created until we have the jmod tool ready to run. During # a normal build we run it from the exploded image, but when cross compiling # it's run from the buildjdk, which is either created at build time or user @@ -858,6 +884,8 @@ legacy-jre-image: jmods release-file symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS) + static-libs-image: $(STATIC_LIBS_TARGETS) + mac-jdk-bundle: jdk-image mac-legacy-jre-bundle: legacy-jre-image @@ -946,6 +974,8 @@ jcov-bundles: jcov-image + static-libs-bundles: static-libs-image + generate-summary: jmods buildtools-modules update-x11wrappers: java.base-copy buildtools-jdk @@ -984,6 +1014,8 @@ libs: $(LIBS_TARGETS) +static-libs: $(STATIC_LIBS_TARGETS) + launchers: $(LAUNCHER_TARGETS) jmods: $(JMOD_TARGETS) @@ -1094,10 +1126,10 @@ all-images: product-images test-image docs-image # all-bundles packages all our deliverables as tar.gz bundles. -all-bundles: product-bundles test-bundles docs-bundles +all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \ - copy java rmic libs launchers jmods \ + copy java rmic libs static-libs launchers jmods \ jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \ exploded-image-base exploded-image \ create-buildjdk docs-jdk-api docs-javase-api docs-reference-api docs-jdk \