13a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Auto-generate module defitions from platform.zip. 23a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip. 33a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# 43a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 53a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wangpdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk 63a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 73a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang$(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \ 83a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null) 93a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 103a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang-include $(pdk_dexpreopt_config_mk) 113a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 123a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Define a PDK prebuilt module that comes from platform.zip. 133a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Must be called with $(eval) 143a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wangdefine prebuilt-pdk-java-module 153a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wanginclude $(CLEAR_VARS) 163a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_MODULE:=$(1) 173a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_MODULE_CLASS:=$(2) 183a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Use LOCAL_PREBUILT_MODULE_FILE instead of LOCAL_SRC_FILES so we don't need to deal with LOCAL_PATH. 193a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_PREBUILT_MODULE_FILE:=$(3) 203a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_DEX_PREOPT:=$(4) 213a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_MULTILIB:=$(5) 223a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_DEX_PREOPT_FLAGS:=$(6) 233a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_BUILT_MODULE_STEM:=$(7) 243a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_MODULE_SUFFIX:=$(suffix $(7)) 253a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_PRIVILEGED_MODULE:=$(8) 2605a2b931e963299563c312af0884f4fddc5fa4f6Dan WillemsenLOCAL_VENDOR_MODULE:=$(9) 273a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_MODULE_TARGET_ARCH:=$(10) 283a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_REPLACE_PREBUILT_APK_INSTALLED:=$(11) 293a61eeb6cb588b9a206bd80814183bcc0263cd13Ying WangLOCAL_CERTIFICATE:=PRESIGNED 303a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wanginclude $(BUILD_PREBUILT) 313a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 323a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# The source prebuilts are extracted in the rule of _pdk_fusion_stamp. 333a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Use a touch rule to establish the dependency. 343a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang$(3) $(11) : $(_pdk_fusion_stamp) 353a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(hide) if [ ! -f $$@ ]; then \ 363a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang echo 'Error: $$@ does not exist. Check your platform.zip.' 1>&2; \ 373a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang exit 1; \ 383a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang fi 393a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(hide) touch $$@ 403a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wangendef 413a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 42efaf5efd06ce0caf739ce48690f2384b37a791d5Ying Wang# We don't have a LOCAL_PATH for the auto-generated modules, so let it be the $(BUILD_SYSTEM). 43efaf5efd06ce0caf739ce48690f2384b37a791d5Ying WangLOCAL_PATH := $(BUILD_SYSTEM) 44efaf5efd06ce0caf739ce48690f2384b37a791d5Ying Wang 453a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang##### Java libraries. 463a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang# Only set up rules for modules that aren't built from source. 473a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wangpdk_prebuilt_libraries := $(foreach l,$(PDK.DEXPREOPT.JAVA_LIBRARIES),\ 483a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(if $(MODULE.TARGET.JAVA_LIBRARIES.$(l)),,$(l))) 493a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 503a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang$(foreach l,$(pdk_prebuilt_libraries), $(eval \ 513a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(call prebuilt-pdk-java-module,\ 523a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(l),\ 533a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang JAVA_LIBRARIES,\ 543a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(l).SRC),\ 553a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(l).DEX_PREOPT),\ 563a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(l).MULTILIB),\ 573a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(l).DEX_PREOPT_FLAGS),\ 583a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang javalib.jar,\ 593a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang ))) 603a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 613a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang###### Apps. 623a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wangpdk_prebuilt_apps := $(foreach a,$(PDK.DEXPREOPT.APPS),\ 633a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(if $(MODULE.TARGET.APPS.$(a)),,$(a))) 643a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang 653a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang$(foreach a,$(pdk_prebuilt_apps), $(eval \ 663a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(call prebuilt-pdk-java-module,\ 673a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(a),\ 683a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang APPS,\ 693a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).SRC),\ 703a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(a).DEX_PREOPT),\ 713a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(a).MULTILIB),\ 723a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(a).DEX_PREOPT_FLAGS),\ 733a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang package.apk,\ 743a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(a).PRIVILEGED_MODULE),\ 7505a2b931e963299563c312af0884f4fddc5fa4f6Dan Willemsen $(PDK.DEXPREOPT.$(a).VENDOR_MODULE),\ 763a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(PDK.DEXPREOPT.$(a).TARGET_ARCH),\ 773a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\ 783a61eeb6cb588b9a206bd80814183bcc0263cd13Ying Wang ))) 79