Fix boot_profile_jars.zip
Some of the inputs to boot_profile_jars.zip have moved outside
of $(PRODUCT_OUT), update the -C argument to soong_zip to point
to the right directory.
Also make the rule to build the zip always present, and only gate
the dist command behind PRODUCT_DIST_BOOT_AND_SYSTEM_JARS.
Test: m out/target/product/blueline/boot_profile_jars.zip
Change-Id: Iaa72be955edda445f3eab041a63f79c9055d6b33
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 6d5fc79..5a32ee9 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -15,19 +15,19 @@
include $(BUILD_SYSTEM)/dex_preopt_libart.mk
-ifeq ($(PRODUCT_DIST_BOOT_AND_SYSTEM_JARS),true)
boot_profile_jars_zip := $(PRODUCT_OUT)/boot_profile_jars.zip
-all_boot_jars := \
- $(DEXPREOPT_BOOTCLASSPATH_DEX_FILES) \
- $(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),$(PRODUCT_OUT)/system/framework/$(m).jar)
+bootclasspath_jars := $(DEXPREOPT_BOOTCLASSPATH_DEX_FILES)
+system_server_jars := $(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),$(PRODUCT_OUT)/system/framework/$(m).jar)
-$(boot_profile_jars_zip): PRIVATE_JARS := $(all_boot_jars)
-$(boot_profile_jars_zip): $(all_boot_jars) $(SOONG_ZIP)
- echo "Create boot profiles package: $@"
+$(boot_profile_jars_zip): PRIVATE_BOOTCLASSPATH_JARS := $(bootclasspath_jars)
+$(boot_profile_jars_zip): PRIVATE_SYSTEM_SERVER_JARS := $(system_server_jars)
+$(boot_profile_jars_zip): $(bootclasspath_jars) $(system_server_jars) $(SOONG_ZIP)
+ @echo "Create boot profiles package: $@"
rm -f $@
- $(SOONG_ZIP) -o $@ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_JARS))
+ $(SOONG_ZIP) -o $@ \
+ -C $(dir $(firstword $(PRIVATE_BOOTCLASSPATH_JARS)))/.. $(addprefix -f ,$(PRIVATE_BOOTCLASSPATH_JARS)) \
+ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_SYSTEM_SERVER_JARS))
-droidcore: $(boot_profile_jars_zip)
-
+ifeq ($(PRODUCT_DIST_BOOT_AND_SYSTEM_JARS),true)
$(call dist-for-goals, droidcore, $(boot_profile_jars_zip))
endif