summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-12-06 16:20:40 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-12-09 18:29:12 +0000
commitbc11760a58e08284afb98dcf5d448bec0b8a0cac (patch)
tree263df06ae1b573075abb1d931f543fd97ed0601a /Makefile
parentf7627170596ecda5206a3dc6b7e259ee5a03fd3c (diff)
downloadchrome-ec-bc11760a58e08284afb98dcf5d448bec0b8a0cac.tar.gz
Add uppercase defined constants for BOARD_, CHIP_, etc.
Currently, per-board defines use mixed case (BOARD_pit). This causes the presubmit script to complain because that's a style violation. Using --no-verify to bypass that also allows other style violations to creep in. This change adds uppercase variants (BOARD_PIT). It also adds a CORE_ define with '-' changed to '_', since CORE_cortex-m isn't a valid symbol but CORE_CORTEX_M is (so now we can #ifdef CORE_CORTEX_M). This does not remove the old mixed-case defines yet, nor does it find/replace them in the C source files. This is intentional, so this change can be cherry-picked into branches without needing to change files in the branch that may have picked up new #ifdefs. I will rename the constants in the C source files and remove the old mixed-case defines in a follow-on CL, which should not need to get picked into existing branches. 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: I5eb0d1fe57f1c694d7449e5f148e2f13fb290a39 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/179205 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile24
1 files changed, 20 insertions, 4 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