Ying Wang | 3a61eeb | 2016-03-11 10:32:01 -0800 | [diff] [blame] | 1 | # Auto-generate module defitions from platform.zip. |
| 2 | # We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip. |
| 3 | # |
| 4 | |
| 5 | pdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk |
| 6 | |
| 7 | $(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \ |
| 8 | unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null) |
| 9 | |
| 10 | -include $(pdk_dexpreopt_config_mk) |
| 11 | |
| 12 | # Define a PDK prebuilt module that comes from platform.zip. |
| 13 | # Must be called with $(eval) |
| 14 | define prebuilt-pdk-java-module |
| 15 | include $(CLEAR_VARS) |
| 16 | LOCAL_MODULE:=$(1) |
| 17 | LOCAL_MODULE_CLASS:=$(2) |
| 18 | # Use LOCAL_PREBUILT_MODULE_FILE instead of LOCAL_SRC_FILES so we don't need to deal with LOCAL_PATH. |
| 19 | LOCAL_PREBUILT_MODULE_FILE:=$(3) |
| 20 | LOCAL_DEX_PREOPT:=$(4) |
| 21 | LOCAL_MULTILIB:=$(5) |
| 22 | LOCAL_DEX_PREOPT_FLAGS:=$(6) |
| 23 | LOCAL_BUILT_MODULE_STEM:=$(7) |
| 24 | LOCAL_MODULE_SUFFIX:=$(suffix $(7)) |
| 25 | LOCAL_PRIVILEGED_MODULE:=$(8) |
| 26 | LOCAL_PROPRIETARY_MODULE:=$(9) |
| 27 | LOCAL_MODULE_TARGET_ARCH:=$(10) |
| 28 | LOCAL_REPLACE_PREBUILT_APK_INSTALLED:=$(11) |
| 29 | LOCAL_CERTIFICATE:=PRESIGNED |
| 30 | include $(BUILD_PREBUILT) |
| 31 | |
| 32 | # The source prebuilts are extracted in the rule of _pdk_fusion_stamp. |
| 33 | # Use a touch rule to establish the dependency. |
| 34 | $(3) $(11) : $(_pdk_fusion_stamp) |
| 35 | $(hide) if [ ! -f $$@ ]; then \ |
| 36 | echo 'Error: $$@ does not exist. Check your platform.zip.' 1>&2; \ |
| 37 | exit 1; \ |
| 38 | fi |
| 39 | $(hide) touch $$@ |
| 40 | endef |
| 41 | |
Ying Wang | efaf5ef | 2016-03-24 17:24:38 -0700 | [diff] [blame] | 42 | # We don't have a LOCAL_PATH for the auto-generated modules, so let it be the $(BUILD_SYSTEM). |
| 43 | LOCAL_PATH := $(BUILD_SYSTEM) |
| 44 | |
Ying Wang | 3a61eeb | 2016-03-11 10:32:01 -0800 | [diff] [blame] | 45 | ##### Java libraries. |
| 46 | # Only set up rules for modules that aren't built from source. |
| 47 | pdk_prebuilt_libraries := $(foreach l,$(PDK.DEXPREOPT.JAVA_LIBRARIES),\ |
| 48 | $(if $(MODULE.TARGET.JAVA_LIBRARIES.$(l)),,$(l))) |
| 49 | |
| 50 | $(foreach l,$(pdk_prebuilt_libraries), $(eval \ |
| 51 | $(call prebuilt-pdk-java-module,\ |
| 52 | $(l),\ |
| 53 | JAVA_LIBRARIES,\ |
| 54 | $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(l).SRC),\ |
| 55 | $(PDK.DEXPREOPT.$(l).DEX_PREOPT),\ |
| 56 | $(PDK.DEXPREOPT.$(l).MULTILIB),\ |
| 57 | $(PDK.DEXPREOPT.$(l).DEX_PREOPT_FLAGS),\ |
| 58 | javalib.jar,\ |
| 59 | ))) |
| 60 | |
| 61 | ###### Apps. |
| 62 | pdk_prebuilt_apps := $(foreach a,$(PDK.DEXPREOPT.APPS),\ |
| 63 | $(if $(MODULE.TARGET.APPS.$(a)),,$(a))) |
| 64 | |
| 65 | $(foreach a,$(pdk_prebuilt_apps), $(eval \ |
| 66 | $(call prebuilt-pdk-java-module,\ |
| 67 | $(a),\ |
| 68 | APPS,\ |
| 69 | $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).SRC),\ |
| 70 | $(PDK.DEXPREOPT.$(a).DEX_PREOPT),\ |
| 71 | $(PDK.DEXPREOPT.$(a).MULTILIB),\ |
| 72 | $(PDK.DEXPREOPT.$(a).DEX_PREOPT_FLAGS),\ |
| 73 | package.apk,\ |
| 74 | $(PDK.DEXPREOPT.$(a).PRIVILEGED_MODULE),\ |
| 75 | $(PDK.DEXPREOPT.$(a).PROPRIETARY_MODULE),\ |
| 76 | $(PDK.DEXPREOPT.$(a).TARGET_ARCH),\ |
| 77 | $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\ |
| 78 | ))) |