pdk_fusion_modules.mk revision 3a61eeb6cb588b9a206bd80814183bcc0263cd13
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 5pdk_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) 14define prebuilt-pdk-java-module 15include $(CLEAR_VARS) 16LOCAL_MODULE:=$(1) 17LOCAL_MODULE_CLASS:=$(2) 18# Use LOCAL_PREBUILT_MODULE_FILE instead of LOCAL_SRC_FILES so we don't need to deal with LOCAL_PATH. 19LOCAL_PREBUILT_MODULE_FILE:=$(3) 20LOCAL_DEX_PREOPT:=$(4) 21LOCAL_MULTILIB:=$(5) 22LOCAL_DEX_PREOPT_FLAGS:=$(6) 23LOCAL_BUILT_MODULE_STEM:=$(7) 24LOCAL_MODULE_SUFFIX:=$(suffix $(7)) 25LOCAL_PRIVILEGED_MODULE:=$(8) 26LOCAL_PROPRIETARY_MODULE:=$(9) 27LOCAL_MODULE_TARGET_ARCH:=$(10) 28LOCAL_REPLACE_PREBUILT_APK_INSTALLED:=$(11) 29LOCAL_CERTIFICATE:=PRESIGNED 30include $(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 $$@ 40endef 41 42##### Java libraries. 43# Only set up rules for modules that aren't built from source. 44pdk_prebuilt_libraries := $(foreach l,$(PDK.DEXPREOPT.JAVA_LIBRARIES),\ 45 $(if $(MODULE.TARGET.JAVA_LIBRARIES.$(l)),,$(l))) 46 47$(foreach l,$(pdk_prebuilt_libraries), $(eval \ 48 $(call prebuilt-pdk-java-module,\ 49 $(l),\ 50 JAVA_LIBRARIES,\ 51 $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(l).SRC),\ 52 $(PDK.DEXPREOPT.$(l).DEX_PREOPT),\ 53 $(PDK.DEXPREOPT.$(l).MULTILIB),\ 54 $(PDK.DEXPREOPT.$(l).DEX_PREOPT_FLAGS),\ 55 javalib.jar,\ 56 ))) 57 58###### Apps. 59pdk_prebuilt_apps := $(foreach a,$(PDK.DEXPREOPT.APPS),\ 60 $(if $(MODULE.TARGET.APPS.$(a)),,$(a))) 61 62$(foreach a,$(pdk_prebuilt_apps), $(eval \ 63 $(call prebuilt-pdk-java-module,\ 64 $(a),\ 65 APPS,\ 66 $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).SRC),\ 67 $(PDK.DEXPREOPT.$(a).DEX_PREOPT),\ 68 $(PDK.DEXPREOPT.$(a).MULTILIB),\ 69 $(PDK.DEXPREOPT.$(a).DEX_PREOPT_FLAGS),\ 70 package.apk,\ 71 $(PDK.DEXPREOPT.$(a).PRIVILEGED_MODULE),\ 72 $(PDK.DEXPREOPT.$(a).PROPRIETARY_MODULE),\ 73 $(PDK.DEXPREOPT.$(a).TARGET_ARCH),\ 74 $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\ 75 ))) 76