--- 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 \