summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile24
-rw-r--r--Makefile.toolchain4
-rw-r--r--test/build.mk10
3 files changed, 28 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 078b09c267..b8cda47663 100644
--- a/Makefile
+++ b/Makefile
@@ -9,12 +9,13 @@ BOARD ?= bds
PROJECT?=ec
-# output directory for build objects
+# Output directory for build objects
out?=build/$(BOARD)
include Makefile.toolchain
-# Get CHIP name
+# The board makefile sets $CHIP. Include it now, since it must be
+# defined for _flag_cfg below.
include board/$(BOARD)/build.mk
# Transform the configuration into make variables
@@ -37,16 +38,31 @@ _flag_cfg:=$(shell $(CPP) $(CPPFLAGS) -P -dM -Ichip/$(CHIP) -Iboard/$(BOARD) \
cut -c9- | sort)
$(foreach c,$(_tsk_cfg) $(_flag_cfg),$(eval $(c)=y))
-$(eval BOARD_$(BOARD)=y)
# Get build configuration from sub-directories
--include private/build.mk
+# Note that this re-includes the board makefile
+
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
include driver/build.mk
include power/build.mk
+-include private/build.mk
include test/build.mk
include util/build.mk
include util/lock/build.mk
diff --git a/Makefile.toolchain b/Makefile.toolchain
index caa306ca51..b1f94b63e5 100644
--- a/Makefile.toolchain
+++ b/Makefile.toolchain
@@ -36,7 +36,9 @@ CFLAGS_DEFINE=-DOUTDIR=$(out) -DCHIP=$(CHIP) -DBOARD_TASKFILE=ec.tasklist \
-DBOARD=$(BOARD) -DBOARD_$(BOARD) -DCORE=$(CORE) \
-DPROJECT=$(PROJECT) -DCHIP_$(CHIP) \
-DCHIP_VARIANT=$(CHIP_VARIANT) -DCHIP_VARIANT_$(CHIP_VARIANT) \
- -DCHIP_FAMILY=$(CHIP_FAMILY) -DCHIP_FAMILY_$(CHIP_FAMILY)
+ -DCHIP_FAMILY=$(CHIP_FAMILY) -DCHIP_FAMILY_$(CHIP_FAMILY) \
+ -DBOARD_$(UC_BOARD) -DCHIP_$(UC_CHIP) -DCORE_$(UC_CORE) \
+ -DCHIP_VARIANT_$(UC_CHIP_VARIANT) -DCHIP_FAMILY_$(UC_CHIP_FAMILY)
CPPFLAGS=$(CFLAGS_DEFINE) $(CFLAGS_INCLUDE) $(CFLAGS_TEST) \
$(EXTRA_CFLAGS) $(CFLAGS_COVERAGE)
CFLAGS=$(CPPFLAGS) $(CFLAGS_CPU) $(CFLAGS_DEBUG) $(CFLAGS_WARN) $(CFLAGS_y)
diff --git a/test/build.mk b/test/build.mk
index 6c7ec33081..76a6a68d6f 100644
--- a/test/build.mk
+++ b/test/build.mk
@@ -9,14 +9,14 @@
test-list-y=pingpong timer_calib timer_dos timer_jump mutex utils
#disable: powerdemo
-test-list-$(BOARD_bds)+=
-test-list-$(BOARD_pit)+=kb_scan stress
-test-list-$(BOARD_snow)+=kb_scan stress
-test-list-$(BOARD_spring)+=kb_scan stress
+test-list-$(BOARD_BDS)+=
+test-list-$(BOARD_PIT)+=kb_scan stress
+test-list-$(BOARD_SNOW)+=kb_scan stress
+test-list-$(BOARD_SPRING)+=kb_scan stress
# Samus has board-specific chipset code, and the tests don't
# compile with it. Disable them for now.
-test-list-$(BOARD_samus)=
+test-list-$(BOARD_SAMUS)=
# Emulator tests
test-list-host=mutex pingpong utils kb_scan kb_mkbp lid_sw power_button hooks