From 192798513e1060cbe99490aa9932b7da705b56b9 Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Thu, 28 Feb 2019 17:15:57 +0000 Subject: [PATCH] Move combo makefile parsing These files may be setting variables usually defined in the BoardConfig. This moves that setting into board_config.mk so that the relevant variables can be made readonly. Test: build_test Test: diff presubmit target_files vs base cl Change-Id: I4dab09fa67c0f2e88a8ce1402a35b4ef5f8a0560 --- core/board_config.mk | 10 +++++++++ core/config.mk | 38 ------------------------------- core/envsetup.mk | 53 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/core/board_config.mk b/core/board_config.mk index 528c133a9c..93e07a069f 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -89,6 +89,16 @@ BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE)) INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE)) +# The combo makefiles sanity-check and set defaults for various CPU configuration +combo_target := TARGET_ +combo_2nd_arch_prefix := +include $(BUILD_SYSTEM)/combo/select.mk + +ifdef TARGET_2ND_ARCH + combo_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX) + include $(BUILD_SYSTEM)/combo/select.mk +endif + ifeq ($(TARGET_CPU_ABI),) $(error No TARGET_CPU_ABI defined by board config: $(board_config_mk)) endif diff --git a/core/config.mk b/core/config.mk index d4069d362f..0f3c126881 100644 --- a/core/config.mk +++ b/core/config.mk @@ -300,44 +300,6 @@ $(hide) $(HOST_OTOOL) -l $(1) | grep LC_ID_DYLIB -A 5 > $(2) $(hide) $(HOST_NM) -gP $(1) | cut -f1-2 -d" " | (grep -v U$$ >> $(2) || true) endef -combo_target := HOST_ -combo_2nd_arch_prefix := -include $(BUILD_SYSTEM)/combo/select.mk - -# Load the 2nd host arch if it's needed. -ifdef HOST_2ND_ARCH -combo_target := HOST_ -combo_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX) -include $(BUILD_SYSTEM)/combo/select.mk -endif - -# Load the windows cross compiler under Linux -ifdef HOST_CROSS_OS -combo_target := HOST_CROSS_ -combo_2nd_arch_prefix := -include $(BUILD_SYSTEM)/combo/select.mk - -ifdef HOST_CROSS_2ND_ARCH -combo_target := HOST_CROSS_ -combo_2nd_arch_prefix := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX) -include $(BUILD_SYSTEM)/combo/select.mk -endif -endif - -# on windows, the tools have .exe at the end, and we depend on the -# host config stuff being done first - -combo_target := TARGET_ -combo_2nd_arch_prefix := -include $(BUILD_SYSTEM)/combo/select.mk - -# Load the 2nd target arch if it's needed. -ifdef TARGET_2ND_ARCH -combo_target := TARGET_ -combo_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX) -include $(BUILD_SYSTEM)/combo/select.mk -endif - ifeq ($(CALLED_FROM_SETUP),true) include $(BUILD_SYSTEM)/ccache.mk include $(BUILD_SYSTEM)/goma.mk diff --git a/core/envsetup.mk b/core/envsetup.mk index d072c6ed68..506ec4d277 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -152,6 +152,45 @@ ifeq ($(HOST_OS),darwin) HOST_2ND_ARCH := endif +HOST_2ND_ARCH_VAR_PREFIX := 2ND_ +HOST_2ND_ARCH_MODULE_SUFFIX := _32 +HOST_CROSS_2ND_ARCH_VAR_PREFIX := 2ND_ +HOST_CROSS_2ND_ARCH_MODULE_SUFFIX := _64 +TARGET_2ND_ARCH_VAR_PREFIX := 2ND_ +.KATI_READONLY := \ + HOST_ARCH \ + HOST_2ND_ARCH \ + HOST_IS_64_BIT \ + HOST_2ND_ARCH_VAR_PREFIX \ + HOST_2ND_ARCH_MODULE_SUFFIX \ + HOST_CROSS_2ND_ARCH_VAR_PREFIX \ + HOST_CROSS_2ND_ARCH_MODULE_SUFFIX \ + TARGET_2ND_ARCH_VAR_PREFIX \ + +combo_target := HOST_ +combo_2nd_arch_prefix := +include $(BUILD_COMBOS)/select.mk + +ifdef HOST_2ND_ARCH + combo_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX) + include $(BUILD_SYSTEM)/combo/select.mk +endif + +# Load the windows cross compiler under Linux +ifdef HOST_CROSS_OS + combo_target := HOST_CROSS_ + combo_2nd_arch_prefix := + include $(BUILD_SYSTEM)/combo/select.mk + + ifdef HOST_CROSS_2ND_ARCH + combo_2nd_arch_prefix := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX) + include $(BUILD_SYSTEM)/combo/select.mk + endif +endif + +# on windows, the tools have .exe at the end, and we depend on the +# host config stuff being done first + BUILD_ARCH := $(HOST_ARCH) BUILD_2ND_ARCH := $(HOST_2ND_ARCH) @@ -232,11 +271,10 @@ $(error must be empty or one of: eng user userdebug) endif SDK_HOST_ARCH := x86 +TARGET_OS := linux include $(BUILD_SYSTEM)/board_config.mk -TARGET_OS := linux - # the target build type defaults to release ifneq ($(TARGET_BUILD_TYPE),debug) TARGET_BUILD_TYPE := release @@ -342,8 +380,6 @@ 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_ -HOST_2ND_ARCH_MODULE_SUFFIX := _32 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj32 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES) @@ -351,8 +387,6 @@ $(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_SHARED_LIBRARIES \ $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES \ @@ -366,15 +400,11 @@ 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_ -HOST_CROSS_2ND_ARCH_MODULE_SUFFIX := _64 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj64 $(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_SHARED_LIBRARIES \ $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES \ @@ -461,14 +491,13 @@ endif .KATI_READONLY := TARGET_OUT_SYSTEM_OTHER # Out for TARGET_2ND_ARCH -TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX) ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true) # With this you can reference the arm binary translation library with libfoo_arm in PRODUCT_PACKAGES. 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 +.KATI_READONLY := 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