From bc11760a58e08284afb98dcf5d448bec0b8a0cac Mon Sep 17 00:00:00 2001 From: Randall Spangler Date: Fri, 6 Dec 2013 16:20:40 -0800 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/179205 Reviewed-by: Vincent Palatin --- Makefile | 24 ++++++++++++++++++++---- Makefile.toolchain | 4 +++- test/build.mk | 10 +++++----- 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 -- cgit v1.2.1