diff options
-rw-r--r-- | core/clear_vars.mk | 1 | ||||
-rw-r--r-- | core/package.mk | 23 |
2 files changed, 24 insertions, 0 deletions
diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 81a9493..8d84814 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -135,6 +135,7 @@ LOCAL_DONT_DELETE_JAR_META_INF:= LOCAL_ADDITIONAL_CERTIFICATES:= LOCAL_PREBUILT_MODULE_FILE:= LOCAL_POST_INSTALL_CMD:= +LOCAL_DIST_BUNDLED_BINARIES:= # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/package.mk b/core/package.mk index 25af8da..2012351 100644 --- a/core/package.mk +++ b/core/package.mk @@ -447,6 +447,29 @@ endif PACKAGES := $(PACKAGES) $(LOCAL_PACKAGE_NAME) +# Dist the files that can be bundled in system.img. +# They include the jni shared libraries and the apk with jni libraries stripped. +ifeq ($(LOCAL_DIST_BUNDLED_BINARIES),true) +ifneq ($(filter $(LOCAL_PACKAGE_NAME),$(TARGET_BUILD_APPS)),) +ifneq ($(strip $(jni_shared_libraries)),) +dist_subdir := bundled_$(LOCAL_PACKAGE_NAME) +$(foreach f, $(jni_shared_libraries), \ + $(call dist-for-goals, apps_only, $(f):$(dist_subdir)/$(notdir $(f)))) + +apk_jni_stripped := $(intermediates)/jni_stripped/package.apk +$(apk_jni_stripped): PRIVATE_JNI_SHARED_LIBRARIES := $(notdir $(jni_shared_libraries)) +$(apk_jni_stripped) : $(LOCAL_BUILT_MODULE) | $(ZIPALIGN) + @rm -rf $(dir $@) && mkdir -p $(dir $@) + $(hide) cp $< $@ + $(hide) zip -d $@ $(foreach f,$(PRIVATE_JNI_SHARED_LIBRARIES),\*/$(f)) + $(call align-package) + +$(call dist-for-goals, apps_only, $(apk_jni_stripped):$(dist_subdir)/$(LOCAL_PACKAGE_NAME).apk) + +endif # jni_shared_libraries +endif # apps_only build +endif # LOCAL_DIST_BUNDLED_BINARIES + # Lint phony targets .PHONY: lint-$(LOCAL_PACKAGE_NAME) lint-$(LOCAL_PACKAGE_NAME): PRIVATE_PATH := $(LOCAL_PATH) |