diff --git a/core/config.mk b/core/config.mk index 925b3484ce..1320828fdb 100644 --- a/core/config.mk +++ b/core/config.mk @@ -45,6 +45,9 @@ endef backslash := \a backslash := $(patsubst %a,%,$(backslash)) +# Prevent accidentally changing these variables +.KATI_READONLY := SHELL empty space comma newline pound backslash + # this turns off the suffix rules built into make .SUFFIXES: @@ -58,6 +61,10 @@ backslash := $(patsubst %a,%,$(backslash)) # If a rule fails, delete $@. .DELETE_ON_ERROR: +# Mark variables that should be coming as environment variables from soong_ui +# as readonly +.KATI_READONLY := OUT_DIR TMPDIR BUILD_DATETIME_FILE + # Mark variables deprecated/obsolete CHANGES_URL := https://android.googlesource.com/platform/build/+/master/Changes.md $(KATI_obsolete_var PATH,Do not use PATH directly. See $(CHANGES_URL)#PATH) diff --git a/core/envsetup.mk b/core/envsetup.mk index dc4bc3b40f..a3e78e7ca8 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -374,28 +374,22 @@ endif # --------------------------------------------------------------- # figure out the output directories -ifeq (,$(strip $(OUT_DIR))) -ifeq (,$(strip $(OUT_DIR_COMMON_BASE))) -OUT_DIR := $(TOPDIR)out -else -OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD)) -endif -endif - SOONG_OUT_DIR := $(OUT_DIR)/soong TARGET_OUT_ROOT := $(OUT_DIR)/target HOST_OUT_ROOT := $(OUT_DIR)/host +.KATI_READONLY := SOONG_OUT_DIR TARGET_OUT_ROOT HOST_OUT_ROOT + # We want to avoid two host bin directories in multilib build. HOST_OUT := $(HOST_OUT_ROOT)/$(HOST_OS)-$(HOST_PREBUILT_ARCH) SOONG_HOST_OUT := $(SOONG_OUT_DIR)/host/$(HOST_OS)-$(HOST_PREBUILT_ARCH) -# TODO: remove -BUILD_OUT := $(HOST_OUT) HOST_CROSS_OUT := $(HOST_OUT_ROOT)/windows-$(HOST_PREBUILT_ARCH) +.KATI_READONLY := HOST_OUT SOONG_HOST_OUT HOST_CROSS_OUT + TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common @@ -403,11 +397,17 @@ HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE) +.KATI_READONLY := TARGET_PRODUCT_OUT_ROOT TARGET_COMMON_OUT_ROOT HOST_COMMON_OUT_ROOT PRODUCT_OUT + OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs OUT_NDK_DOCS := $(TARGET_COMMON_OUT_ROOT)/ndk-docs +.KATI_READONLY := OUT_DOCS OUT_NDK_DOCS -BUILD_OUT_EXECUTABLES := $(BUILD_OUT)/bin +$(call KATI_obsolete,BUILD_OUT,Use HOST_OUT instead) + +BUILD_OUT_EXECUTABLES := $(HOST_OUT)/bin SOONG_HOST_OUT_EXECUTABLES := $(SOONG_HOST_OUT)/bin +.KATI_READONLY := BUILD_OUT_EXECUTABLES SOONG_HOST_OUT_EXECUTABLES HOST_OUT_EXECUTABLES := $(HOST_OUT)/bin HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib64 @@ -417,18 +417,39 @@ HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest64 HOST_OUT_COVERAGE := $(HOST_OUT)/coverage HOST_OUT_TESTCASES := $(HOST_OUT)/testcases +.KATI_READONLY := \ + HOST_OUT_EXECUTABLES \ + HOST_OUT_SHARED_LIBRARIES \ + HOST_OUT_RENDERSCRIPT_BITCODE \ + HOST_OUT_JAVA_LIBRARIES \ + HOST_OUT_SDK_ADDON \ + HOST_OUT_NATIVE_TESTS \ + HOST_OUT_COVERAGE \ + HOST_OUT_TESTCASES HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT)/bin HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest HOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage HOST_CROSS_OUT_TESTCASES := $(HOST_CROSS_OUT)/testcases +.KATI_READONLY := \ + HOST_CROSS_OUT_EXECUTABLES \ + HOST_CROSS_OUT_SHARED_LIBRARIES \ + HOST_CROSS_OUT_NATIVE_TESTS \ + HOST_CROSS_OUT_COVERAGE \ + HOST_CROSS_OUT_TESTCASES HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj HOST_OUT_INTERMEDIATE_LIBRARIES := $(HOST_OUT_INTERMEDIATES)/lib HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj HOST_OUT_FAKE := $(HOST_OUT)/fake_packages +.KATI_READONLY := \ + HOST_OUT_INTERMEDIATES \ + HOST_OUT_INTERMEDIATE_LIBRARIES \ + HOST_OUT_NOTICE_FILES \ + HOST_OUT_COMMON_INTERMEDIATES \ + HOST_OUT_FAKE # Nano environment config include $(BUILD_SYSTEM)/aux_config.mk @@ -436,13 +457,22 @@ include $(BUILD_SYSTEM)/aux_config.mk HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES := $(HOST_CROSS_OUT_INTERMEDIATES)/lib HOST_CROSS_OUT_NOTICE_FILES := $(HOST_CROSS_OUT_INTERMEDIATES)/NOTICE_FILES +.KATI_READONLY := \ + HOST_CROSS_OUT_INTERMEDIATES \ + HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES \ + HOST_CROSS_OUT_NOTICE_FILES HOST_OUT_GEN := $(HOST_OUT)/gen HOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen +.KATI_READONLY := \ + HOST_OUT_GEN \ + HOST_OUT_COMMON_GEN HOST_CROSS_OUT_GEN := $(HOST_CROSS_OUT)/gen +.KATI_READONLY := HOST_CROSS_OUT_GEN HOST_OUT_TEST_CONFIG := $(HOST_OUT)/test_config +.KATI_READONLY := HOST_OUT_TEST_CONFIG # Out for HOST_2ND_ARCH HOST_2ND_ARCH_VAR_PREFIX := 2ND_ @@ -454,10 +484,21 @@ $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES) $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT_JAVA_LIBRARIES) $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES := $(HOST_OUT_TESTCASES) +.KATI_READONLY := \ + HOST_2ND_ARCH_VAR_PREFIX \ + HOST_2ND_ARCH_MODULE_SUFFIX \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS \ + $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES # The default host library path. # It always points to the path where we build libraries in the default bitness. HOST_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES) +.KATI_READONLY := HOST_LIBRARY_PATH # Out for HOST_CROSS_2ND_ARCH HOST_CROSS_2ND_ARCH_VAR_PREFIX := 2ND_ @@ -467,6 +508,14 @@ $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES := $($(HO $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib64 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT_EXECUTABLES) $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest64 +.KATI_READONLY := \ + HOST_CROSS_2ND_ARCH_VAR_PREFIX \ + HOST_CROSS_2ND_ARCH_MODULE_SUFFIX \ + $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES \ + $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES \ + $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES \ + $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES \ + $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS ifneq ($(filter address,$(SANITIZE_TARGET)),) TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_asan @@ -475,17 +524,21 @@ else endif TARGET_OUT_HEADERS := $(TARGET_OUT_INTERMEDIATES)/include TARGET_OUT_INTERMEDIATE_LIBRARIES := $(TARGET_OUT_INTERMEDIATES)/lib +.KATI_READONLY := TARGET_OUT_INTERMEDIATES TARGET_OUT_HEADERS TARGET_OUT_INTERMEDIATE_LIBRARIES ifneq ($(filter address,$(SANITIZE_TARGET)),) TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj_asan else TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj endif +.KATI_READONLY := TARGET_OUT_COMMON_INTERMEDIATES TARGET_OUT_GEN := $(PRODUCT_OUT)/gen TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen +.KATI_READONLY := TARGET_OUT_GEN TARGET_OUT_COMMON_GEN TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM) +.KATI_READONLY := TARGET_OUT ifneq ($(filter address,$(SANITIZE_TARGET)),) target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system ifeq ($(SANITIZE_LITE),true) @@ -520,6 +573,21 @@ TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages TARGET_OUT_TESTCASES := $(PRODUCT_OUT)/testcases TARGET_OUT_TEST_CONFIG := $(PRODUCT_OUT)/test_config +.KATI_READONLY := \ + TARGET_OUT_EXECUTABLES \ + TARGET_OUT_OPTIONAL_EXECUTABLES \ + TARGET_OUT_SHARED_LIBRARIES \ + TARGET_OUT_RENDERSCRIPT_BITCODE \ + TARGET_OUT_JAVA_LIBRARIES \ + TARGET_OUT_APPS \ + TARGET_OUT_APPS_PRIVILEGED \ + TARGET_OUT_KEYLAYOUT \ + TARGET_OUT_KEYCHARS \ + TARGET_OUT_ETC \ + TARGET_OUT_NOTICE_FILES \ + TARGET_OUT_FAKE \ + TARGET_OUT_TESTCASES \ + TARGET_OUT_TEST_CONFIG ifeq ($(SANITIZE_LITE),true) # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not @@ -528,6 +596,7 @@ TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_ else TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_OTHER) endif +.KATI_READONLY := TARGET_OUT_SYSTEM_OTHER # Out for TARGET_2ND_ARCH TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX) @@ -537,6 +606,7 @@ TARGET_2ND_ARCH_MODULE_SUFFIX := _$(TARGET_2ND_ARCH) else TARGET_2ND_ARCH_MODULE_SUFFIX := $(HOST_2ND_ARCH_MODULE_SUFFIX) endif +.KATI_READONLY := TARGET_2ND_ARCH_VAR_PREFIX TARGET_2ND_ARCH_MODULE_SUFFIX ifneq ($(filter address,$(SANITIZE_TARGET)),) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)_asan @@ -554,6 +624,15 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES) +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) @@ -575,6 +654,20 @@ TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_T TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX) endif TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages +.KATI_READONLY := \ + TARGET_OUT_DATA \ + TARGET_OUT_DATA_EXECUTABLES \ + TARGET_OUT_DATA_SHARED_LIBRARIES \ + TARGET_OUT_DATA_JAVA_LIBRARIES \ + TARGET_OUT_DATA_APPS \ + TARGET_OUT_DATA_KEYLAYOUT \ + TARGET_OUT_DATA_KEYCHARS \ + TARGET_OUT_DATA_ETC \ + TARGET_OUT_DATA_NATIVE_TESTS \ + TARGET_OUT_DATA_METRIC_TESTS \ + TARGET_OUT_VENDOR_NATIVE_TESTS \ + TARGET_OUT_VENDOR_METRIC_TESTS \ + TARGET_OUT_DATA_FAKE $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES) @@ -590,10 +683,20 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX) endif +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS \ TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache +.KATI_READONLY := TARGET_OUT_CACHE TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR) +.KATI_READONLY := TARGET_OUT_VENDOR ifneq ($(filter address,$(SANITIZE_TARGET)),) target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/vendor ifeq ($(SANITIZE_LITE),true) @@ -620,6 +723,15 @@ TARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework TARGET_OUT_VENDOR_APPS := $(target_out_vendor_app_base)/app TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(target_out_vendor_app_base)/priv-app TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc +.KATI_READONLY := \ + TARGET_OUT_VENDOR_EXECUTABLES \ + TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES \ + TARGET_OUT_VENDOR_SHARED_LIBRARIES \ + TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \ + TARGET_OUT_VENDOR_JAVA_LIBRARIES \ + TARGET_OUT_VENDOR_APPS \ + TARGET_OUT_VENDOR_APPS_PRIVILEGED \ + TARGET_OUT_VENDOR_ETC $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES) ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true) @@ -630,6 +742,12 @@ endif $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(TARGET_OUT_VENDOR_APPS_PRIVILEGED) +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM) TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin @@ -642,6 +760,12 @@ endif # TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc +.KATI_READONLY := \ + TARGET_OUT_OEM \ + TARGET_OUT_OEM_EXECUTABLES \ + TARGET_OUT_OEM_SHARED_LIBRARIES \ + TARGET_OUT_OEM_APPS \ + TARGET_OUT_OEM_ETC $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES) ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true) @@ -650,6 +774,10 @@ else $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib endif $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS) +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS \ TARGET_OUT_ODM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM) TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM)/bin @@ -660,6 +788,12 @@ TARGET_OUT_ODM_SHARED_LIBRARIES := $(TARGET_OUT_ODM)/lib endif TARGET_OUT_ODM_APPS := $(TARGET_OUT_ODM)/app TARGET_OUT_ODM_ETC := $(TARGET_OUT_ODM)/etc +.KATI_READONLY := \ + TARGET_OUT_ODM \ + TARGET_OUT_ODM_EXECUTABLES \ + TARGET_OUT_ODM_SHARED_LIBRARIES \ + TARGET_OUT_ODM_APPS \ + TARGET_OUT_ODM_ETC $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM_EXECUTABLES) ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true) @@ -668,8 +802,13 @@ else $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES := $(TARGET_OUT_ODM)/lib endif $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS := $(TARGET_OUT_ODM_APPS) +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS TARGET_OUT_PRODUCT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT) +.KATI_READONLY := TARGET_OUT_PRODUCT ifneq ($(filter address,$(SANITIZE_TARGET)),) target_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/product ifeq ($(SANITIZE_LITE),true) @@ -689,10 +828,16 @@ TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_bas else TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib endif -TARGET_OUT_PRODUCT_JAVA_LIBRARIES:= $(TARGET_OUT_PRODUCT)/framework +TARGET_OUT_PRODUCT_JAVA_LIBRARIES := $(TARGET_OUT_PRODUCT)/framework TARGET_OUT_PRODUCT_APPS := $(target_out_product_app_base)/app TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(target_out_product_app_base)/priv-app TARGET_OUT_PRODUCT_ETC := $(TARGET_OUT_PRODUCT)/etc +.KATI_READONLY := \ + TARGET_OUT_PRODUCT_SHARED_LIBRARIES \ + TARGET_OUT_PRODUCT_JAVA_LIBRARIES \ + TARGET_OUT_PRODUCT_APPS \ + TARGET_OUT_PRODUCT_APPS_PRIVILEGED \ + TARGET_OUT_PRODUCT_ETC ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib/$(TARGET_2ND_ARCH) @@ -701,8 +846,13 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out endif $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS := $(TARGET_OUT_PRODUCT_APPS) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(TARGET_OUT_PRODUCT_APPS_PRIVILEGED) +.KATI_READONLY := \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS \ + $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED TARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad +.KATI_READONLY := TARGET_OUT_BREAKPAD TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin @@ -712,31 +862,60 @@ TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED) TARGET_ROOT_OUT_SBIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/sbin TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin TARGET_OUT_COVERAGE := $(PRODUCT_OUT)/coverage +.KATI_READONLY := \ + TARGET_OUT_UNSTRIPPED \ + TARGET_OUT_EXECUTABLES_UNSTRIPPED \ + TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED \ + TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED \ + TARGET_ROOT_OUT_UNSTRIPPED \ + TARGET_ROOT_OUT_SBIN_UNSTRIPPED \ + TARGET_ROOT_OUT_BIN_UNSTRIPPED \ + TARGET_OUT_COVERAGE TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT) TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin TARGET_ROOT_OUT_SBIN := $(TARGET_ROOT_OUT)/sbin TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr +.KATI_READONLY := \ + TARGET_ROOT_OUT \ + TARGET_ROOT_OUT_BIN \ + TARGET_ROOT_OUT_SBIN \ + TARGET_ROOT_OUT_ETC \ + TARGET_ROOT_OUT_USR TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY) TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root +.KATI_READONLY := \ + TARGET_RECOVERY_OUT \ + TARGET_RECOVERY_ROOT_OUT TARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader TARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root TARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system +.KATI_READONLY := \ + TARGET_SYSLOADER_OUT \ + TARGET_SYSLOADER_ROOT_OUT \ + TARGET_SYSLOADER_SYSTEM_OUT TARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer TARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data TARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root TARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system +.KATI_READONLY := \ + TARGET_INSTALLER_OUT \ + TARGET_INSTALLER_DATA_OUT \ + TARGET_INSTALLER_ROOT_OUT \ + TARGET_INSTALLER_SYSTEM_OUT COMMON_MODULE_CLASSES := TARGET-NOTICE_FILES HOST-NOTICE_FILES HOST-JAVA_LIBRARIES PER_ARCH_MODULE_CLASSES := SHARED_LIBRARIES STATIC_LIBRARIES EXECUTABLES GYP RENDERSCRIPT_BITCODE NATIVE_TESTS HEADER_LIBRARIES +.KATI_READONLY := COMMON_MODULE_CLASSES PER_ARCH_MODULE_CLASSES ifeq (,$(strip $(DIST_DIR))) DIST_DIR := $(OUT_DIR)/dist endif +.KATI_READONLY := DIST_DIR ifeq ($(CALLED_FROM_SETUP),true) PRINT_BUILD_CONFIG ?= true