From 06e2f72bc9e0f3fdbeaa9d4b00ac6fca7e0c4a7c Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Thu, 26 May 2011 15:59:56 -0700 Subject: Support to run dex-preopt on prebuilt apks. Change-Id: Ic7c40c502934d7588166f26bbb6e2f235d1efdea --- core/prebuilt.mk | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'core/prebuilt.mk') diff --git a/core/prebuilt.mk b/core/prebuilt.mk index f5eebc8..8f9eafb 100644 --- a/core/prebuilt.mk +++ b/core/prebuilt.mk @@ -16,6 +16,16 @@ ifneq ($(LOCAL_PREBUILT_JAVA_LIBRARIES),) $(error dont use LOCAL_PREBUILT_JAVA_LIBRARIES anymore LOCAL_PATH=$(LOCAL_PATH)) endif +ifneq ($(filter APPS,$(LOCAL_MODULE_CLASS)),) +ifeq (true,$(WITH_DEXPREOPT)) +ifeq (,$(TARGET_BUILD_APPS)) +ifndef LOCAL_DEX_PREOPT +LOCAL_DEX_PREOPT := true +endif +endif +endif +endif + include $(BUILD_SYSTEM)/base_rules.mk # Deal with the OSX library timestamp issue when installing @@ -30,8 +40,20 @@ PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) # Ensure that prebuilt .apks have been aligned. ifneq ($(filter APPS,$(LOCAL_MODULE_CLASS)),) +ifeq ($(LOCAL_DEX_PREOPT),true) +# Make sure the boot jars get dexpreopt-ed first +$(LOCAL_BUILT_MODULE): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT) $(AAPT) +endif $(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ZIPALIGN) $(transform-prebuilt-to-target-with-zipalign) +ifeq ($(LOCAL_DEX_PREOPT),true) + $(hide) rm -f $(patsubst %.apk,%.odex,$@) + $(call dexpreopt-one-file,$@,$(patsubst %.apk,%.odex,$@)) + $(call dexpreopt-remove-classes.dex,$@) + +built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex +$(built_odex): $(LOCAL_BUILT_MODULE) +endif else ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),) $(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) -- cgit v1.1