diff --git a/core/tasks/tools/package-modules.mk b/core/tasks/tools/package-modules.mk index 20a1694682..aecb4a864a 100644 --- a/core/tasks/tools/package-modules.mk +++ b/core/tasks/tools/package-modules.mk @@ -25,7 +25,7 @@ LOCAL_MODULE_CLASS := PACKAGING LOCAL_MODULE_STEM := $(my_package_name).zip LOCAL_UNINSTALLABLE_MODULE := true include $(BUILD_SYSTEM)/base_rules.mk -my_staging_dir := $(intermediates) +my_staging_dir := $(intermediates)/staging my_package_zip := $(LOCAL_BUILT_MODULE) my_built_modules := $(foreach p,$(my_copy_pairs),$(call word-colon,1,$(p))) @@ -92,17 +92,18 @@ ifneq ($(my_missing_error),) endif $(my_package_zip): PRIVATE_COPY_PAIRS := $(my_copy_pairs) +$(my_package_zip): PRIVATE_STAGING_DIR := $(my_staging_dir) $(my_package_zip): PRIVATE_PICKUP_FILES := $(my_pickup_files) -$(my_package_zip) : $(my_built_modules) +$(my_package_zip) : $(my_built_modules) $(SOONG_ZIP) @echo "Package $@" - @rm -rf $(dir $@) && mkdir -p $(dir $@) + @rm -rf $(PRIVATE_STAGING_DIR) && mkdir -p $(PRIVATE_STAGING_DIR) $(foreach p, $(PRIVATE_COPY_PAIRS),\ $(eval pair := $(subst :,$(space),$(p)))\ mkdir -p $(dir $(word 2,$(pair))) && \ cp -Rf $(word 1,$(pair)) $(word 2,$(pair)) && ) true $(hide) $(foreach f, $(PRIVATE_PICKUP_FILES),\ - cp -RfL $(f) $(dir $@) && ) true - $(hide) cd $(dir $@) && zip -rqX $(notdir $@) * + cp -RfL $(f) $(PRIVATE_STAGING_DIR) && ) true + $(hide) $(SOONG_ZIP) -o $@ -C $(PRIVATE_STAGING_DIR) -D $(PRIVATE_STAGING_DIR) my_makefile := my_staging_dir :=