Loading core/Makefile +10 −5 Original line number Diff line number Diff line Loading @@ -1457,7 +1457,8 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(PDK_FUSION_SYSIMG_FILES) \ $(RECOVERY_RESOURCE_ZIP)) $(RECOVERY_RESOURCE_ZIP)) \ $(PDK_FUSION_SYMLINK_STAMP) FULL_SYSTEMIMAGE_DEPS := $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEPS) Loading Loading @@ -1694,7 +1695,8 @@ ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),) endif @# Add dex-preopt files and config. $(if $(PRIVATE_DEX_FILES),$(hide) cd $(OUT_DIR) && zip -qryX $(patsubst $(OUT_DIR)/%,%,$@ $(PRIVATE_DEX_FILES))) $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) $(hide) touch $(PRODUCT_OUT)/pdk.mk $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) $(PRODUCT_OUT)/pdk.mk .PHONY: platform platform: $(INSTALLED_PLATFORM_ZIP) Loading Loading @@ -1901,7 +1903,8 @@ ifdef BOARD_USES_SYSTEM_OTHER INTERNAL_SYSTEMOTHERIMAGE_FILES := \ $(filter $(TARGET_OUT_SYSTEM_OTHER)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) INSTALLED_FILES_FILE_SYSTEMOTHER := $(PRODUCT_OUT)/installed-files-system-other.txt $(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILESLIST) Loading Loading @@ -1948,7 +1951,8 @@ ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE INTERNAL_VENDORIMAGE_FILES := \ $(filter $(TARGET_OUT_VENDOR)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) # platform.zip depends on $(INTERNAL_VENDORIMAGE_FILES). $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_VENDORIMAGE_FILES) Loading Loading @@ -1999,7 +2003,8 @@ ifdef BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE INTERNAL_PRODUCTIMAGE_FILES := \ $(filter $(TARGET_OUT_PRODUCT)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) # platform.zip depends on $(INTERNAL_PRODUCTIMAGE_FILES). $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_PRODUCTIMAGE_FILES) Loading core/config.mk +49 −20 Original line number Diff line number Diff line Loading @@ -439,9 +439,9 @@ pdk fusion: $(DEFAULT_GOAL) # What to build: # pdk fusion if: # 1) PDK_FUSION_PLATFORM_ZIP is passed in from the environment # 1) PDK_FUSION_PLATFORM_ZIP / PDK_FUSION_PLATFORM_DIR is passed in from the environment # or # 2) the platform.zip exists in the default location # 2) the platform.zip / pdk.mk exists in the default location # or # 3) fusion is a command line build goal, # PDK_FUSION_PLATFORM_ZIP is needed anyway, then do we need the 'fusion' goal? Loading @@ -450,27 +450,44 @@ pdk fusion: $(DEFAULT_GOAL) # or # 2) TARGET_BUILD_PDK is passed in from the environment # if PDK_FUSION_PLATFORM_ZIP is specified, do not override. ifndef PDK_FUSION_PLATFORM_ZIP # if PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR is specified, do not override. ifeq (,$(strip $(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR))) # Most PDK project paths should be using vendor/pdk/TARGET_DEVICE # but some legacy ones (e.g. mini_armv7a_neon generic PDK) were setup # with vendor/pdk/TARGET_PRODUCT. _pdk_fusion_default_platform_zip = $(strip \ $(wildcard vendor/pdk/$(TARGET_DEVICE)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_PRODUCT)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_PRODUCT)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip)) # Others are set up with vendor/pdk/TARGET_DEVICE/TARGET_DEVICE-userdebug _pdk_fusion_search_paths := \ vendor/pdk/$(TARGET_DEVICE)/$(TARGET_DEVICE)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_DEVICE)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_PRODUCT)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_PRODUCT)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform _pdk_fusion_default_platform_zip := $(strip $(foreach p,$(_pdk_fusion_search_paths),$(wildcard $(p)/platform.zip))) ifneq (,$(_pdk_fusion_default_platform_zip)) PDK_FUSION_PLATFORM_ZIP := $(word 1, $(_pdk_fusion_default_platform_zip)) TARGET_BUILD_PDK := true _pdk_fusion_default_platform_zip := else _pdk_fusion_default_platform_mk := $(strip $(foreach p,$(_pdk_fusion_search_paths),$(wildcard $(p)/pdk.mk))) ifneq (,$(_pdk_fusion_default_platform_mk)) PDK_FUSION_PLATFORM_DIR := $(dir $(word 1,$(_pdk_fusion_default_platform_mk))) _pdk_fusion_default_platform_mk := endif endif # _pdk_fusion_default_platform_zip endif # !PDK_FUSION_PLATFORM_ZIP _pdk_fusion_search_paths := endif # !PDK_FUSION_PLATFORM_ZIP && !PDK_FUSION_PLATFORM_DIR ifneq (,$(PDK_FUSION_PLATFORM_ZIP)) ifneq (,$(PDK_FUSION_PLATFORM_DIR)) $(error Only one of PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR may be specified) endif endif ifneq (,$(filter pdk fusion, $(MAKECMDGOALS))) TARGET_BUILD_PDK := true ifneq (,$(filter fusion, $(MAKECMDGOALS))) ifndef PDK_FUSION_PLATFORM_ZIP $(error Specify PDK_FUSION_PLATFORM_ZIP to do a PDK fusion.) ifeq (,$(strip $(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR))) $(error Specify PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR to do a PDK fusion.) endif endif # fusion endif # pdk or fusion Loading @@ -478,9 +495,21 @@ endif # pdk or fusion ifdef PDK_FUSION_PLATFORM_ZIP TARGET_BUILD_PDK := true ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP))) ifneq (,$(wildcard $(dir $(PDK_FUSION_PLATFORM_ZIP))/pdk.mk)) PDK_FUSION_PLATFORM_DIR := $(dir $(PDK_FUSION_PLATFORM_ZIP)) PDK_FUSION_PLATFORM_ZIP := else $(error Cannot find file $(PDK_FUSION_PLATFORM_ZIP).) endif endif endif ifdef PDK_FUSION_PLATFORM_DIR TARGET_BUILD_PDK := true ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_DIR)/pdk.mk)) $(error Cannot find file $(PDK_FUSION_PLATFORM_DIR)/pdk.mk.) endif endif BUILD_PLATFORM_ZIP := $(filter platform platform-java,$(MAKECMDGOALS)) Loading core/main.mk +2 −2 Original line number Diff line number Diff line Loading @@ -447,10 +447,10 @@ subdir_makefiles_total := $(words $(subdir_makefiles)) $(foreach mk,$(subdir_makefiles),$(info [$(call inc_and_print,subdir_makefiles_inc)/$(subdir_makefiles_total)] including $(mk) ...)$(eval include $(mk))) ifdef PDK_FUSION_PLATFORM_ZIP ifneq (,$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # Bring in the PDK platform.zip modules. include $(BUILD_SYSTEM)/pdk_fusion_modules.mk endif # PDK_FUSION_PLATFORM_ZIP endif # PDK_FUSION_PLATFORM_ZIP || PDK_FUSION_PLATFORM_DIR droid_targets : blueprint_tools Loading core/pdk_config.mk +93 −70 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ PDK_PLATFORM_JAVA_ZIP_JAVA_HOST_LIB_DIR := \ host/common/obj/JAVA_LIBRARIES/hosttestlib_intermediates PDK_PLATFORM_JAVA_ZIP_CONTENTS := ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP)) ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # additional items to add to platform.zip for platform-java build # For these dirs, add classes.jar and javalib.jar from the dir to platform.zip # all paths under out dir Loading Loading @@ -49,15 +49,45 @@ PDK_PLATFORM_JAVA_ZIP_CONTENTS += $(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA $(lib_dir)/classes.dex.toc ) # check and override java support level ifneq ($(TARGET_BUILD_PDK)$(PDK_FUSION_PLATFORM_ZIP),) ifneq ($(TARGET_BUILD_PDK)$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR),) ifneq ($(wildcard external/proguard),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := sdk else # no proguard TARGET_BUILD_JAVA_SUPPORT_LEVEL := endif # platform supprot is set after checking platform.zip # platform support is set after checking platform.zip endif # PDK ifneq (,$(PDK_FUSION_PLATFORM_DIR)$(PDK_FUSION_PLATFORM_ZIP)) _pdk_fusion_intermediates := _pdk_fusion_stamp := _pdk_fusion_file_list := _pdk_fusion_java_file_list := PDK_FUSION_SYMLINK_STAMP := ifdef PDK_FUSION_PLATFORM_DIR _pdk_fusion_intermediates := $(PDK_FUSION_PLATFORM_DIR) _pdk_fusion_file_list := $(sort \ $(shell cd $(PDK_FUSION_PLATFORM_DIR); find * -type f)) _pdk_fusion_java_file_list := $(filter target/common/%,$(_pdk_fusion_file_list)) _pdk_fusion_file_list := $(filter-out target/common/%,$(_pdk_fusion_file_list)) PDK_FUSION_SYMLINK_STAMP := $(call intermediates-dir-for, PACKAGING, pdk_fusion)/pdk_symlinks.stamp symlink_list := $(sort \ $(shell cd $(PDK_FUSION_PLATFORM_DIR); find * -type l)) $(PDK_FUSION_SYMLINK_STAMP): PRIVATE_SYMLINKS := $(foreach s,$(symlink_list),\ $(s):$(shell readlink $(PDK_FUSION_PLATFORM_DIR)/$(s))) $(PDK_FUSION_SYMLINK_STAMP): $(foreach s,$(PRIVATE_SYMLINKS),\ mkdir -p $(PRODUCT_OUT)/$(dir $(call word-colon,1,$(s))) && \ ln -sf $(call word-colon,2,$(s)) $(PRODUCT_OUT)/$(call word-colon,1,$(s)) &&) true touch $@ symlink_list := endif # PDK_FUSION_PLATFORM_DIR ifdef PDK_FUSION_PLATFORM_ZIP _pdk_fusion_intermediates := $(call intermediates-dir-for, PACKAGING, pdk_fusion) _pdk_fusion_stamp := $(_pdk_fusion_intermediates)/pdk_fusion.stamp Loading @@ -69,15 +99,6 @@ _pdk_fusion_java_file_list := \ _pdk_fusion_files := $(addprefix $(_pdk_fusion_intermediates)/,\ $(_pdk_fusion_file_list) $(_pdk_fusion_java_file_list)) ifneq ($(_pdk_fusion_java_file_list),) # This represents whether java build can use platform API or not # This should not be used in Android.mk TARGET_BUILD_PDK_JAVA_PLATFORM := true ifneq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := platform endif endif $(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP) @echo "Unzip $(dir $@) <- $<" $(hide) rm -rf $(dir $@) && mkdir -p $(dir $@) Loading @@ -85,9 +106,17 @@ $(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP) $(call split-long-arguments,-touch,$(_pdk_fusion_files)) $(hide) touch $@ $(_pdk_fusion_files) : $(_pdk_fusion_stamp) endif # PDK_FUSION_PLATFORM_ZIP ifneq ($(_pdk_fusion_java_file_list),) # This represents whether java build can use platform API or not # This should not be used in Android.mk TARGET_BUILD_PDK_JAVA_PLATFORM := true ifneq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := platform endif endif # Implicit pattern rules to copy the fusion files to the system image directory. # Note that if there is already explicit rule in the build system to generate a file, Loading @@ -105,7 +134,6 @@ $(HOST_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/host/common/% $(_pdk_fu $(hide) cp -fpPR $< $@ ifeq (true,$(TARGET_BUILD_PDK_JAVA_PLATFORM)) PDK_FUSION_OUT_DIR := $(OUT_DIR) define JAVA_dependency_template Loading @@ -127,26 +155,21 @@ $(lib_dir)/classes.jar))) $(TARGET_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/target/common/% $(_pdk_fusion_stamp) @mkdir -p $(dir $@) $(hide) cp -fpPR $< $@ endif endif # TARGET_BUILD_PDK_JAVA_PLATFORM ALL_PDK_FUSION_FILES := $(addprefix $(PRODUCT_OUT)/, $(_pdk_fusion_file_list)) endif # PDK_FUSION_PLATFORM_ZIP endif # PDK_FUSION_PLATFORM_ZIP || PDK_FUSION_PLATFORM_DIR ifeq ($(TARGET_BUILD_PDK),true) $(info PDK TARGET_BUILD_JAVA_SUPPORT_LEVEL $(TARGET_BUILD_JAVA_SUPPORT_LEVEL)) ifeq ($(TARGET_BUILD_PDK_JAVA_PLATFORM),) # SDK used for Java build under PDK PDK_BUILD_SDK_VERSION := $(lastword $(TARGET_AVAILABLE_SDK_VERSIONS)) $(info PDK Build uses SDK $(PDK_BUILD_SDK_VERSION)) else # PDK_JAVA $(info PDK Build uses the current platform API) endif # PDK_JAVA endif # BUILD_PDK ifneq (,$(filter platform platform-java, $(MAKECMDGOALS))$(filter true,$(TARGET_BUILD_PDK))) Loading @@ -159,9 +182,9 @@ PDK_SYMBOL_FILES_LIST := \ system/bin/app_process32 \ system/bin/app_process64 ifdef PDK_FUSION_PLATFORM_ZIP ifneq (,$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # symbols should be explicitly pulled for fusion build $(foreach f,$(filter $(PDK_SYMBOL_FILES_LIST), $(_pdk_fusion_file_list)),\ $(eval $(call add-dependency,$(PRODUCT_OUT)/$(f),$(PRODUCT_OUT)/symbols/$(f)))) endif # PLATFORM_ZIP endif # platform.zip build or PDK endif # PLATFORM_ZIP || PLATFORM_DIR endif # platform.zip/dir build or PDK core/pdk_fusion_modules.mk +6 −0 Original line number Diff line number Diff line Loading @@ -2,10 +2,16 @@ # We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip. # ifdef PDK_FUSION_PLATFORM_ZIP pdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk $(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \ unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null) endif ifdef PDK_FUSION_PLATFORM_DIR pdk_dexpreopt_config_mk := $(PDK_FUSION_PLATFORM_DIR)/pdk_dexpreopt_config.mk endif -include $(pdk_dexpreopt_config_mk) Loading Loading
core/Makefile +10 −5 Original line number Diff line number Diff line Loading @@ -1457,7 +1457,8 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(PDK_FUSION_SYSIMG_FILES) \ $(RECOVERY_RESOURCE_ZIP)) $(RECOVERY_RESOURCE_ZIP)) \ $(PDK_FUSION_SYMLINK_STAMP) FULL_SYSTEMIMAGE_DEPS := $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEPS) Loading Loading @@ -1694,7 +1695,8 @@ ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),) endif @# Add dex-preopt files and config. $(if $(PRIVATE_DEX_FILES),$(hide) cd $(OUT_DIR) && zip -qryX $(patsubst $(OUT_DIR)/%,%,$@ $(PRIVATE_DEX_FILES))) $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) $(hide) touch $(PRODUCT_OUT)/pdk.mk $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) $(PRODUCT_OUT)/pdk.mk .PHONY: platform platform: $(INSTALLED_PLATFORM_ZIP) Loading Loading @@ -1901,7 +1903,8 @@ ifdef BOARD_USES_SYSTEM_OTHER INTERNAL_SYSTEMOTHERIMAGE_FILES := \ $(filter $(TARGET_OUT_SYSTEM_OTHER)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) INSTALLED_FILES_FILE_SYSTEMOTHER := $(PRODUCT_OUT)/installed-files-system-other.txt $(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILESLIST) Loading Loading @@ -1948,7 +1951,8 @@ ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE INTERNAL_VENDORIMAGE_FILES := \ $(filter $(TARGET_OUT_VENDOR)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) # platform.zip depends on $(INTERNAL_VENDORIMAGE_FILES). $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_VENDORIMAGE_FILES) Loading Loading @@ -1999,7 +2003,8 @@ ifdef BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE INTERNAL_PRODUCTIMAGE_FILES := \ $(filter $(TARGET_OUT_PRODUCT)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)\ $(ALL_PDK_FUSION_FILES)) $(ALL_PDK_FUSION_FILES)) \ $(PDK_FUSION_SYMLINK_STAMP) # platform.zip depends on $(INTERNAL_PRODUCTIMAGE_FILES). $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_PRODUCTIMAGE_FILES) Loading
core/config.mk +49 −20 Original line number Diff line number Diff line Loading @@ -439,9 +439,9 @@ pdk fusion: $(DEFAULT_GOAL) # What to build: # pdk fusion if: # 1) PDK_FUSION_PLATFORM_ZIP is passed in from the environment # 1) PDK_FUSION_PLATFORM_ZIP / PDK_FUSION_PLATFORM_DIR is passed in from the environment # or # 2) the platform.zip exists in the default location # 2) the platform.zip / pdk.mk exists in the default location # or # 3) fusion is a command line build goal, # PDK_FUSION_PLATFORM_ZIP is needed anyway, then do we need the 'fusion' goal? Loading @@ -450,27 +450,44 @@ pdk fusion: $(DEFAULT_GOAL) # or # 2) TARGET_BUILD_PDK is passed in from the environment # if PDK_FUSION_PLATFORM_ZIP is specified, do not override. ifndef PDK_FUSION_PLATFORM_ZIP # if PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR is specified, do not override. ifeq (,$(strip $(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR))) # Most PDK project paths should be using vendor/pdk/TARGET_DEVICE # but some legacy ones (e.g. mini_armv7a_neon generic PDK) were setup # with vendor/pdk/TARGET_PRODUCT. _pdk_fusion_default_platform_zip = $(strip \ $(wildcard vendor/pdk/$(TARGET_DEVICE)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_PRODUCT)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip) \ $(wildcard vendor/pdk/$(TARGET_PRODUCT)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip)) # Others are set up with vendor/pdk/TARGET_DEVICE/TARGET_DEVICE-userdebug _pdk_fusion_search_paths := \ vendor/pdk/$(TARGET_DEVICE)/$(TARGET_DEVICE)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_DEVICE)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_PRODUCT)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform \ vendor/pdk/$(TARGET_PRODUCT)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform _pdk_fusion_default_platform_zip := $(strip $(foreach p,$(_pdk_fusion_search_paths),$(wildcard $(p)/platform.zip))) ifneq (,$(_pdk_fusion_default_platform_zip)) PDK_FUSION_PLATFORM_ZIP := $(word 1, $(_pdk_fusion_default_platform_zip)) TARGET_BUILD_PDK := true _pdk_fusion_default_platform_zip := else _pdk_fusion_default_platform_mk := $(strip $(foreach p,$(_pdk_fusion_search_paths),$(wildcard $(p)/pdk.mk))) ifneq (,$(_pdk_fusion_default_platform_mk)) PDK_FUSION_PLATFORM_DIR := $(dir $(word 1,$(_pdk_fusion_default_platform_mk))) _pdk_fusion_default_platform_mk := endif endif # _pdk_fusion_default_platform_zip endif # !PDK_FUSION_PLATFORM_ZIP _pdk_fusion_search_paths := endif # !PDK_FUSION_PLATFORM_ZIP && !PDK_FUSION_PLATFORM_DIR ifneq (,$(PDK_FUSION_PLATFORM_ZIP)) ifneq (,$(PDK_FUSION_PLATFORM_DIR)) $(error Only one of PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR may be specified) endif endif ifneq (,$(filter pdk fusion, $(MAKECMDGOALS))) TARGET_BUILD_PDK := true ifneq (,$(filter fusion, $(MAKECMDGOALS))) ifndef PDK_FUSION_PLATFORM_ZIP $(error Specify PDK_FUSION_PLATFORM_ZIP to do a PDK fusion.) ifeq (,$(strip $(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR))) $(error Specify PDK_FUSION_PLATFORM_ZIP or PDK_FUSION_PLATFORM_DIR to do a PDK fusion.) endif endif # fusion endif # pdk or fusion Loading @@ -478,9 +495,21 @@ endif # pdk or fusion ifdef PDK_FUSION_PLATFORM_ZIP TARGET_BUILD_PDK := true ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP))) ifneq (,$(wildcard $(dir $(PDK_FUSION_PLATFORM_ZIP))/pdk.mk)) PDK_FUSION_PLATFORM_DIR := $(dir $(PDK_FUSION_PLATFORM_ZIP)) PDK_FUSION_PLATFORM_ZIP := else $(error Cannot find file $(PDK_FUSION_PLATFORM_ZIP).) endif endif endif ifdef PDK_FUSION_PLATFORM_DIR TARGET_BUILD_PDK := true ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_DIR)/pdk.mk)) $(error Cannot find file $(PDK_FUSION_PLATFORM_DIR)/pdk.mk.) endif endif BUILD_PLATFORM_ZIP := $(filter platform platform-java,$(MAKECMDGOALS)) Loading
core/main.mk +2 −2 Original line number Diff line number Diff line Loading @@ -447,10 +447,10 @@ subdir_makefiles_total := $(words $(subdir_makefiles)) $(foreach mk,$(subdir_makefiles),$(info [$(call inc_and_print,subdir_makefiles_inc)/$(subdir_makefiles_total)] including $(mk) ...)$(eval include $(mk))) ifdef PDK_FUSION_PLATFORM_ZIP ifneq (,$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # Bring in the PDK platform.zip modules. include $(BUILD_SYSTEM)/pdk_fusion_modules.mk endif # PDK_FUSION_PLATFORM_ZIP endif # PDK_FUSION_PLATFORM_ZIP || PDK_FUSION_PLATFORM_DIR droid_targets : blueprint_tools Loading
core/pdk_config.mk +93 −70 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ PDK_PLATFORM_JAVA_ZIP_JAVA_HOST_LIB_DIR := \ host/common/obj/JAVA_LIBRARIES/hosttestlib_intermediates PDK_PLATFORM_JAVA_ZIP_CONTENTS := ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP)) ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # additional items to add to platform.zip for platform-java build # For these dirs, add classes.jar and javalib.jar from the dir to platform.zip # all paths under out dir Loading Loading @@ -49,15 +49,45 @@ PDK_PLATFORM_JAVA_ZIP_CONTENTS += $(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA $(lib_dir)/classes.dex.toc ) # check and override java support level ifneq ($(TARGET_BUILD_PDK)$(PDK_FUSION_PLATFORM_ZIP),) ifneq ($(TARGET_BUILD_PDK)$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR),) ifneq ($(wildcard external/proguard),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := sdk else # no proguard TARGET_BUILD_JAVA_SUPPORT_LEVEL := endif # platform supprot is set after checking platform.zip # platform support is set after checking platform.zip endif # PDK ifneq (,$(PDK_FUSION_PLATFORM_DIR)$(PDK_FUSION_PLATFORM_ZIP)) _pdk_fusion_intermediates := _pdk_fusion_stamp := _pdk_fusion_file_list := _pdk_fusion_java_file_list := PDK_FUSION_SYMLINK_STAMP := ifdef PDK_FUSION_PLATFORM_DIR _pdk_fusion_intermediates := $(PDK_FUSION_PLATFORM_DIR) _pdk_fusion_file_list := $(sort \ $(shell cd $(PDK_FUSION_PLATFORM_DIR); find * -type f)) _pdk_fusion_java_file_list := $(filter target/common/%,$(_pdk_fusion_file_list)) _pdk_fusion_file_list := $(filter-out target/common/%,$(_pdk_fusion_file_list)) PDK_FUSION_SYMLINK_STAMP := $(call intermediates-dir-for, PACKAGING, pdk_fusion)/pdk_symlinks.stamp symlink_list := $(sort \ $(shell cd $(PDK_FUSION_PLATFORM_DIR); find * -type l)) $(PDK_FUSION_SYMLINK_STAMP): PRIVATE_SYMLINKS := $(foreach s,$(symlink_list),\ $(s):$(shell readlink $(PDK_FUSION_PLATFORM_DIR)/$(s))) $(PDK_FUSION_SYMLINK_STAMP): $(foreach s,$(PRIVATE_SYMLINKS),\ mkdir -p $(PRODUCT_OUT)/$(dir $(call word-colon,1,$(s))) && \ ln -sf $(call word-colon,2,$(s)) $(PRODUCT_OUT)/$(call word-colon,1,$(s)) &&) true touch $@ symlink_list := endif # PDK_FUSION_PLATFORM_DIR ifdef PDK_FUSION_PLATFORM_ZIP _pdk_fusion_intermediates := $(call intermediates-dir-for, PACKAGING, pdk_fusion) _pdk_fusion_stamp := $(_pdk_fusion_intermediates)/pdk_fusion.stamp Loading @@ -69,15 +99,6 @@ _pdk_fusion_java_file_list := \ _pdk_fusion_files := $(addprefix $(_pdk_fusion_intermediates)/,\ $(_pdk_fusion_file_list) $(_pdk_fusion_java_file_list)) ifneq ($(_pdk_fusion_java_file_list),) # This represents whether java build can use platform API or not # This should not be used in Android.mk TARGET_BUILD_PDK_JAVA_PLATFORM := true ifneq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := platform endif endif $(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP) @echo "Unzip $(dir $@) <- $<" $(hide) rm -rf $(dir $@) && mkdir -p $(dir $@) Loading @@ -85,9 +106,17 @@ $(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP) $(call split-long-arguments,-touch,$(_pdk_fusion_files)) $(hide) touch $@ $(_pdk_fusion_files) : $(_pdk_fusion_stamp) endif # PDK_FUSION_PLATFORM_ZIP ifneq ($(_pdk_fusion_java_file_list),) # This represents whether java build can use platform API or not # This should not be used in Android.mk TARGET_BUILD_PDK_JAVA_PLATFORM := true ifneq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),) TARGET_BUILD_JAVA_SUPPORT_LEVEL := platform endif endif # Implicit pattern rules to copy the fusion files to the system image directory. # Note that if there is already explicit rule in the build system to generate a file, Loading @@ -105,7 +134,6 @@ $(HOST_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/host/common/% $(_pdk_fu $(hide) cp -fpPR $< $@ ifeq (true,$(TARGET_BUILD_PDK_JAVA_PLATFORM)) PDK_FUSION_OUT_DIR := $(OUT_DIR) define JAVA_dependency_template Loading @@ -127,26 +155,21 @@ $(lib_dir)/classes.jar))) $(TARGET_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/target/common/% $(_pdk_fusion_stamp) @mkdir -p $(dir $@) $(hide) cp -fpPR $< $@ endif endif # TARGET_BUILD_PDK_JAVA_PLATFORM ALL_PDK_FUSION_FILES := $(addprefix $(PRODUCT_OUT)/, $(_pdk_fusion_file_list)) endif # PDK_FUSION_PLATFORM_ZIP endif # PDK_FUSION_PLATFORM_ZIP || PDK_FUSION_PLATFORM_DIR ifeq ($(TARGET_BUILD_PDK),true) $(info PDK TARGET_BUILD_JAVA_SUPPORT_LEVEL $(TARGET_BUILD_JAVA_SUPPORT_LEVEL)) ifeq ($(TARGET_BUILD_PDK_JAVA_PLATFORM),) # SDK used for Java build under PDK PDK_BUILD_SDK_VERSION := $(lastword $(TARGET_AVAILABLE_SDK_VERSIONS)) $(info PDK Build uses SDK $(PDK_BUILD_SDK_VERSION)) else # PDK_JAVA $(info PDK Build uses the current platform API) endif # PDK_JAVA endif # BUILD_PDK ifneq (,$(filter platform platform-java, $(MAKECMDGOALS))$(filter true,$(TARGET_BUILD_PDK))) Loading @@ -159,9 +182,9 @@ PDK_SYMBOL_FILES_LIST := \ system/bin/app_process32 \ system/bin/app_process64 ifdef PDK_FUSION_PLATFORM_ZIP ifneq (,$(PDK_FUSION_PLATFORM_ZIP)$(PDK_FUSION_PLATFORM_DIR)) # symbols should be explicitly pulled for fusion build $(foreach f,$(filter $(PDK_SYMBOL_FILES_LIST), $(_pdk_fusion_file_list)),\ $(eval $(call add-dependency,$(PRODUCT_OUT)/$(f),$(PRODUCT_OUT)/symbols/$(f)))) endif # PLATFORM_ZIP endif # platform.zip build or PDK endif # PLATFORM_ZIP || PLATFORM_DIR endif # platform.zip/dir build or PDK
core/pdk_fusion_modules.mk +6 −0 Original line number Diff line number Diff line Loading @@ -2,10 +2,16 @@ # We use these rules to rebuild .odex files of the .jar/.apk inside the platform.zip. # ifdef PDK_FUSION_PLATFORM_ZIP pdk_dexpreopt_config_mk := $(TARGET_OUT_INTERMEDIATES)/pdk_dexpreopt_config.mk $(shell rm -f $(pdk_dexpreopt_config_mk) && mkdir -p $(dir $(pdk_dexpreopt_config_mk)) && \ unzip -qo $(PDK_FUSION_PLATFORM_ZIP) -d $(dir $(pdk_dexpreopt_config_mk)) pdk_dexpreopt_config.mk 2>/dev/null) endif ifdef PDK_FUSION_PLATFORM_DIR pdk_dexpreopt_config_mk := $(PDK_FUSION_PLATFORM_DIR)/pdk_dexpreopt_config.mk endif -include $(pdk_dexpreopt_config_mk) Loading