diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-12-12 15:52:46 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-12-13 21:22:19 +0000 |
commit | f749c9363cb694836b0c9471e7847d33e3515711 (patch) | |
tree | f006508e9990e3aae2dcca460bfbda14294c174d | |
parent | cddf8a545cd2531ff8cde897a90939cdc8e82e0b (diff) | |
download | chrome-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>
-rw-r--r-- | Makefile | 34 | ||||
-rw-r--r-- | Makefile.toolchain | 2 |
2 files changed, 19 insertions, 17 deletions
@@ -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 diff --git a/Makefile.toolchain b/Makefile.toolchain index b1f94b63e5..d730c411c7 100644 --- a/Makefile.toolchain +++ b/Makefile.toolchain @@ -29,7 +29,7 @@ CFLAGS_TEST=$(if $(TEST_BUILD),-DTEST_BUILD \ -DTEST_TASKFILE=$(PROJECT).tasklist,) \ $(if $(EMU_BUILD),-DEMU_BUILD) \ $(if $($(PROJECT)-scale),-DTEST_TIME_SCALE=$($(PROJECT)-scale)) \ - -DTEST_$(PROJECT) + -DTEST_$(PROJECT) -DTEST_$(UC_PROJECT) CFLAGS_COVERAGE=$(if $(TEST_COVERAGE),-fprofile-arcs -ftest-coverage \ -DTEST_COVERAGE,) CFLAGS_DEFINE=-DOUTDIR=$(out) -DCHIP=$(CHIP) -DBOARD_TASKFILE=ec.tasklist \ |