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_VENDOR_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 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 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).VENDOR_MODULE),\ 76 $(PDK.DEXPREOPT.$(a).TARGET_ARCH),\ 77 $(_pdk_fusion_intermediates)/$(PDK.DEXPREOPT.$(a).STRIPPED_SRC),\ 78 ))) 79