diff options
38 files changed, 290 insertions, 166 deletions
diff --git a/Deprecation.md b/Deprecation.md index 131ec0d11d..9378e1acfd 100644 --- a/Deprecation.md +++ b/Deprecation.md @@ -19,6 +19,7 @@ have any problems converting, please contact us via: | `BUILD_HOST_FUZZ_TEST` | Error | | `BUILD_HOST_NATIVE_TEST` | Error | | `BUILD_HOST_SHARED_TEST_LIBRARY` | Error | +| `BUILD_HOST_STATIC_LIBRARY` | Warning | | `BUILD_HOST_STATIC_TEST_LIBRARY` | Error | | `BUILD_HOST_TEST_CONFIG` | Error | | `BUILD_NATIVE_BENCHMARK` | Error | diff --git a/core/Makefile b/core/Makefile index c6c4621911..83021d4ee0 100644 --- a/core/Makefile +++ b/core/Makefile @@ -195,6 +195,7 @@ FINAL_VENDOR_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \ BUILDINFO_SH := build/make/tools/buildinfo.sh BUILDINFO_COMMON_SH := build/make/tools/buildinfo_common.sh +POST_PROCESS_PROPS :=$= build/make/tools/post_process_props.py # Generates a set of sysprops common to all partitions to a file. # $(1): Partition name @@ -244,7 +245,7 @@ FINAL_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \ intermediate_system_build_prop := $(call intermediates-dir-for,ETC,system_build_prop)/build.prop -$(INSTALLED_DEFAULT_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(intermediate_system_build_prop) +$(INSTALLED_DEFAULT_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) $(intermediate_system_build_prop) @echo Target buildinfo: $@ @mkdir -p $(dir $@) @rm -f $@ @@ -253,7 +254,7 @@ $(INSTALLED_DEFAULT_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(intermediate_system_b echo "#" >> $@; $(hide) $(foreach line,$(FINAL_DEFAULT_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ + $(hide) $(POST_PROCESS_PROPS) $@ ifdef property_overrides_split_enabled $(hide) mkdir -p $(TARGET_ROOT_OUT) $(hide) ln -sf system/etc/prop.default $(INSTALLED_DEFAULT_PROP_OLD_TARGET) @@ -266,7 +267,7 @@ ifdef property_overrides_split_enabled INSTALLED_VENDOR_DEFAULT_PROP_TARGET := $(TARGET_OUT_VENDOR)/default.prop ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET) -$(INSTALLED_VENDOR_DEFAULT_PROP_TARGET): $(INSTALLED_DEFAULT_PROP_TARGET) +$(INSTALLED_VENDOR_DEFAULT_PROP_TARGET): $(INSTALLED_DEFAULT_PROP_TARGET) $(POST_PROCESS_PROPS) @echo Target buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo "#" > $@; \ @@ -274,7 +275,7 @@ $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET): $(INSTALLED_DEFAULT_PROP_TARGET) echo "#" >> $@; $(hide) $(foreach line,$(FINAL_VENDOR_DEFAULT_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ + $(hide) $(POST_PROCESS_PROPS) $@ endif # property_overrides_split_enabled @@ -391,7 +392,7 @@ system_prop_file := $(TARGET_SYSTEM_PROP) else system_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop) endif -$(intermediate_system_build_prop): $(BUILDINFO_SH) $(BUILDINFO_COMMON_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file) $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(API_FINGERPRINT) +$(intermediate_system_build_prop): $(BUILDINFO_SH) $(BUILDINFO_COMMON_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file) $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(API_FINGERPRINT) $(POST_PROCESS_PROPS) @echo Target buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo > $@ @@ -455,7 +456,7 @@ endif echo "#" >> $@; ) $(hide) $(foreach line,$(FINAL_BUILD_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ $(PRODUCT_SYSTEM_PROPERTY_BLACKLIST) + $(hide) $(POST_PROCESS_PROPS) $@ $(PRODUCT_SYSTEM_PROPERTY_BLACKLIST) build_desc := @@ -484,7 +485,7 @@ FINAL_VENDOR_BUILD_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_VENDOR_BUILD_PROPERTIES),=) endif # property_overrides_split_enabled -$(INSTALLED_VENDOR_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(intermediate_system_build_prop) +$(INSTALLED_VENDOR_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) $(intermediate_system_build_prop) @echo Target vendor buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo > $@ @@ -522,7 +523,7 @@ ifdef property_overrides_split_enabled $(hide) $(foreach line,$(FINAL_VENDOR_BUILD_PROPERTIES), \ echo "$(line)" >> $@;) endif # property_overrides_split_enabled - $(hide) build/make/tools/post_process_props.py $@ $(PRODUCT_VENDOR_PROPERTY_BLACKLIST) + $(hide) $(POST_PROCESS_PROPS) $@ $(PRODUCT_VENDOR_PROPERTY_BLACKLIST) # ----------------------------------------------------------------- # product build.prop @@ -540,7 +541,7 @@ FINAL_PRODUCT_PROPERTIES += \ FINAL_PRODUCT_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_PRODUCT_PROPERTIES),=) -$(INSTALLED_PRODUCT_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(product_prop_files) +$(INSTALLED_PRODUCT_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) $(product_prop_files) @echo Target product buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo > $@ @@ -563,7 +564,7 @@ endif # BOARD_USES_PRODUCTIMAGE echo "ro.build.characteristics=$(TARGET_AAPT_CHARACTERISTICS)" >> $@; $(hide) $(foreach line,$(FINAL_PRODUCT_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ + $(hide) $(POST_PROCESS_PROPS) $@ # ---------------------------------------------------------------- # odm build.prop @@ -575,7 +576,7 @@ FINAL_ODM_BUILD_PROPERTIES += \ FINAL_ODM_BUILD_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_ODM_BUILD_PROPERTIES),=) -$(INSTALLED_ODM_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) +$(INSTALLED_ODM_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) @echo Target odm buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo > $@ @@ -588,7 +589,7 @@ $(INSTALLED_ODM_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) echo "#" >> $@; $(hide) $(foreach line,$(FINAL_ODM_BUILD_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ + $(hide) $(POST_PROCESS_PROPS) $@ # ----------------------------------------------------------------- # product_services build.prop (unless it's merged into /product) @@ -604,7 +605,7 @@ FINAL_PRODUCT_SERVICES_PROPERTIES += \ $(call collapse-pairs, $(PRODUCT_PRODUCT_SERVICES_PROPERTIES)) FINAL_PRODUCT_SERVICES_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_PRODUCT_SERVICES_PROPERTIES),=) -$(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) +$(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) @echo Target product_services buildinfo: $@ @mkdir -p $(dir $@) $(hide) echo > $@ @@ -616,7 +617,7 @@ endif # BOARD_USES_PRODUCT_SERVICESIMAGE echo "#" >> $@; $(hide) $(foreach line,$(FINAL_PRODUCT_SERVICES_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/make/tools/post_process_props.py $@ + $(hide) $(POST_PROCESS_PROPS) $@ endif # MERGE_PRODUCT_SERVICES_INTO_PRODUCT # ---------------------------------------------------------------- @@ -648,6 +649,57 @@ $(INSTALLED_SDK_BUILD_PROP_TARGET): $(INSTALLED_BUILD_PROP_TARGET) $(hide) mv $@.tmp $@ # ----------------------------------------------------------------- +# kernel modules + +# Depmod requires a well-formed kernel version so 0.0 is used as a placeholder. +DEPMOD_STAGING_SUBDIR :=$= lib/modules/0.0 + +# $(1): modules list +# $(2): output dir +# $(3): mount point +# $(4): staging dir +# Returns the a list of src:dest pairs to install the modules using copy-many-files. +define build-image-kernel-modules + $(foreach module,$(1),$(module):$(2)/lib/modules/$(notdir $(module))) \ + $(eval $(call build-image-kernel-modules-depmod,$(1),$(2),$(3),$(4))) \ + $(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep:$(2)/lib/modules/modules.dep \ + $(4)/$(DEPMOD_STAGING_SUBDIR)/modules.alias:$(2)/lib/modules/modules.alias +endef + +# $(1): modules list +# $(2): output dir +# $(3): mount point +# $(4): staging dir +define build-image-kernel-modules-depmod +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: .KATI_IMPLICIT_OUTPUTS := $(4)/$(DEPMOD_STAGING_SUBDIR)/modules.alias +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: $(DEPMOD) +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: PRIVATE_MODULES := $(1) +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: PRIVATE_OUTPUT_DIR := $(2) +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: PRIVATE_MOUNT_POINT := $(3) +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: PRIVATE_STAGING_DIR := $(4) +$(4)/$(DEPMOD_STAGING_SUBDIR)/modules.dep: $(1) + @echo depmod $$(PRIVATE_STAGING_DIR) + rm -rf $$(PRIVATE_STAGING_DIR) + mkdir -p $$(PRIVATE_STAGING_DIR)/$$(DEPMOD_STAGING_SUBDIR)/$$(PRIVATE_MOUNT_POINT)/lib/modules + cp $$(PRIVATE_MODULES) $$(PRIVATE_STAGING_DIR)/$$(DEPMOD_STAGING_SUBDIR)/$$(PRIVATE_MOUNT_POINT)/lib/modules + $(DEPMOD) -b $$(PRIVATE_STAGING_DIR) 0.0 + # Turn paths in modules.dep into absolute paths + sed -i.tmp -e 's|\([^: ]*/lib/modules/[^: ]*\)|/\1|g' $$(PRIVATE_STAGING_DIR)/$$(DEPMOD_STAGING_SUBDIR)/modules.dep +endef + +ifdef BOARD_RECOVERY_KERNEL_MODULES + ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_RECOVERY_KERNEL_MODULES),$(TARGET_RECOVERY_ROOT_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_recovery))) +endif + +ifdef BOARD_VENDOR_KERNEL_MODULES + ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_VENDOR_KERNEL_MODULES),$(TARGET_OUT_VENDOR),vendor,$(call intermediates-dir-for,PACKAGING,depmod_vendor))) +endif + +ifdef BOARD_ODM_KERNEL_MODULES + ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_ODM_KERNEL_MODULES),$(TARGET_OUT_ODM),odm,$(call intermediates-dir-for,PACKAGING,depmod_odm))) +endif + +# ----------------------------------------------------------------- # package stats ifdef BUILDING_SYSTEM_IMAGE @@ -855,12 +907,12 @@ INTERNAL_ROOT_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ INSTALLED_FILES_FILE_ROOT := $(PRODUCT_OUT)/installed-files-root.txt INSTALLED_FILES_JSON_ROOT := $(INSTALLED_FILES_FILE_ROOT:.txt=.json) $(INSTALLED_FILES_FILE_ROOT): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_ROOT) -$(INSTALLED_FILES_FILE_ROOT) : $(INTERNAL_ROOT_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_ROOT) : $(INTERNAL_ROOT_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_ROOT_OUT) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ $(call dist-for-goals, sdk win_sdk sdk_addon, $(INSTALLED_FILES_FILE_ROOT)) @@ -884,13 +936,13 @@ INTERNAL_RAMDISK_FILES := $(filter $(TARGET_RAMDISK_OUT)/%, \ INSTALLED_FILES_FILE_RAMDISK := $(PRODUCT_OUT)/installed-files-ramdisk.txt INSTALLED_FILES_JSON_RAMDISK := $(INSTALLED_FILES_FILE_RAMDISK:.txt=.json) $(INSTALLED_FILES_FILE_RAMDISK): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_RAMDISK) -$(INSTALLED_FILES_FILE_RAMDISK) : $(INTERNAL_RAMDISK_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_RAMDISK) : $(INTERNAL_RAMDISK_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(TARGET_RAMDISK_OUT) @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_RAMDISK_OUT) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ $(call dist-for-goals, sdk win_sdk sdk_addon, $(INSTALLED_FILES_FILE_RAMDISK)) BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img @@ -1145,6 +1197,8 @@ installed_product_services_notice_xml_gz := $(TARGET_OUT_PRODUCT_SERVICES)/etc/N license_modules := $(ALL_DEFAULT_INSTALLED_MODULES) $(kernel_notice_file) $(pdk_fusion_notice_files) # Phonys/fakes don't have notice files (though their deps might) license_modules := $(filter-out $(TARGET_OUT_FAKE)/%,$(license_modules)) +# testcases are not relevant to the system image. +license_modules := $(filter-out $(TARGET_OUT_TESTCASES)/%,$(license_modules)) license_modules_vendor := $(filter $(TARGET_OUT_VENDOR)/%,$(license_modules)) license_modules_product := $(filter $(TARGET_OUT_PRODUCT)/%,$(license_modules)) license_modules_product_services := $(filter $(TARGET_OUT_PRODUCT_SERVICES)/%,$(license_modules)) @@ -1502,23 +1556,6 @@ define read-image-prop-dictionary $$(grep '$(2)=' $(1) | cut -f2- -d'=') endef -# $(1): modules list -# $(2): output dir -# $(3): mount point -# $(4): staging dir -# Depmod requires a well-formed kernel version so 0.0 is used as a placeholder. -define build-image-kernel-modules - $(hide) rm -rf $(2)/lib/modules - $(hide) mkdir -p $(2)/lib/modules - $(hide) cp $(1) $(2)/lib/modules/ - $(hide) rm -rf $(4) - $(hide) mkdir -p $(4)/lib/modules/0.0/$(3)lib/modules - $(hide) cp $(1) $(4)/lib/modules/0.0/$(3)lib/modules - $(hide) $(DEPMOD) -b $(4) 0.0 - $(hide) sed -e 's/\(.*modules.*\):/\/\1:/g' -e 's/ \([^ ]*modules[^ ]*\)/ \/\1/g' $(4)/lib/modules/0.0/modules.dep > $(2)/lib/modules/modules.dep - $(hide) cp $(4)/lib/modules/0.0/modules.alias $(2)/lib/modules -endef - # ----------------------------------------------------------------- # Recovery image @@ -1543,12 +1580,12 @@ $(INSTALLED_FILES_FILE_RECOVERY): $(INSTALLED_RECOVERYIMAGE_TARGET) endif $(INSTALLED_FILES_FILE_RECOVERY): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_RECOVERY) -$(INSTALLED_FILES_FILE_RECOVERY): $(INTERNAL_RECOVERYIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_RECOVERY): $(INTERNAL_RECOVERYIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_RECOVERY_ROOT_OUT) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ recovery_initrc := $(call include-path-for, recovery)/etc/init.rc recovery_sepolicy := \ @@ -1833,8 +1870,6 @@ define build-recoveryimage-target # Modifying ramdisk contents... $(if $(filter true,$(BOARD_BUILD_SYSTEM_ROOT_IMAGE)),, \ $(hide) ln -sf /system/bin/init $(TARGET_RECOVERY_ROOT_OUT)/init) - $(if $(BOARD_RECOVERY_KERNEL_MODULES), \ - $(call build-image-kernel-modules,$(BOARD_RECOVERY_KERNEL_MODULES),$(TARGET_RECOVERY_ROOT_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_recovery))) # Removes $(TARGET_RECOVERY_ROOT_OUT)/init*.rc EXCEPT init.recovery*.rc. $(hide) find $(TARGET_RECOVERY_ROOT_OUT) -maxdepth 1 -name 'init*.rc' -type f -not -name "init.recovery.*.rc" | xargs rm -f $(hide) cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/ @@ -1906,9 +1941,7 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET) \ $(recovery_resource_deps) \ - $(recovery_fstab) \ - $(BOARD_RECOVERY_KERNEL_MODULES) \ - $(DEPMOD) + $(recovery_fstab) $(call pretty,"Target boot image from recovery: $@") $(call build-recoveryimage-target, $@) endif # BOARD_USES_RECOVERY_AS_BOOT @@ -1936,9 +1969,7 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET) \ $(recovery_resource_deps) \ - $(recovery_fstab) \ - $(BOARD_RECOVERY_KERNEL_MODULES) \ - $(DEPMOD) + $(recovery_fstab) $(call build-recoveryimage-target, $@) ifdef RECOVERY_RESOURCE_ZIP @@ -1996,12 +2027,12 @@ $(INSTALLED_FILES_FILE_DEBUG_RAMDISK): DEBUG_RAMDISK_ROOT_DIR := $(my_debug_ramd # Because ramdisk-debug.img will rsync from either ramdisk.img or ramdisk-recovery.img. # Need to depend on the built ramdisk-debug.img, to get a complete list of the installed files. $(INSTALLED_FILES_FILE_DEBUG_RAMDISK) : $(INSTALLED_DEBUG_RAMDISK_TARGET) -$(INSTALLED_FILES_FILE_DEBUG_RAMDISK) : $(INTERNAL_DEBUG_RAMDISK_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_DEBUG_RAMDISK) : $(INTERNAL_DEBUG_RAMDISK_FILES) $(FILESLIST) $(FILESLIST_UTIL) echo Installed file list: $@ mkdir -p $(dir $@) rm -f $@ $(FILESLIST) $(DEBUG_RAMDISK_ROOT_DIR) > $(@:.txt=.json) - build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ # ramdisk-debug.img will rsync the content from either ramdisk.img or ramdisk-recovery.img, # depending on whether BOARD_USES_RECOVERY_AS_BOOT is set or not. @@ -2134,12 +2165,12 @@ ifdef BUILDING_SYSTEM_IMAGE INSTALLED_FILES_FILE := $(PRODUCT_OUT)/installed-files.txt INSTALLED_FILES_JSON := $(INSTALLED_FILES_FILE:.txt=.json) $(INSTALLED_FILES_FILE): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON) -$(INSTALLED_FILES_FILE): $(FULL_SYSTEMIMAGE_DEPS) $(FILESLIST) +$(INSTALLED_FILES_FILE): $(FULL_SYSTEMIMAGE_DEPS) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ .PHONY: installed-file-list installed-file-list: $(INSTALLED_FILES_FILE) @@ -2227,6 +2258,9 @@ define build-systemimage-target exit 1 ) endef +ifeq ($(BOARD_AVB_ENABLE),true) +$(BUILT_SYSTEMIMAGE): $(BOARD_AVB_SYSTEM_KEY_PATH) +endif $(BUILT_SYSTEMIMAGE): $(FULL_SYSTEMIMAGE_DEPS) $(INSTALLED_FILES_FILE) $(BUILD_IMAGE_SRCS) $(call build-systemimage-target,$@) @@ -2614,12 +2648,12 @@ INTERNAL_SYSTEMOTHERIMAGE_FILES += $(INTERNAL_SYSTEMIMAGE_FILES) INSTALLED_FILES_FILE_SYSTEMOTHER := $(PRODUCT_OUT)/installed-files-system-other.txt INSTALLED_FILES_JSON_SYSTEMOTHER := $(INSTALLED_FILES_FILE_SYSTEMOTHER:.txt=.json) $(INSTALLED_FILES_FILE_SYSTEMOTHER): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_SYSTEMOTHER) -$(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT_SYSTEM_OTHER) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ # Determines partition size for system_other.img. ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS),true) @@ -2764,12 +2798,12 @@ $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_VENDORIMAGE_FILES) INSTALLED_FILES_FILE_VENDOR := $(PRODUCT_OUT)/installed-files-vendor.txt INSTALLED_FILES_JSON_VENDOR := $(INSTALLED_FILES_FILE_VENDOR:.txt=.json) $(INSTALLED_FILES_FILE_VENDOR): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_VENDOR) -$(INSTALLED_FILES_FILE_VENDOR) : $(INTERNAL_VENDORIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_VENDOR) : $(INTERNAL_VENDORIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT_VENDOR) > $(@:.txt=.json) - $(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ vendorimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,vendor) @@ -2780,8 +2814,6 @@ define build-vendorimage-target $(call create-vendor-odm-symlink) @mkdir -p $(vendorimage_intermediates) && rm -rf $(vendorimage_intermediates)/vendor_image_info.txt $(call generate-image-prop-dictionary, $(vendorimage_intermediates)/vendor_image_info.txt,vendor,skip_fsck=true) - $(if $(BOARD_VENDOR_KERNEL_MODULES), \ - $(call build-image-kernel-modules,$(BOARD_VENDOR_KERNEL_MODULES),$(TARGET_OUT_VENDOR),vendor/,$(call intermediates-dir-for,PACKAGING,depmod_vendor))) $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \ build/make/tools/releasetools/build_image.py \ $(TARGET_OUT_VENDOR) $(vendorimage_intermediates)/vendor_image_info.txt $(INSTALLED_VENDORIMAGE_TARGET) $(TARGET_OUT) @@ -2793,11 +2825,11 @@ INSTALLED_VENDORIMAGE_TARGET := $(BUILT_VENDORIMAGE_TARGET) ifdef BUILT_VENDOR_MANIFEST $(INSTALLED_VENDORIMAGE_TARGET): $(BUILT_ASSEMBLED_VENDOR_MANIFEST) endif -$(INSTALLED_VENDORIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_VENDORIMAGE_FILES) $(INSTALLED_FILES_FILE_VENDOR) $(BUILD_IMAGE_SRCS) $(DEPMOD) $(BOARD_VENDOR_KERNEL_MODULES) +$(INSTALLED_VENDORIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_VENDORIMAGE_FILES) $(INSTALLED_FILES_FILE_VENDOR) $(BUILD_IMAGE_SRCS) $(build-vendorimage-target) .PHONY: vendorimage-nodeps vnod -vendorimage-nodeps vnod: | $(INTERNAL_USERIMAGES_DEPS) $(DEPMOD) +vendorimage-nodeps vnod: | $(INTERNAL_USERIMAGES_DEPS) $(build-vendorimage-target) sync: $(INTERNAL_VENDORIMAGE_FILES) @@ -2822,12 +2854,12 @@ $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_PRODUCTIMAGE_FILES) INSTALLED_FILES_FILE_PRODUCT := $(PRODUCT_OUT)/installed-files-product.txt INSTALLED_FILES_JSON_PRODUCT := $(INSTALLED_FILES_FILE_PRODUCT:.txt=.json) $(INSTALLED_FILES_FILE_PRODUCT): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_PRODUCT) -$(INSTALLED_FILES_FILE_PRODUCT) : $(INTERNAL_PRODUCTIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_PRODUCT) : $(INTERNAL_PRODUCTIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT_PRODUCT) > $(@:.txt=.json) - $(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ productimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,product) @@ -2920,12 +2952,12 @@ $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_PRODUCT_SERVICESIMAGE_FILES) INSTALLED_FILES_FILE_PRODUCT_SERVICES := $(PRODUCT_OUT)/installed-files-product_services.txt INSTALLED_FILES_JSON_PRODUCT_SERVICES := $(INSTALLED_FILES_FILE_PRODUCT_SERVICES:.txt=.json) $(INSTALLED_FILES_FILE_PRODUCT_SERVICES): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_PRODUCT_SERVICES) -$(INSTALLED_FILES_FILE_PRODUCT_SERVICES) : $(INTERNAL_PRODUCT_SERVICESIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_PRODUCT_SERVICES) : $(INTERNAL_PRODUCT_SERVICESIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT_PRODUCT_SERVICES) > $(@:.txt=.json) - $(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ product_servicesimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,product_services) @@ -2971,12 +3003,12 @@ $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_ODMIMAGE_FILES) INSTALLED_FILES_FILE_ODM := $(PRODUCT_OUT)/installed-files-odm.txt INSTALLED_FILES_JSON_ODM := $(INSTALLED_FILES_FILE_ODM:.txt=.json) $(INSTALLED_FILES_FILE_ODM): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_ODM) -$(INSTALLED_FILES_FILE_ODM) : $(INTERNAL_ODMIMAGE_FILES) $(FILESLIST) +$(INSTALLED_FILES_FILE_ODM) : $(INTERNAL_ODMIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ $(hide) $(FILESLIST) $(TARGET_OUT_ODM) > $(@:.txt=.json) - $(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@ + $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ odmimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,odm) @@ -2986,8 +3018,6 @@ define build-odmimage-target @mkdir -p $(TARGET_OUT_ODM) @mkdir -p $(odmimage_intermediates) && rm -rf $(odmimage_intermediates)/odm_image_info.txt $(call generate-userimage-prop-dictionary, $(odmimage_intermediates)/odm_image_info.txt, skip_fsck=true) - $(if $(BOARD_ODM_KERNEL_MODULES), \ - $(call build-image-kernel-modules,$(BOARD_ODM_KERNEL_MODULES),$(TARGET_OUT_ODM),odm/,$(call intermediates-dir-for,PACKAGING,depmod_odm))) $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \ ./build/tools/releasetools/build_image.py \ $(TARGET_OUT_ODM) $(odmimage_intermediates)/odm_image_info.txt $(INSTALLED_ODMIMAGE_TARGET) $(TARGET_OUT) @@ -2996,11 +3026,11 @@ endef # We just build this directly to the install location. INSTALLED_ODMIMAGE_TARGET := $(BUILT_ODMIMAGE_TARGET) -$(INSTALLED_ODMIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_ODMIMAGE_FILES) $(INSTALLED_FILES_FILE_ODM) $(BUILD_IMAGE_SRCS) $(DEPMOD) $(BOARD_ODM_KERNEL_MODULES) +$(INSTALLED_ODMIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_ODMIMAGE_FILES) $(INSTALLED_FILES_FILE_ODM) $(BUILD_IMAGE_SRCS) $(build-odmimage-target) .PHONY: odmimage-nodeps onod -odmimage-nodeps onod: | $(INTERNAL_USERIMAGES_DEPS) $(DEPMOD) +odmimage-nodeps onod: | $(INTERNAL_USERIMAGES_DEPS) $(build-odmimage-target) sync: $(INTERNAL_ODMIMAGE_FILES) @@ -3395,6 +3425,14 @@ define super-slot-suffix $(if $(filter true,$(AB_OTA_UPDATER)),$(if $(filter true,$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS)),,_a)) endef +ifndef BOARD_SUPER_PARTITION_WARN_LIMIT +BOARD_SUPER_PARTITION_WARN_LIMIT := $$(($(BOARD_SUPER_PARTITION_SIZE) * 95 / 100)) +endif + +ifndef BOARD_SUPER_PARTITION_ERROR_LIMIT +BOARD_SUPER_PARTITION_ERROR_LIMIT := $(BOARD_SUPER_PARTITION_SIZE) +endif + droid_targets: check-all-partition-sizes .PHONY: check-all-partition-sizes check-all-partition-sizes-nodeps @@ -3429,6 +3467,10 @@ endif # $(1): human-readable max size string # $(2): max size expression # $(3): list of partition names +# $(4): human-readable warn size string +# $(5): warn size expression +# $(6): human readable error size string +# $(7): error size expression define check-sum-of-partition-sizes partition_size_list="$$(for i in $(call read-size-of-partitions,$(3)); do \ echo $(call round-partition-size,$${i}); \ @@ -3439,6 +3481,17 @@ define check-sum-of-partition-sizes echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '>' "$(2)" '==' $$(( $(2) )); \ exit 1; \ else \ + if [[ ! -z "$(7)" ]] && [ $$(( $${sum_sizes_expr} )) -gt $$(( $(7) )) ]; then \ + echo "!!!! ERROR !!!! The sum of sizes of [$(strip $(3))] is larger than $(strip $(6)):"; \ + echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '>' "$(7)" '==' $$(( $(7) )); \ + echo "Super partition is" $$(( $$(( $$(( $${sum_sizes_expr} )) * 100)) / $$(( $(2) )) )) "percent occupied!"; \ + exit 1; \ + fi; \ + if [[ ! -z "$(5)" ]] && [ $$(( $${sum_sizes_expr} )) -gt $$(( $(5) )) ]; then \ + echo "!!!! WARNING !!!! The sum of sizes of [$(strip $(3))] is larger than $(strip $(4)):"; \ + echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '>' "$(5)" '==' $$(( $(5) )); \ + echo "Super partition is" $$(( $$(( $$(( $${sum_sizes_expr} )) * 100)) / $$(( $(2) )) )) "percent occupied!"; \ + fi; \ echo "The sum of sizes of [$(strip $(3))] is within $(strip $(1)):"; \ echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '<=' "$(2)" '==' $$(( $(2) )); \ fi; @@ -3448,7 +3501,12 @@ define check-all-partition-sizes-target # Check sum(all partitions) <= super partition (/ 2 for A/B devices launched with dynamic partitions) $(if $(BOARD_SUPER_PARTITION_SIZE),$(if $(BOARD_SUPER_PARTITION_PARTITION_LIST), \ $(call check-sum-of-partition-sizes,BOARD_SUPER_PARTITION_SIZE$(if $(call super-slot-suffix), / 2), \ - $(BOARD_SUPER_PARTITION_SIZE)$(if $(call super-slot-suffix), / 2),$(BOARD_SUPER_PARTITION_PARTITION_LIST)))) + $(BOARD_SUPER_PARTITION_SIZE)$(if $(call super-slot-suffix), / 2),$(BOARD_SUPER_PARTITION_PARTITION_LIST), \ + BOARD_SUPER_PARTITION_WARN_LIMIT$(if $(call super-slot-suffix), / 2), \ + $(BOARD_SUPER_PARTITION_WARN_LIMIT)$(if $(call super-slot-suffix), / 2), \ + BOARD_SUPER_PARTITION_ERROR_LIMIT$(if $(call super-slot-suffix), / 2), \ + $(BOARD_SUPER_PARTITION_ERROR_LIMIT)$(if $(call super-slot-suffix), / 2)) \ + )) # For each group, check sum(partitions in group) <= group size $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ @@ -4324,11 +4382,10 @@ $(SYMBOLS_ZIP): $(SOONG_ZIP) # ----------------------------------------------------------------- # A zip of the coverage directory. # -name := $(TARGET_PRODUCT) +name := gcov-report-files-all ifeq ($(TARGET_BUILD_TYPE),debug) name := $(name)_debug endif -name := $(name)-coverage-$(FILE_NAME_TAG) COVERAGE_ZIP := $(PRODUCT_OUT)/$(name).zip ifndef TARGET_BUILD_APPS $(COVERAGE_ZIP): $(INSTALLED_SYSTEMIMAGE_TARGET) \ diff --git a/core/autogen_test_config.mk b/core/autogen_test_config.mk index 6d751322bd..d4ca56f1b8 100644 --- a/core/autogen_test_config.mk +++ b/core/autogen_test_config.mk @@ -36,7 +36,7 @@ endif $(autogen_test_config_file): PRIVATE_MODULE_NAME := $(LOCAL_MODULE) $(autogen_test_config_file) : $(autogen_test_config_template) @echo "Auto generating test config $(notdir $@)" - $(hide) sed 's&{MODULE}&$(PRIVATE_MODULE_NAME)&g;s&{EXTRA_OPTIONS}&&g' $< > $@ + $(hide) sed 's&{MODULE}&$(PRIVATE_MODULE_NAME)&g;s&{EXTRA_CONFIGS}&&g' $< > $@ my_auto_generate_config := true else # Auto generating test config file for instrumentation test diff --git a/core/base_rules.mk b/core/base_rules.mk index 6c7e8831d2..b0e0577a2e 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -396,7 +396,7 @@ endif logtags_sources := $(filter %.logtags,$(LOCAL_SRC_FILES)) $(LOCAL_LOGTAGS_FILES) ifneq ($(strip $(logtags_sources)),) -event_log_tags := $(addprefix $(LOCAL_PATH)/,$(logtags_sources)) +event_log_tags := $(foreach f,$(addprefix $(LOCAL_PATH)/,$(logtags_sources)),$(call clean-path,$(f))) else event_log_tags := endif diff --git a/core/binary.mk b/core/binary.mk index a420c02d83..f63e4cdee9 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -876,7 +876,7 @@ $(dotdot_objects) $(cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) ifneq ($(strip $(cpp_objects)),) $(cpp_objects): $(intermediates)/%.o: \ $(TOPDIR)$(LOCAL_PATH)/%$(LOCAL_CPP_EXTENSION) \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)cpp-to-o) $(call include-depfiles-for-objs, $(cpp_objects)) endif @@ -897,7 +897,7 @@ $(gen_cpp_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(gen_cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(gen_cpp_objects): $(intermediates)/%.o: \ $(intermediates)/%$(LOCAL_CPP_EXTENSION) \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)cpp-to-o) $(call include-depfiles-for-objs, $(gen_cpp_objects)) endif @@ -912,7 +912,7 @@ $(call track-gen-file-obj,$(gen_S_sources),$(gen_S_objects)) ifneq ($(strip $(gen_S_sources)),) $(gen_S_objects): $(intermediates)/%.o: $(intermediates)/%.S \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) $(call include-depfiles-for-objs, $(gen_S_objects)) endif @@ -923,7 +923,7 @@ $(call track-gen-file-obj,$(gen_s_sources),$(gen_s_objects)) ifneq ($(strip $(gen_s_objects)),) $(gen_s_objects): $(intermediates)/%.o: $(intermediates)/%.s \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) endif @@ -961,7 +961,7 @@ $(dotdot_objects) $(c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) ifneq ($(strip $(c_objects)),) $(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)c-to-o) $(call include-depfiles-for-objs, $(c_objects)) endif @@ -981,7 +981,7 @@ ifneq ($(strip $(gen_c_objects)),) $(gen_c_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(gen_c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)c-to-o) $(call include-depfiles-for-objs, $(gen_c_objects)) endif @@ -997,7 +997,7 @@ $(call track-src-file-obj,$(objc_sources),$(objc_objects)) ifneq ($(strip $(objc_objects)),) my_soong_problems += objc $(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)m-to-o) $(call include-depfiles-for-objs, $(objc_objects)) endif @@ -1012,7 +1012,7 @@ $(call track-src-file-obj,$(objcpp_sources),$(objcpp_objects)) ifneq ($(strip $(objcpp_objects)),) $(objcpp_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.mm \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)mm-to-o) $(call include-depfiles-for-objs, $(objcpp_objects)) endif @@ -1036,7 +1036,7 @@ $(call track-src-file-obj,$(dotdot_sources),$(dotdot_objects_S)) ifneq ($(strip $(asm_objects_S)),) $(asm_objects_S): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.S \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) $(call include-depfiles-for-objs, $(asm_objects_S)) endif @@ -1056,7 +1056,7 @@ $(call track-src-file-obj,$(dotdot_sources),$(dotdot_objects_s)) ifneq ($(strip $(asm_objects_s)),) $(asm_objects_s): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.s \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) endif @@ -1069,7 +1069,7 @@ asm_sources_asm := $(filter %.asm,$(my_src_files)) ifneq ($(strip $(asm_sources_asm)),) asm_objects_asm := $(addprefix $(intermediates)/,$(asm_sources_asm:.asm=.o)) $(asm_objects_asm): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.asm \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(YASM) $(transform-asm-to-o) $(call track-src-file-obj,$(asm_sources_asm),$(asm_objects_asm)) @@ -1362,6 +1362,10 @@ built_shared_libraries += \ $(my_ndk_shared_libraries_fullpath) \ $(my_system_shared_libraries_fullpath) \ +built_shared_library_deps += \ + $(my_ndk_shared_libraries_fullpath) \ + $(my_system_shared_libraries_fullpath) \ + else built_shared_libraries := \ $(foreach lib,$(installed_shared_library_module_names), \ diff --git a/core/cc_prebuilt_internal.mk b/core/cc_prebuilt_internal.mk index b936bd75e6..2bf4fdc6eb 100644 --- a/core/cc_prebuilt_internal.mk +++ b/core/cc_prebuilt_internal.mk @@ -18,6 +18,11 @@ # Internal build rules for native prebuilt modules ############################################################ +prebuilt_module_classes := STATIC_LIBRARIES SHARED_LIBRARIES EXECUTABLES NATIVE_TESTS +ifeq ($(filter $(prebuilt_module_classes),$(LOCAL_MODULE_CLASS)),) +$(call pretty-error,cc_prebuilt_internal.mk is for $(prebuilt_module_classes) modules only) +endif + my_strip_module := $(firstword \ $(LOCAL_STRIP_MODULE_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) \ $(LOCAL_STRIP_MODULE)) diff --git a/core/combo/javac.mk b/core/combo/javac.mk index dac2628572..32a5c9ebcd 100644 --- a/core/combo/javac.mk +++ b/core/combo/javac.mk @@ -16,4 +16,5 @@ ANDROID_JAVA_TOOLCHAIN := $(ANDROID_JAVA_HOME)/bin # TODO(ccross): remove this, it is needed for now because it is used by # config.mk before makevars from soong are loaded -JAVA := $(ANDROID_JAVA_TOOLCHAIN)/java +JAVA := $(ANDROID_JAVA_TOOLCHAIN)/java -XX:OnError="cat hs_err_pid%p.log" -XX:CICompilerCount=6 -XX:+UseDynamicNumberOfGCThreads + diff --git a/core/config.mk b/core/config.mk index ee2db4fa8c..92efd34147 100644 --- a/core/config.mk +++ b/core/config.mk @@ -522,6 +522,7 @@ ACP := $(prebuilt_build_tools_bin)/acp CKATI := $(prebuilt_build_tools_bin)/ckati DEPMOD := $(HOST_OUT_EXECUTABLES)/depmod FILESLIST := $(SOONG_HOST_OUT_EXECUTABLES)/fileslist +FILESLIST_UTIL :=$= build/make/tools/fileslist_util.py HOST_INIT_VERIFIER := $(HOST_OUT_EXECUTABLES)/host_init_verifier MAKEPARALLEL := $(prebuilt_build_tools_bin)/makeparallel SOONG_JAVAC_WRAPPER := $(SOONG_HOST_OUT_EXECUTABLES)/soong_javac_wrapper @@ -925,10 +926,6 @@ BOARD_SUPER_PARTITION_PARTITION_LIST := \ $(BOARD_$(group)_PARTITION_LIST)) .KATI_READONLY := BOARD_SUPER_PARTITION_PARTITION_LIST -endif # PRODUCT_USE_DYNAMIC_PARTITIONS - -ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) - ifneq ($(BOARD_SUPER_PARTITION_SIZE),) ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS),true) @@ -988,8 +985,11 @@ BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE := endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS endif # BOARD_SUPER_PARTITION_SIZE +BOARD_SUPER_PARTITION_BLOCK_DEVICES ?= .KATI_READONLY := BOARD_SUPER_PARTITION_BLOCK_DEVICES +BOARD_SUPER_PARTITION_METADATA_DEVICE ?= .KATI_READONLY := BOARD_SUPER_PARTITION_METADATA_DEVICE +BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE ?= .KATI_READONLY := BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE $(foreach device,$(call to-upper,$(BOARD_SUPER_PARTITION_BLOCK_DEVICES)), \ @@ -998,7 +998,7 @@ $(foreach device,$(call to-upper,$(BOARD_SUPER_PARTITION_BLOCK_DEVICES)), \ $(error BOARD_SUPER_PARTITION_$(device)_DEVICE_SIZE must not be empty)) \ $(eval .KATI_READONLY := BOARD_SUPER_PARTITION_$(device)_DEVICE_SIZE)) -endif # PRODUCT_BUILD_SUPER_PARTITION +endif # PRODUCT_USE_DYNAMIC_PARTITIONS # ############################################################### # Set up final options. diff --git a/core/definitions.mk b/core/definitions.mk index 5d3227a0a8..4017c470b4 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1012,7 +1012,7 @@ endef # You must call this with $(eval). define define-aidl-java-rule define-aidl-java-rule-src := $(patsubst %.aidl,%.java,$(subst ../,dotdot/,$(addprefix $(2)/,$(1)))) -$$(define-aidl-java-rule-src) : $(LOCAL_PATH)/$(1) $(AIDL) +$$(define-aidl-java-rule-src) : $(call clean-path,$(LOCAL_PATH)/$(1)) $(AIDL) $$(transform-aidl-to-java) $(3) += $$(define-aidl-java-rule-src) endef @@ -1025,7 +1025,7 @@ endef # You must call this with $(eval). define define-aidl-cpp-rule define-aidl-cpp-rule-src := $(patsubst %.aidl,%$(LOCAL_CPP_EXTENSION),$(subst ../,dotdot/,$(addprefix $(2)/,$(1)))) -$$(define-aidl-cpp-rule-src) : $(LOCAL_PATH)/$(1) $(AIDL_CPP) +$$(define-aidl-cpp-rule-src) : $(call clean-path,$(LOCAL_PATH)/$(1)) $(AIDL_CPP) $$(transform-aidl-to-cpp) $(3) += $$(define-aidl-cpp-rule-src) endef @@ -1082,7 +1082,7 @@ $(hide) for f in $(PRIVATE_PROTO_SRC_FILES); do \ $(PRIVATE_PROTOC_FLAGS) \ $$f || exit 33; \ done -$(hide) touch $@ +$(SOONG_ZIP) -o $@ -C $(PRIVATE_PROTO_JAVA_OUTPUT_DIR) -D $(PRIVATE_PROTO_JAVA_OUTPUT_DIR) endef ###################################################################### @@ -1365,7 +1365,7 @@ DOTDOT_REPLACEMENT := dotdot/ # $(3): the variable name to collect the output object file. define compile-dotdot-cpp-file o := $(intermediates)/$(patsubst %$(LOCAL_CPP_EXTENSION),%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG_CXX) $$(transform-$$(PRIVATE_HOST)cpp-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1378,7 +1378,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-c-file o := $(intermediates)/$(patsubst %.c,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)c-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1391,7 +1391,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-s-file o := $(intermediates)/$(patsubst %.S,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)s-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1404,7 +1404,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-s-file-no-deps o := $(intermediates)/$(patsubst %.s,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)s-to-o) $(3) += $$(o) endef @@ -1838,6 +1838,16 @@ define transform-host-o-to-executable $(transform-host-o-to-executable-inner) endef +########################################################### +## Commands for packaging native coverage files +########################################################### +define package-coverage-files + @rm -f $@ $@.lst $@.premerged + @touch $@.lst + $(foreach obj,$(strip $(PRIVATE_ALL_OBJECTS)), $(hide) echo $(obj) >> $@.lst$(newline)) + $(hide) $(SOONG_ZIP) -o $@.premerged -C $(OUT_DIR) -l $@.lst + $(hide) $(MERGE_ZIPS) -ignore-duplicates $@ $@.premerged $(strip $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) +endef ########################################################### ## Commands for running javac to make .class files @@ -1925,7 +1935,7 @@ $(hide) $(AAPT2) link -o $@ \ $(addprefix --manifest ,$(PRIVATE_ANDROID_MANIFEST)) \ $(addprefix -I ,$(PRIVATE_AAPT_INCLUDES)) \ $(addprefix -I ,$(PRIVATE_SHARED_ANDROID_LIBRARIES)) \ - $(addprefix -A ,$(PRIVATE_ASSET_DIR)) \ + $(addprefix -A ,$(foreach d,$(PRIVATE_ASSET_DIR),$(call clean-path,$(d)))) \ $(addprefix --java ,$(PRIVATE_JAVA_GEN_DIR)) \ $(addprefix --proguard ,$(PRIVATE_PROGUARD_OPTIONS_FILE)) \ $(addprefix --min-sdk-version ,$(PRIVATE_DEFAULT_APP_TARGET_SDK)) \ @@ -2013,8 +2023,6 @@ define fetch-additional-java-source $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1); \ fi -$(if $(PRIVATE_HAS_PROTO_SOURCES), \ - $(hide) find $(PRIVATE_PROTO_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1)) endef # Some historical notes: diff --git a/core/deprecation.mk b/core/deprecation.mk index f1e198d518..761a9b6e52 100644 --- a/core/deprecation.mk +++ b/core/deprecation.mk @@ -10,7 +10,6 @@ AVAILABLE_BUILD_MODULE_TYPES :=$= \ BUILD_HOST_JAVA_LIBRARY \ BUILD_HOST_PREBUILT \ BUILD_HOST_SHARED_LIBRARY \ - BUILD_HOST_STATIC_LIBRARY \ BUILD_JAVA_LIBRARY \ BUILD_MULTI_PREBUILT \ BUILD_NATIVE_TEST \ @@ -28,6 +27,7 @@ AVAILABLE_BUILD_MODULE_TYPES :=$= \ # relevant BUILD_BROKEN_USES_BUILD_* variables, then these would move to # DEFAULT_ERROR_BUILD_MODULE_TYPES. DEFAULT_WARNING_BUILD_MODULE_TYPES :=$= \ + BUILD_HOST_STATIC_LIBRARY \ # These are BUILD_* variables that are errors to reference, but you can set # BUILD_BROKEN_USES_BUILD_* in your BoardConfig.mk in order to turn them back diff --git a/core/executable_internal.mk b/core/executable_internal.mk index c28c144f67..a9915aa6ec 100644 --- a/core/executable_internal.mk +++ b/core/executable_internal.mk @@ -74,17 +74,17 @@ $(linked_module): PRIVATE_TARGET_CRTEND_O := $(my_target_crtend_o) $(linked_module): PRIVATE_POST_LINK_CMD := $(LOCAL_POST_LINK_CMD) ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true) -$(linked_module): $(my_target_crtbegin_static_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) +$(linked_module): $(my_target_crtbegin_static_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) $(CLANG_CXX) $(transform-o-to-static-executable) $(PRIVATE_POST_LINK_CMD) else -$(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) +$(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) $(CLANG_CXX) $(transform-o-to-executable) $(PRIVATE_POST_LINK_CMD) endif ifeq ($(my_native_coverage),true) -gcno_suffix := .gcnodir +gcno_suffix := .zip built_whole_gcno_libraries := \ $(foreach lib,$(my_whole_static_libraries), \ @@ -106,11 +106,11 @@ endif GCNO_ARCHIVE := $(my_installed_module_stem)$(gcno_suffix) +$(intermediates)/$(GCNO_ARCHIVE) : $(SOONG_ZIP) $(MERGE_ZIPS) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(strip $(LOCAL_GCNO_FILES)) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := $(strip $(built_whole_gcno_libraries)) $(strip $(built_static_gcno_libraries)) -$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_INTERMEDIATES_DIR := $(intermediates) $(intermediates)/$(GCNO_ARCHIVE) : $(LOCAL_GCNO_FILES) $(built_whole_gcno_libraries) $(built_static_gcno_libraries) - $(transform-o-to-static-lib) + $(package-coverage-files) $(my_coverage_path)/$(GCNO_ARCHIVE) : $(intermediates)/$(GCNO_ARCHIVE) $(copy-file-to-target) diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk index 423575cb10..8e655ff3cb 100644 --- a/core/host_dalvik_java_library.mk +++ b/core/host_dalvik_java_library.mk @@ -73,7 +73,6 @@ $(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON) java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ - $(proto_java_sources_file_stamp) \ $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) diff --git a/core/host_executable_internal.mk b/core/host_executable_internal.mk index e72c4192bd..0cf62a4323 100644 --- a/core/host_executable_internal.mk +++ b/core/host_executable_internal.mk @@ -39,7 +39,7 @@ $(LOCAL_BUILT_MODULE): PRIVATE_RPATHS := ../$(my_libdir) $(my_libdir) endif my_libdir := -$(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) +$(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) $(CLANG_CXX) $(transform-host-o-to-executable) endif # skip_build_from_source diff --git a/core/host_java_library.mk b/core/host_java_library.mk index a29a1b8e29..6c237894c4 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -64,7 +64,6 @@ layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE)) java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ - $(proto_java_sources_file_stamp) \ $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) diff --git a/core/instrumentation_test_config_template.xml b/core/instrumentation_test_config_template.xml index 18ea676af0..afaa561e7e 100644 --- a/core/instrumentation_test_config_template.xml +++ b/core/instrumentation_test_config_template.xml @@ -22,6 +22,8 @@ <option name="test-file-name" value="{MODULE}.apk" /> </target_preparer> + {EXTRA_CONFIGS} + <test class="com.android.tradefed.testtype.{TEST_TYPE}" > <option name="package" value="{PACKAGE}" /> <option name="runner" value="{RUNNER}" /> diff --git a/core/java.mk b/core/java.mk index 41a168661e..b463037fbc 100644 --- a/core/java.mk +++ b/core/java.mk @@ -233,11 +233,10 @@ endif java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ - $(proto_java_sources_file_stamp) \ $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) -$(java_source_list_file): $(java_sources_deps) +$(java_source_list_file): $(java_sources_deps) $(NORMALIZE_PATH) $(write-java-source-list) ALL_MODULES.$(my_register_name).SRCJARS := $(LOCAL_SRCJARS) @@ -410,7 +409,7 @@ legacy_proguard_flags := $(addprefix -libraryjars ,$(my_proguard_sdk_raise) \ $(full_shared_java_header_libs))) legacy_proguard_lib_deps := $(my_proguard_sdk_raise) \ - $(filter-out $(my_proguard_sdk_raise),$(full_shared_java_header_libs)) + $(filter-out $(my_proguard_sdk_raise),$(full_java_bootclasspath_libs) $(full_shared_java_header_libs)) legacy_proguard_flags += -printmapping $(proguard_dictionary) legacy_proguard_flags += -printconfiguration $(proguard_configuration) diff --git a/core/java_common.mk b/core/java_common.mk index db5b6c3828..9909885168 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -67,37 +67,36 @@ ifeq ($(strip $(LOCAL_PROTOC_OPTIMIZE_TYPE)),) LOCAL_PROTOC_OPTIMIZE_TYPE := lite endif proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) -# Because names of the .java files compiled from .proto files are unknown until the -# .proto files are compiled, we use a timestamp file as depedency. -proto_java_sources_file_stamp := ifneq ($(proto_sources),) proto_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(proto_sources)) proto_java_intemediate_dir := $(intermediates.COMMON)/proto -proto_java_sources_file_stamp := $(proto_java_intemediate_dir)/Proto.stamp proto_java_sources_dir := $(proto_java_intemediate_dir)/src +proto_java_srcjar := $(intermediates.COMMON)/proto.srcjar -$(proto_java_sources_file_stamp): PRIVATE_PROTO_INCLUDES := $(TOP) -$(proto_java_sources_file_stamp): PRIVATE_PROTO_SRC_FILES := $(proto_sources_fullpath) -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_DIR := $(proto_java_sources_dir) -$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) +LOCAL_SRCJARS += $(proto_java_srcjar) + +$(proto_java_srcjar): PRIVATE_PROTO_INCLUDES := $(TOP) +$(proto_java_srcjar): PRIVATE_PROTO_SRC_FILES := $(proto_sources_fullpath) +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_DIR := $(proto_java_sources_dir) +$(proto_java_srcjar): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro) -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javamicro_out +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javamicro_out else ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nano) -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javanano_out +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javanano_out else ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),stream) -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javastream_out -$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS += --plugin=$(HOST_OUT_EXECUTABLES)/protoc-gen-javastream -$(proto_java_sources_file_stamp): $(HOST_OUT_EXECUTABLES)/protoc-gen-javastream +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javastream_out +$(proto_java_srcjar): PRIVATE_PROTOC_FLAGS += --plugin=$(HOST_OUT_EXECUTABLES)/protoc-gen-javastream +$(proto_java_srcjar): $(HOST_OUT_EXECUTABLES)/protoc-gen-javastream else -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --java_out +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --java_out endif endif endif -$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_PARAMS := $(if $(filter lite,$(LOCAL_PROTOC_OPTIMIZE_TYPE)),lite$(if $(LOCAL_PROTO_JAVA_OUTPUT_PARAMS),:,),)$(LOCAL_PROTO_JAVA_OUTPUT_PARAMS) -$(proto_java_sources_file_stamp) : $(proto_sources_fullpath) $(PROTOC) +$(proto_java_srcjar): PRIVATE_PROTO_JAVA_OUTPUT_PARAMS := $(if $(filter lite,$(LOCAL_PROTOC_OPTIMIZE_TYPE)),lite$(if $(LOCAL_PROTO_JAVA_OUTPUT_PARAMS),:,),)$(LOCAL_PROTO_JAVA_OUTPUT_PARAMS) +$(proto_java_srcjar) : $(proto_sources_fullpath) $(PROTOC) $(SOONG_ZIP) $(call transform-proto-to-java) #TODO: protoc should output the dependencies introduced by imports. @@ -231,8 +230,6 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates.COMMON)/classes $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ANNO_INTERMEDIATES_DIR := $(intermediates.COMMON)/anno $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/src -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HAS_PROTO_SOURCES := $(if $(proto_sources),true) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PROTO_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/proto $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HAS_RS_SOURCES := $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_SOURCES := $(all_java_sources) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_SOURCE_LIST := $(java_source_list_file) diff --git a/core/java_host_test_config_template.xml b/core/java_host_test_config_template.xml index d808001840..26c1cafa32 100644 --- a/core/java_host_test_config_template.xml +++ b/core/java_host_test_config_template.xml @@ -17,6 +17,9 @@ <configuration description="Runs {MODULE}"> <option name="test-suite-tag" value="apct" /> <option name="test-suite-tag" value="apct-junit" /> + + {EXTRA_CONFIGS} + <test class="com.android.tradefed.testtype.HostTest" > <option name="jar" value="{MODULE}.jar" /> </test> diff --git a/core/java_library.mk b/core/java_library.mk index c706cea724..34e487449e 100644 --- a/core/java_library.mk +++ b/core/java_library.mk @@ -68,7 +68,7 @@ else # !LOCAL_IS_STATIC_JAVA_LIBRARY $(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex) $(common_javalib.jar): PRIVATE_SOURCE_ARCHIVE := $(full_classes_pre_proguard_jar) $(common_javalib.jar): $(MERGE_ZIPS) $(SOONG_ZIP) $(ZIP2ZIP) -$(common_javalib.jar) : $(built_dex) $(java_resource_sources) | $(ZIPTIME) $(ZIPALIGN) +$(common_javalib.jar) : $(full_classes_pre_proguard_jar) $(built_dex) $(java_resource_sources) | $(ZIPTIME) $(ZIPALIGN) @echo "target Jar: $(PRIVATE_MODULE) ($@)" rm -rf $@.parts && mkdir -p $@.parts $(call create-dex-jar,$@.parts/dex.zip,$(PRIVATE_DEX_FILE)) diff --git a/core/java_prebuilt_internal.mk b/core/java_prebuilt_internal.mk index 31aae835ec..5b7e9db944 100644 --- a/core/java_prebuilt_internal.mk +++ b/core/java_prebuilt_internal.mk @@ -39,6 +39,8 @@ ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_BOOT_JARS)),) $(call pretty-error,Modules in PRODUCT_BOOT_JARS must be defined in Android.bp files) endif +ALL_MODULES.$(my_register_name).CLASSES_JAR := $(common_classes_jar) + ####################################### # defines built_odex along with rule to install odex include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk @@ -239,4 +241,3 @@ $(my_exported_sdk_libs_file): endif # ! prebuilt_module_is_dex_javalib endif # LOCAL_IS_HOST_MODULE is not set - diff --git a/core/java_test_config_template.xml b/core/java_test_config_template.xml index 4ee5b07218..811cf93540 100644 --- a/core/java_test_config_template.xml +++ b/core/java_test_config_template.xml @@ -22,6 +22,9 @@ <option name="push" value="cts-dalvik-device-test-runner.jar->/data/local/tmp/{MODULE}/cts-dalvik-device-test-runner.jar" /> <option name="push" value="{MODULE}.jar->/data/local/tmp/{MODULE}/{MODULE}.jar" /> </target_preparer> + + {EXTRA_CONFIGS} + <test class="com.android.compatibility.testtype.DalvikTest" > <option name="run-name" value="{MODULE}" /> <option name="classpath" value="/data/local/tmp/{MODULE}/{MODULE}.jar" /> diff --git a/core/misc_prebuilt_internal.mk b/core/misc_prebuilt_internal.mk new file mode 100644 index 0000000000..cdd5cd5ae4 --- /dev/null +++ b/core/misc_prebuilt_internal.mk @@ -0,0 +1,29 @@ +# +# Copyright (C) 2019 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################ +# Internal build rules for misc prebuilt modules that don't need additional processing +############################################################ + +prebuilt_module_classes := SCRIPT ETC DATA +ifeq ($(filter $(prebuilt_module_classes),$(LOCAL_MODULE_CLASS)),) +$(call pretty-error,misc_prebuilt_internal.mk is for $(prebuilt_module_classes) modules only) +endif + +include $(BUILD_SYSTEM)/base_rules.mk + +$(LOCAL_BUILT_MODULE) : $(my_prebuilt_src_file) + $(transform-prebuilt-to-target) diff --git a/core/native_benchmark_test_config_template.xml b/core/native_benchmark_test_config_template.xml index 18736bfdfc..d1f01996bd 100644 --- a/core/native_benchmark_test_config_template.xml +++ b/core/native_benchmark_test_config_template.xml @@ -17,6 +17,9 @@ <configuration description="Runs {MODULE}."> <option name="test-suite-tag" value="apct" /> <option name="test-suite-tag" value="apct-native-metric" /> + + {EXTRA_CONFIGS} + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> <option name="cleanup" value="true" /> <option name="push" value="{MODULE}->/data/local/tmp/{MODULE}" /> diff --git a/core/native_host_test_config_template.xml b/core/native_host_test_config_template.xml index c0fcd1af6f..818b9b9f4c 100644 --- a/core/native_host_test_config_template.xml +++ b/core/native_host_test_config_template.xml @@ -16,6 +16,9 @@ <!-- This test config file is auto-generated. --> <configuration description="Runs {MODULE}."> <option name="null-device" value="true" /> + + {EXTRA_CONFIGS} + <test class="com.android.tradefed.testtype.HostGTest" > <option name="module-name" value="{MODULE}" /> </test> diff --git a/core/native_test_config_template.xml b/core/native_test_config_template.xml index f3d3231006..ef1818f776 100644 --- a/core/native_test_config_template.xml +++ b/core/native_test_config_template.xml @@ -18,7 +18,7 @@ <option name="test-suite-tag" value="apct" /> <option name="test-suite-tag" value="apct-native" /> - {EXTRA_OPTIONS} + {EXTRA_CONFIGS} <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> <option name="cleanup" value="true" /> diff --git a/core/package_internal.mk b/core/package_internal.mk index fcaf947df3..d693c585bf 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -428,7 +428,7 @@ ifneq ($(full_classes_jar),) $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) # Use the jarjar processed arhive as the initial package file. $(LOCAL_BUILT_MODULE): PRIVATE_SOURCE_ARCHIVE := $(full_classes_pre_proguard_jar) -$(LOCAL_BUILT_MODULE): $(built_dex) +$(LOCAL_BUILT_MODULE): $(built_dex) $(full_classes_pre_proguard_jar) else $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(LOCAL_BUILT_MODULE): PRIVATE_SOURCE_ARCHIVE := @@ -651,7 +651,7 @@ endif ## the APK ifdef LOCAL_DEX_PREOPT $(my_dex_jar): PRIVATE_DEX_FILE := $(built_dex) - $(my_dex_jar): $(built_dex) + $(my_dex_jar): $(built_dex) $(SOONG_ZIP) $(hide) mkdir -p $(dir $@) && rm -f $@ $(call create-dex-jar,$@,$(PRIVATE_DEX_FILE)) endif diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index f5b92fe4dc..7006667b00 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -23,13 +23,13 @@ my_32_64_bit_suffix := $(if $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT) ifdef LOCAL_PREBUILT_MODULE_FILE my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE) else ifdef LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) - my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) + my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))) LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) := else ifdef LOCAL_SRC_FILES_$(my_32_64_bit_suffix) - my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$(my_32_64_bit_suffix)) + my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES_$(my_32_64_bit_suffix))) LOCAL_SRC_FILES_$(my_32_64_bit_suffix) := else ifdef LOCAL_SRC_FILES - my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES) + my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES)) LOCAL_SRC_FILES := else ifdef LOCAL_REPLACE_PREBUILT_APK_INSTALLED # This is handled specially in app_prebuilt_internal.mk @@ -49,9 +49,12 @@ ifeq (APPS,$(LOCAL_MODULE_CLASS)) include $(BUILD_SYSTEM)/app_prebuilt_internal.mk else ifeq (JAVA_LIBRARIES,$(LOCAL_MODULE_CLASS)) include $(BUILD_SYSTEM)/java_prebuilt_internal.mk -else - # TODO(jungjw): Check LOCAL_MODULE_CLASS value and generate an error for unexpected ones. +else ifneq ($(filter STATIC_LIBRARIES SHARED_LIBRARIES EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),) include $(BUILD_SYSTEM)/cc_prebuilt_internal.mk +else ifneq ($(filter SCRIPT ETC DATA,$(LOCAL_MODULE_CLASS)),) + include $(BUILD_SYSTEM)/misc_prebuilt_internal.mk +else + $(error $(LOCAL_MODULE) : unexpected LOCAL_MODULE_CLASS for prebuilts: $(LOCAL_MODULE_CLASS)) endif $(built_module) : $(LOCAL_ADDITIONAL_DEPENDENCIES) diff --git a/core/shared_library_internal.mk b/core/shared_library_internal.mk index 44bb0203bb..8ec07f8e6e 100644 --- a/core/shared_library_internal.mk +++ b/core/shared_library_internal.mk @@ -73,11 +73,11 @@ $(linked_module): \ $(my_target_libcrt_builtins) \ $(my_target_libgcc) \ $(my_target_libatomic) \ - $(LOCAL_ADDITIONAL_DEPENDENCIES) + $(LOCAL_ADDITIONAL_DEPENDENCIES) $(CLANG_CXX) $(transform-o-to-shared-lib) ifeq ($(my_native_coverage),true) -gcno_suffix := .gcnodir +gcno_suffix := .zip built_whole_gcno_libraries := \ $(foreach lib,$(my_whole_static_libraries), \ @@ -99,11 +99,11 @@ endif GCNO_ARCHIVE := $(basename $(my_installed_module_stem))$(gcno_suffix) +$(intermediates)/$(GCNO_ARCHIVE) : $(SOONG_ZIP) $(MERGE_ZIPS) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(strip $(LOCAL_GCNO_FILES)) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := $(strip $(built_whole_gcno_libraries)) $(strip $(built_static_gcno_libraries)) -$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_INTERMEDIATES_DIR := $(intermediates) $(intermediates)/$(GCNO_ARCHIVE) : $(LOCAL_GCNO_FILES) $(built_whole_gcno_libraries) $(built_static_gcno_libraries) - $(transform-o-to-static-lib) + $(package-coverage-files) $(my_coverage_path)/$(GCNO_ARCHIVE) : $(intermediates)/$(GCNO_ARCHIVE) $(copy-file-to-target) diff --git a/core/soong_cc_prebuilt.mk b/core/soong_cc_prebuilt.mk index 55dd077b26..301f985d20 100644 --- a/core/soong_cc_prebuilt.mk +++ b/core/soong_cc_prebuilt.mk @@ -187,14 +187,14 @@ endif ifeq ($(NATIVE_COVERAGE),true) ifneq (,$(strip $(LOCAL_PREBUILT_COVERAGE_ARCHIVE))) - $(eval $(call copy-one-file,$(LOCAL_PREBUILT_COVERAGE_ARCHIVE),$(intermediates)/$(LOCAL_MODULE).gcnodir)) + $(eval $(call copy-one-file,$(LOCAL_PREBUILT_COVERAGE_ARCHIVE),$(intermediates)/$(LOCAL_MODULE).zip)) ifneq ($(LOCAL_UNINSTALLABLE_MODULE),true) ifdef LOCAL_IS_HOST_MODULE my_coverage_path := $($(my_prefix)OUT_COVERAGE)/$(patsubst $($(my_prefix)OUT)/%,%,$(my_module_path)) else my_coverage_path := $(TARGET_OUT_COVERAGE)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path)) endif - my_coverage_path := $(my_coverage_path)/$(patsubst %.so,%,$(my_installed_module_stem)).gcnodir + my_coverage_path := $(my_coverage_path)/$(patsubst %.so,%,$(my_installed_module_stem)).zip $(eval $(call copy-one-file,$(LOCAL_PREBUILT_COVERAGE_ARCHIVE),$(my_coverage_path))) $(LOCAL_BUILT_MODULE): $(my_coverage_path) endif @@ -202,13 +202,12 @@ ifeq ($(NATIVE_COVERAGE),true) # Coverage information is needed when static lib is a dependency of another # coverage-enabled module. ifeq (STATIC_LIBRARIES, $(LOCAL_MODULE_CLASS)) - GCNO_ARCHIVE := $(LOCAL_MODULE).gcnodir + GCNO_ARCHIVE := $(LOCAL_MODULE).zip + $(intermediates)/$(GCNO_ARCHIVE) : $(SOONG_ZIP) $(MERGE_ZIPS) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := - $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_PREFIX := $(my_prefix) - $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_2ND_ARCH_VAR_PREFIX := $(LOCAL_2ND_ARCH_VAR_PREFIX) $(intermediates)/$(GCNO_ARCHIVE) : - $(transform-o-to-static-lib) + $(package-coverage-files) endif endif endif diff --git a/core/soong_java_prebuilt.mk b/core/soong_java_prebuilt.mk index 6a76fc4095..1496d56ecd 100644 --- a/core/soong_java_prebuilt.mk +++ b/core/soong_java_prebuilt.mk @@ -128,6 +128,7 @@ my_built_installed := $(foreach f,$(LOCAL_SOONG_BUILT_INSTALLED),\ my_installed := $(call copy-many-files, $(my_built_installed)) ALL_MODULES.$(my_register_name).INSTALLED += $(my_installed) ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(my_built_installed) +ALL_MODULES.$(my_register_name).CLASSES_JAR := $(full_classes_jar) $(my_register_name): $(my_installed) ifdef LOCAL_SOONG_AAR diff --git a/core/static_library_internal.mk b/core/static_library_internal.mk index 6b4d22f129..039246098f 100644 --- a/core/static_library_internal.mk +++ b/core/static_library_internal.mk @@ -21,11 +21,11 @@ endif include $(BUILD_SYSTEM)/binary.mk $(LOCAL_BUILT_MODULE) : $(built_whole_libraries) -$(LOCAL_BUILT_MODULE) : $(all_objects) +$(LOCAL_BUILT_MODULE) : $(all_objects) $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_AR) $(transform-o-to-static-lib) ifeq ($(NATIVE_COVERAGE),true) -gcno_suffix := .gcnodir +gcno_suffix := .zip built_whole_gcno_libraries := \ $(foreach lib,$(my_whole_static_libraries), \ @@ -35,11 +35,9 @@ built_whole_gcno_libraries := \ GCNO_ARCHIVE := $(LOCAL_MODULE)$(gcno_suffix) +$(intermediates)/$(GCNO_ARCHIVE) : $(SOONG_ZIP) $(MERGE_ZIPS) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(strip $(LOCAL_GCNO_FILES)) $(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := $(strip $(built_whole_gcno_libraries)) -$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_PREFIX := $(my_prefix) -$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_2ND_ARCH_VAR_PREFIX := $(LOCAL_2ND_ARCH_VAR_PREFIX) -$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_INTERMEDIATES_DIR := $(intermediates) $(intermediates)/$(GCNO_ARCHIVE) : $(LOCAL_GCNO_FILES) $(built_whole_gcno_libraries) - $(transform-o-to-static-lib) + $(package-coverage-files) endif diff --git a/core/tasks/module-info.mk b/core/tasks/module-info.mk index 2d93128eea..eb313802d8 100644 --- a/core/tasks/module-info.mk +++ b/core/tasks/module-info.mk @@ -18,6 +18,7 @@ $(MODULE_INFO_JSON): '"dependencies": [$(foreach w,$(sort $(ALL_DEPS.$(m).ALL_DEPS)),"$(w)", )], ' \ '"srcs": [$(foreach w,$(sort $(ALL_MODULES.$(m).SRCS)),"$(w)", )], ' \ '"srcjars": [$(foreach w,$(sort $(ALL_MODULES.$(m).SRCJARS)),"$(w)", )], ' \ + '"classes_jar": [$(foreach w,$(sort $(ALL_MODULES.$(m).CLASSES_JAR)),"$(w)", )], ' \ '},\n' \ ) | sed -e 's/, *\]/]/g' -e 's/, *\}/ }/g' -e '$$s/,$$//' >> $@ $(hide) echo '}' >> $@ diff --git a/core/tasks/tools/build_custom_image.mk b/core/tasks/tools/build_custom_image.mk index 19d2ab5746..a58019e66d 100644 --- a/core/tasks/tools/build_custom_image.mk +++ b/core/tasks/tools/build_custom_image.mk @@ -54,9 +54,15 @@ $(foreach m,$(CUSTOM_IMAGE_MODULES),\ $(eval my_copy_pairs += $(bui):$(my_staging_dir)/$(my_copy_dest)))\ )) +my_kernel_module_copy_files := +my_custom_image_modules_var := BOARD_$(strip $(call to-upper,$(my_custom_image_name)))_KERNEL_MODULES +ifdef $(my_custom_image_modules_var) + my_kernel_module_copy_files += $(call build-image-kernel-modules,$(my_custom_image_modules_var),$(my_staging_dir),$(my_custom_image_name)/,$(call intermediates-dir-for,PACKAGING,depmod_$(my_custom_image_name))) +endif + # Collect CUSTOM_IMAGE_COPY_FILES. my_image_copy_files := -$(foreach f,$(CUSTOM_IMAGE_COPY_FILES),\ +$(foreach f,$(CUSTOM_IMAGE_COPY_FILES) $(my_kernel_module_copy_files),\ $(eval pair := $(subst :,$(space),$(f)))\ $(eval src := $(word 1,$(pair)))\ $(eval my_image_copy_files += $(src))\ @@ -102,11 +108,6 @@ endif ifeq (true,$(CUSTOM_IMAGE_SUPPORT_VERITY_FEC)) $(my_built_custom_image): $(FEC) endif -my_custom_image_modules_var:=BOARD_$(strip $(call to-upper,$(my_custom_image_name)))_KERNEL_MODULES -my_custom_image_modules:=$($(my_custom_image_modules_var)) -my_custom_image_modules_dep:=$(if $(my_custom_image_modules),$(my_custom_image_modules) $(DEPMOD),) -$(my_built_custom_image): PRIVATE_KERNEL_MODULES := $(my_custom_image_modules) -$(my_built_custom_image): PRIVATE_IMAGE_NAME := $(my_custom_image_name) $(my_built_custom_image): $(INTERNAL_USERIMAGES_DEPS) $(my_built_modules) $(my_image_copy_files) $(my_custom_image_modules_dep) \ $(CUSTOM_IMAGE_DICT_FILE) @echo "Build image $@" @@ -117,8 +118,6 @@ $(my_built_custom_image): $(INTERNAL_USERIMAGES_DEPS) $(my_built_modules) $(my_i $(eval pair := $(subst :,$(space),$(p)))\ mkdir -p $(dir $(word 2,$(pair)));\ cp -Rf $(word 1,$(pair)) $(word 2,$(pair));) - $(if $(PRIVATE_KERNEL_MODULES), \ - $(call build-image-kernel-modules,$(PRIVATE_KERNEL_MODULES),$(PRIVATE_STAGING_DIR),$(PRIVATE_IMAGE_NAME)/,$(call intermediates-dir-for,PACKAGING,depmod_$(PRIVATE_IMAGE_NAME)))) $(if $($(PRIVATE_PICKUP_FILES)),$(hide) cp -Rf $(PRIVATE_PICKUP_FILES) $(PRIVATE_STAGING_DIR)) # Generate the dict. $(hide) echo "# For all accepted properties, see BuildImage() in tools/releasetools/build_image.py" > $(PRIVATE_INTERMEDIATES)/image_info.txt diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 62c91f8ae1..0a798d527e 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -252,7 +252,7 @@ ifndef PLATFORM_SECURITY_PATCH # It must be of the form "YYYY-MM-DD" on production devices. # It must match one of the Android Security Patch Level strings of the Public Security Bulletins. # If there is no $PLATFORM_SECURITY_PATCH set, keep it empty. - PLATFORM_SECURITY_PATCH := 2019-05-05 + PLATFORM_SECURITY_PATCH := 2019-06-05 endif .KATI_READONLY := PLATFORM_SECURITY_PATCH diff --git a/target/board/Android.mk b/target/board/Android.mk index 971a7b2086..c8705c3b8d 100644 --- a/target/board/Android.mk +++ b/target/board/Android.mk @@ -19,7 +19,7 @@ board_info_txt := $(TARGET_BOARD_INFO_FILE) ifndef board_info_txt board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) endif -$(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) +$(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) build/make/tools/check_radio_versions.py $(hide) build/make/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK) $(call pretty,"Generated: ($@)") ifdef board_info_txt diff --git a/target/board/BoardConfigEmuCommon.mk b/target/board/BoardConfigEmuCommon.mk index 3ab5f12d5a..ac21918022 100644 --- a/target/board/BoardConfigEmuCommon.mk +++ b/target/board/BoardConfigEmuCommon.mk @@ -41,6 +41,11 @@ ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) # 3G BOARD_EMULATOR_DYNAMIC_PARTITIONS_SIZE := 3221225472 + + # in build environment to speed up make -j + ifeq ($(QEMU_DISABLE_AVB),true) + BOARD_AVB_ENABLE := false + endif else ifeq ($(PRODUCT_USE_DYNAMIC_PARTITION_SIZE),true) # Enable dynamic system image size and reserved 64MB in it. BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864 diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index ebaa867bc9..44719edaa4 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -450,7 +450,7 @@ def AddVBMeta(output_zip, partitions, name, needed_partitions): if partition not in needed_partitions: continue assert (partition in common.AVB_PARTITIONS or - partition.startswith('vbmeta_')), \ + partition in common.AVB_VBMETA_PARTITIONS), \ 'Unknown partition: {}'.format(partition) assert os.path.exists(path), \ 'Failed to find {} for {}'.format(path, partition) diff --git a/tools/releasetools/merge_target_files.py b/tools/releasetools/merge_target_files.py index f37c0ee1bc..f0ae217171 100755 --- a/tools/releasetools/merge_target_files.py +++ b/tools/releasetools/merge_target_files.py @@ -530,6 +530,10 @@ def process_misc_info_txt(framework_target_files_temp_dir, list_prefix='super_', list_suffix='_partition_list') merged_dict.update(merged_dynamic_partitions_dict) + # Ensure that add_img_to_target_files rebuilds super_empty.img. This flag + # may have been set to false in the partial builds to prevent duplicate + # building of super.img and super_empty.img. + merged_dict['build_super_partition'] = 'true' # Replace <image>_selinux_fc values with framework or vendor file_contexts.bin # depending on which dictionary the key came from. |