From e2419c89cef4eeae1b6cd113ef1c92d397834841 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Thu, 26 May 2011 15:59:56 -0700 Subject: [PATCH] Support to run dex-preopt on prebuilt apks. Change-Id: I11450310144cb8d7f127c427ada4a0589e030843 --- core/prebuilt.mk | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/prebuilt.mk b/core/prebuilt.mk index f5eebc889..8f9eafb2f 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)