diff --git a/core/config.mk b/core/config.mk index 9e6129017..3664c6c30 100644 --- a/core/config.mk +++ b/core/config.mk @@ -99,6 +99,11 @@ SRC_TEST_API_DIR := $(TOPDIR)prebuilts/sdk/test-api # Some specific paths to tools SRC_DROIDDOC_DIR := $(TOPDIR)build/make/tools/droiddoc +# Mark some inputs as readonly +ifdef TARGET_DEVICE_DIR + .KATI_READONLY := TARGET_DEVICE_DIR +endif + # Set up efficient math functions which are used in make. # Here since this file is included by envsetup as well as during build. include $(BUILD_SYSTEM)/math.mk diff --git a/core/envsetup.mk b/core/envsetup.mk index 12b5869b1..1a367036f 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -241,17 +241,26 @@ SDK_HOST_ARCH := x86 # or under vendor/*/$(TARGET_DEVICE). Search in both places, but # make sure only one exists. # Real boards should always be associated with an OEM vendor. -board_config_mk := \ - $(strip $(sort $(wildcard \ - $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \ - $(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ - $(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ - ))) -ifeq ($(board_config_mk),) - $(error No config file found for TARGET_DEVICE $(TARGET_DEVICE)) -endif -ifneq ($(words $(board_config_mk)),1) - $(error Multiple board config files for TARGET_DEVICE $(TARGET_DEVICE): $(board_config_mk)) +ifdef TARGET_DEVICE_DIR + ifneq ($(origin TARGET_DEVICE_DIR),command line) + $(error TARGET_DEVICE_DIR may not be set manually) + endif + board_config_mk := $(TARGET_DEVICE_DIR)/BoardConfig.mk +else + board_config_mk := \ + $(strip $(sort $(wildcard \ + $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \ + $(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ + $(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ + ))) + ifeq ($(board_config_mk),) + $(error No config file found for TARGET_DEVICE $(TARGET_DEVICE)) + endif + ifneq ($(words $(board_config_mk)),1) + $(error Multiple board config files for TARGET_DEVICE $(TARGET_DEVICE): $(board_config_mk)) + endif + TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) + .KATI_READONLY := TARGET_DEVICE_DIR endif include $(board_config_mk) ifeq ($(TARGET_ARCH),) @@ -261,7 +270,6 @@ ifneq ($(MALLOC_IMPL),) $(warning *** Unsupported option MALLOC_IMPL defined by board config: $(board_config_mk).) $(error Use `MALLOC_SVELTE := true` to configure jemalloc for low-memory) endif -TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) board_config_mk := ###########################################