dex_preopt_odex_install.mk revision ced4bff58e76a16ebce3a35ed24aadc8490ca39b
1# dexpreopt_odex_install.mk is used to define odex creation rules for JARs and APKs 2# This file depends on variables set in base_rules.mk 3# Output variables: LOCAL_DEX_PREOPT, built_odex, dexpreopt_boot_jar_module 4 5# Setting LOCAL_DEX_PREOPT based on WITH_DEXPREOPT, LOCAL_DEX_PREOPT, etc 6LOCAL_DEX_PREOPT := $(strip $(LOCAL_DEX_PREOPT)) 7ifneq (true,$(WITH_DEXPREOPT)) 8 LOCAL_DEX_PREOPT := 9else # WITH_DEXPREOPT=true 10 ifeq (,$(TARGET_BUILD_APPS)) # TARGET_BUILD_APPS empty 11 ifneq (,$(LOCAL_SRC_FILES)) # LOCAL_SRC_FILES not empty 12 ifndef LOCAL_DEX_PREOPT # LOCAL_DEX_PREOPT undefined 13 ifeq (,$(LOCAL_APK_LIBRARIES)) # LOCAL_APK_LIBRARIES empty 14 LOCAL_DEX_PREOPT := $(DEX_PREOPT_DEFAULT) 15 else # LOCAL_APK_LIBRARIES not empty 16 LOCAL_DEX_PREOPT := nostripping 17 endif # LOCAL_APK_LIBRARIES not empty 18 endif # LOCAL_DEX_PREOPT undefined 19 endif # LOCAL_SRC_FILES not empty 20 endif # TARGET_BUILD_APPS empty 21endif # WITH_DEXPREOPT=true 22ifeq (false,$(LOCAL_DEX_PREOPT)) 23 LOCAL_DEX_PREOPT := 24endif 25ifdef LOCAL_UNINSTALLABLE_MODULE 26LOCAL_DEX_PREOPT := 27endif 28ifeq (,$(strip $(all_java_sources)$(full_static_java_libs)$(my_prebuilt_src_file))) # contains no java code 29LOCAL_DEX_PREOPT := 30endif 31# if module oat file requested in data, disable LOCAL_DEX_PREOPT, will default location to dalvik-cache 32ifneq (,$(filter $(LOCAL_MODULE),$(PRODUCT_DEX_PREOPT_PACKAGES_IN_DATA))) 33LOCAL_DEX_PREOPT := 34endif 35 36built_odex := 37installed_odex := 38ifdef LOCAL_DEX_PREOPT 39dexpreopt_boot_jar_module := $(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)) 40ifdef dexpreopt_boot_jar_module 41ifeq ($(DALVIK_VM_LIB),libdvm.so) 42built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex 43installed_odex := $(basename $(LOCAL_INSTALLED_MODULE)).odex 44else # libdvm.so 45# For libart, the boot jars' odex files are replaced by $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE). 46# We use this installed_odex trick to get boot.art installed. 47installed_odex := $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE) 48endif # libdvm.so 49else # boot jar 50built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex 51installed_odex := $(basename $(LOCAL_INSTALLED_MODULE)).odex 52 53ifneq ($(DALVIK_VM_LIB),libdvm.so) # libart 54ifndef LOCAL_DEX_PREOPT_IMAGE 55LOCAL_DEX_PREOPT_IMAGE := $(DEFAULT_DEX_PREOPT_BUILT_IMAGE) 56endif 57endif # libart 58endif # boot jar 59 60ifdef built_odex 61# We need $(LOCAL_BUILT_MODULE) in the deps to enforce reinstallation 62# even if $(built_odex) is byproduct of $(LOCAL_BUILT_MODULE), such as in package.mk. 63$(installed_odex) : $(built_odex) $(LOCAL_BUILT_MODULE) | $(ACP) 64 @echo "Install: $@" 65 $(copy-file-to-target) 66endif 67 68# Add the installed_odex to the list of installed files for this module. 69ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(installed_odex) 70endif # LOCAL_DEX_PREOPT 71