Brian Carlstrom | ced4bff | 2013-11-14 23:44:56 -0800 | [diff] [blame^] | 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 |
| 6 | LOCAL_DEX_PREOPT := $(strip $(LOCAL_DEX_PREOPT)) |
| 7 | ifneq (true,$(WITH_DEXPREOPT)) |
| 8 | LOCAL_DEX_PREOPT := |
| 9 | else # 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 |
| 21 | endif # WITH_DEXPREOPT=true |
| 22 | ifeq (false,$(LOCAL_DEX_PREOPT)) |
| 23 | LOCAL_DEX_PREOPT := |
| 24 | endif |
| 25 | ifdef LOCAL_UNINSTALLABLE_MODULE |
| 26 | LOCAL_DEX_PREOPT := |
| 27 | endif |
| 28 | ifeq (,$(strip $(all_java_sources)$(full_static_java_libs)$(my_prebuilt_src_file))) # contains no java code |
| 29 | LOCAL_DEX_PREOPT := |
| 30 | endif |
| 31 | # if module oat file requested in data, disable LOCAL_DEX_PREOPT, will default location to dalvik-cache |
| 32 | ifneq (,$(filter $(LOCAL_MODULE),$(PRODUCT_DEX_PREOPT_PACKAGES_IN_DATA))) |
| 33 | LOCAL_DEX_PREOPT := |
| 34 | endif |
| 35 | |
| 36 | built_odex := |
| 37 | installed_odex := |
| 38 | ifdef LOCAL_DEX_PREOPT |
| 39 | dexpreopt_boot_jar_module := $(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)) |
| 40 | ifdef dexpreopt_boot_jar_module |
| 41 | ifeq ($(DALVIK_VM_LIB),libdvm.so) |
| 42 | built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex |
| 43 | installed_odex := $(basename $(LOCAL_INSTALLED_MODULE)).odex |
| 44 | else # 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. |
| 47 | installed_odex := $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE) |
| 48 | endif # libdvm.so |
| 49 | else # boot jar |
| 50 | built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex |
| 51 | installed_odex := $(basename $(LOCAL_INSTALLED_MODULE)).odex |
| 52 | |
| 53 | ifneq ($(DALVIK_VM_LIB),libdvm.so) # libart |
| 54 | ifndef LOCAL_DEX_PREOPT_IMAGE |
| 55 | LOCAL_DEX_PREOPT_IMAGE := $(DEFAULT_DEX_PREOPT_BUILT_IMAGE) |
| 56 | endif |
| 57 | endif # libart |
| 58 | endif # boot jar |
| 59 | |
| 60 | ifdef 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) |
| 66 | endif |
| 67 | |
| 68 | # Add the installed_odex to the list of installed files for this module. |
| 69 | ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(installed_odex) |
| 70 | endif # LOCAL_DEX_PREOPT |