summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-12-12 15:52:46 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-12-13 21:22:19 +0000
commitf749c9363cb694836b0c9471e7847d33e3515711 (patch)
treef006508e9990e3aae2dcca460bfbda14294c174d /Makefile
parentcddf8a545cd2531ff8cde897a90939cdc8e82e0b (diff)
downloadchrome-ec-f749c9363cb694836b0c9471e7847d33e3515711.tar.gz
Fix uppercased macros
The macros must be defined prior to evaluating config.h, since test_config.h needs them. Also define an uppercase version of the PROJECT variable, so that we define TEST_FOO in addition to TEST_foo. BUG=chromium:322144 BRANCH=none (but might need it if you later cherry-pick something with an uppercase #ifdef BOARD_FOO TEST=Build each board with V=1 option: 'make V=1 BOARD=foo all tests'. Check that the compile command line has both mixed-case and uppercase defines. Check that per-board tests from test/build.mk were built (for example, BOARD_PIT should compile kb_scan and stress, and BOARD_SAMUS should build none of them). Change-Id: I029552cfdf90a4191cf7a61cdcc65fe75d3ca86c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/179902 Reviewed-by: Vic Yang <victoryang@chromium.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile34
1 files changed, 18 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index b8cda47663..3bb92798d9 100644
--- a/Makefile
+++ b/Makefile
@@ -14,11 +14,25 @@ out?=build/$(BOARD)
include Makefile.toolchain
-# The board makefile sets $CHIP. Include it now, since it must be
-# defined for _flag_cfg below.
+# The board makefile sets $CHIP and the chip makefile sets $CORE.
+# Include those now, since they must be defined for _flag_cfg below.
include board/$(BOARD)/build.mk
+include chip/$(CHIP)/build.mk
+
+# Create uppercase config variants, to avoid mixed case constants.
+# Also translate '-' to '_', so 'cortex-m' turns into 'CORTEX_M'. This must
+# be done before evaluating config.h.
+uppercase = $(shell echo $(1) | tr '[:lower:]-' '[:upper:]_')
+UC_BOARD:=$(call uppercase,$(BOARD))
+UC_CHIP:=$(call uppercase,$(CHIP))
+UC_CHIP_FAMILY:=$(call uppercase,$(CHIP_FAMILY))
+UC_CHIP_VARIANT:=$(call uppercase,$(CHIP_VARIANT))
+UC_CORE:=$(call uppercase,$(CORE))
+UC_PROJECT:=$(call uppercase,$(PROJECT))
-# Transform the configuration into make variables
+# Transform the configuration into make variables. This must be done after
+# the board/project/chip/core variables are defined, since some of the configs
+# are dependent on particular configurations.
includes=include core/$(CORE)/include $(dirs) $(out) test
ifeq "$(TEST_BUILD)" "y"
_tsk_lst:=$(shell echo "CONFIG_TASK_LIST CONFIG_TEST_TASK_LIST" | \
@@ -40,23 +54,11 @@ _flag_cfg:=$(shell $(CPP) $(CPPFLAGS) -P -dM -Ichip/$(CHIP) -Iboard/$(BOARD) \
$(foreach c,$(_tsk_cfg) $(_flag_cfg),$(eval $(c)=y))
# Get build configuration from sub-directories
-# Note that this re-includes the board makefile
-
+# Note that this re-includes the board and chip makefiles
include board/$(BOARD)/build.mk
include chip/$(CHIP)/build.mk
include core/$(CORE)/build.mk
-# Create uppercase config variants, to avoid mixed case constants.
-# Also translate '-' to '_', so 'cortex-m' turns into 'CORTEX_M'.
-# This must be done after including board/chip/core configs, since we
-# want to run 'tr' once per variable instead of once per reference.
-uppercase = $(shell echo $(1) | tr '[:lower:]-' '[:upper:]_')
-UC_BOARD:=$(call uppercase,$(BOARD))
-UC_CHIP:=$(call uppercase,$(CHIP))
-UC_CHIP_FAMILY:=$(call uppercase,$(CHIP_FAMILY))
-UC_CHIP_VARIANT:=$(call uppercase,$(CHIP_VARIANT))
-UC_CORE:=$(call uppercase,$(CORE))
-
$(eval BOARD_$(UC_BOARD)=y)
include common/build.mk