diff --git a/core/base_rules.mk b/core/base_rules.mk index 1135003998..5363e0fbf9 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -340,7 +340,7 @@ LOCAL_BUILT_MODULE := $(intermediates)/$(my_built_module_stem) ifneq (,$(LOCAL_SOONG_INSTALLED_MODULE)) ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) - $(call pretty-error, LOCAL_SOONG_INSTALLED_MODULE can only be used from $(SOONG_ANDROID_MK)) + $(call pretty-error, LOCAL_MODULE_MAKEFILE can only be used from $(SOONG_ANDROID_MK)) endif # Use the install path requested by Soong. LOCAL_INSTALLED_MODULE := $(LOCAL_SOONG_INSTALLED_MODULE) diff --git a/core/config.mk b/core/config.mk index 2315bc5b57..603fee6977 100644 --- a/core/config.mk +++ b/core/config.mk @@ -1271,8 +1271,15 @@ include $(BUILD_SYSTEM)/sysprop_config.mk # consistency with those defined in BoardConfig.mk files. include $(BUILD_SYSTEM)/android_soong_config_vars.mk -SOONG_VARIABLES := $(SOONG_OUT_DIR)/soong.$(TARGET_PRODUCT).variables -SOONG_EXTRA_VARIABLES := $(SOONG_OUT_DIR)/soong.$(TARGET_PRODUCT).extra.variables +# EMMA_INSTRUMENT is set to true when coverage is enabled. Creates a suffix to +# differeciate the coverage version of ninja files. This will save 5 minutes of +# build time used to regenerate ninja. +ifeq (true,$(EMMA_INSTRUMENT)) +COVERAGE_SUFFIX := .coverage +endif + +SOONG_VARIABLES := $(SOONG_OUT_DIR)/soong.$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).variables +SOONG_EXTRA_VARIABLES := $(SOONG_OUT_DIR)/soong.$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).extra.variables ifeq ($(CALLED_FROM_SETUP),true) include $(BUILD_SYSTEM)/ninja_config.mk diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk index d51de33273..f1e9fb59b7 100644 --- a/core/dex_preopt_config.mk +++ b/core/dex_preopt_config.mk @@ -1,4 +1,4 @@ -DEX_PREOPT_CONFIG := $(SOONG_OUT_DIR)/dexpreopt.config +DEX_PREOPT_CONFIG := $(SOONG_OUT_DIR)/dexpreopt${COVERAGE_SUFFIX}.config ENABLE_PREOPT := true ENABLE_PREOPT_BOOT_IMAGES := true diff --git a/core/main.mk b/core/main.mk index 27ba526f60..85fd65c2f5 100644 --- a/core/main.mk +++ b/core/main.mk @@ -31,8 +31,7 @@ endif .KATI_READONLY := $(foreach n,$(SOONG_CONFIG_NAMESPACES),SOONG_CONFIG_$(n)) .KATI_READONLY := $(foreach n,$(SOONG_CONFIG_NAMESPACES),$(foreach k,$(SOONG_CONFIG_$(n)),SOONG_CONFIG_$(n)_$(k))) -include $(SOONG_MAKEVARS_MK) - +include $(SOONG_OUT_DIR)/make_vars-$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).mk YACC :=$= $(BISON) -d include $(BUILD_SYSTEM)/clang/config.mk @@ -276,12 +275,15 @@ FULL_BUILD := true # Include all of the makefiles in the system # -subdir_makefiles := $(SOONG_OUT_DIR)/installs-$(TARGET_PRODUCT).mk $(SOONG_ANDROID_MK) +subdir_makefiles := $(SOONG_OUT_DIR)/installs-$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).mk $(SOONG_ANDROID_MK) + # Android.mk files are only used on Linux builds, Mac only supports Android.bp ifeq ($(HOST_OS),linux) subdir_makefiles += $(file <$(OUT_DIR)/.module_paths/Android.mk.list) endif -subdir_makefiles += $(SOONG_OUT_DIR)/late-$(TARGET_PRODUCT).mk + +subdir_makefiles += $(SOONG_OUT_DIR)/late-$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).mk + subdir_makefiles_total := $(words int $(subdir_makefiles) post finish) .KATI_READONLY := subdir_makefiles_total diff --git a/core/soong_config.mk b/core/soong_config.mk index 5769c0678a..14ea2aab4a 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -1,5 +1,5 @@ -SOONG_MAKEVARS_MK := $(SOONG_OUT_DIR)/make_vars-$(TARGET_PRODUCT).mk -SOONG_ANDROID_MK := $(SOONG_OUT_DIR)/Android-$(TARGET_PRODUCT).mk +SOONG_MAKEVARS_MK := $(SOONG_OUT_DIR)/make_vars-$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).mk +SOONG_ANDROID_MK := $(SOONG_OUT_DIR)/Android-$(TARGET_PRODUCT)$(COVERAGE_SUFFIX).mk include $(BUILD_SYSTEM)/art_config.mk include $(BUILD_SYSTEM)/dex_preopt_config.mk @@ -26,7 +26,7 @@ ifeq ($(WRITE_SOONG_VARIABLES),true) $(shell mkdir -p $(dir $(SOONG_VARIABLES))) $(call json_start) -$(call add_json_str, Make_suffix, -$(TARGET_PRODUCT)) +$(call add_json_str, Make_suffix, -$(TARGET_PRODUCT)$(COVERAGE_SUFFIX)) $(call add_json_str, BuildId, $(BUILD_ID)) $(call add_json_str, BuildFingerprintFile, build_fingerprint.txt) diff --git a/core/tasks/module-info.mk b/core/tasks/module-info.mk index 75936685a4..0ca27d8222 100644 --- a/core/tasks/module-info.mk +++ b/core/tasks/module-info.mk @@ -13,7 +13,7 @@ define write-optional-json-bool $(if $(strip $(2)),'$(COMMA)$(strip $(1)): "$(strip $(2))"') endef -SOONG_MODULE_INFO := $(SOONG_OUT_DIR)/module-info-$(TARGET_PRODUCT).json +SOONG_MODULE_INFO := $(SOONG_OUT_DIR)/module-info-$(TARGET_PRODUCT)${COVERAGE_SUFFIX}.json $(MODULE_INFO_JSON): PRIVATE_SOONG_MODULE_INFO := $(SOONG_MODULE_INFO) $(MODULE_INFO_JSON): PRIVATE_MERGE_JSON_OBJECTS := $(HOST_OUT_EXECUTABLES)/merge_module_info_json