mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-01 12:52:26 +00:00
Allow for private board configurations
The public sources look for board configurations in directories named board/$BOARD/ Sometimes it's necessary to keep sensitive projects out of the public view for a bit. This CL allows board configurations to also appear in directories named private*/board/$BOARD/ BUG=none BRANCH=none TEST=manual First, ebuilds and "make buildall" seem to work just as before. Second, I copied 24 of the existing boards (those without board-specific #ifdefs in the code) into a private*/board/ directory, renamed them to something unique, and ran "make buildall" again. Both public and private boards compiled and passed their tests. Change-Id: I977c23cb8e73e40677c8f329abca8bbc51fd53df Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/292428 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
This commit is contained in:
committed by
ChromeOS Commit Bot
parent
ccb0c13931
commit
263b66204c
36
Makefile
36
Makefile
@@ -24,6 +24,16 @@ else
|
||||
|
||||
BOARD ?= bds
|
||||
|
||||
# Directory where the board is configured (includes /$(BOARD) at the end)
|
||||
BDIR:=$(wildcard board/$(BOARD) private*/board/$(BOARD))
|
||||
# There can be only one <insert exploding windows here>
|
||||
ifeq (,$(BDIR))
|
||||
$(error unable to locate BOARD $(BOARD))
|
||||
endif
|
||||
ifneq (1,$(words $(BDIR)))
|
||||
$(error multiple definitions for BOARD $(BOARD): $(BDIR))
|
||||
endif
|
||||
|
||||
PROJECT?=ec
|
||||
|
||||
# Output directory for build objects
|
||||
@@ -33,7 +43,7 @@ out?=build/$(BOARD)
|
||||
config=$(out)/.config
|
||||
|
||||
# If no key file is provided, use the default dev key
|
||||
PEM ?= board/$(BOARD)/dev_key.pem
|
||||
PEM ?= $(BDIR)/dev_key.pem
|
||||
|
||||
include Makefile.toolchain
|
||||
|
||||
@@ -44,7 +54,7 @@ all:
|
||||
|
||||
# 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 $(BDIR)/build.mk
|
||||
include chip/$(CHIP)/build.mk
|
||||
|
||||
# Create uppercase config variants, to avoid mixed case constants.
|
||||
@@ -65,41 +75,41 @@ includes=include core/$(CORE)/include $(dirs) $(out) test
|
||||
ifeq "$(TEST_BUILD)" "y"
|
||||
_tsk_lst_file:=ec.tasklist
|
||||
_tsk_lst:=$(shell echo "CONFIG_TASK_LIST CONFIG_TEST_TASK_LIST" | \
|
||||
$(CPP) -P -Iboard/$(BOARD) -Itest \
|
||||
$(CPP) -P -I$(BDIR) -Itest \
|
||||
-D"TASK_NOTEST(n, r, d, s)=" -D"TASK_ALWAYS(n, r, d, s)=n" \
|
||||
-D"TASK_TEST(n, r, d, s)=n" -imacros $(_tsk_lst_file) \
|
||||
-imacros $(PROJECT).tasklist)
|
||||
else
|
||||
_tsk_lst_file:=$(PROJECT).tasklist
|
||||
_tsk_lst:=$(shell echo "CONFIG_TASK_LIST" | $(CPP) -P \
|
||||
-Iboard/$(BOARD) -D"TASK_NOTEST(n, r, d, s)=n" \
|
||||
-I$(BDIR) -D"TASK_NOTEST(n, r, d, s)=n" \
|
||||
-D"TASK_ALWAYS(n, r, d, s)=n" -imacros $(_tsk_lst_file))
|
||||
endif
|
||||
_tsk_cfg:=$(foreach t,$(_tsk_lst) ,HAS_TASK_$(t))
|
||||
CPPFLAGS+=$(foreach t,$(_tsk_cfg),-D$(t))
|
||||
_flag_cfg:=$(shell $(CPP) $(CPPFLAGS) -P -dM -Ichip/$(CHIP) -Iboard/$(BOARD) \
|
||||
_flag_cfg:=$(shell $(CPP) $(CPPFLAGS) -P -dM -Ichip/$(CHIP) -I$(BDIR) \
|
||||
include/config.h | grep -o "\#define CONFIG_[A-Z0-9_]*" | \
|
||||
cut -c9- | sort)
|
||||
|
||||
$(foreach c,$(_tsk_cfg) $(_flag_cfg),$(eval $(c)=y))
|
||||
|
||||
ifneq "$(CONFIG_COMMON_RUNTIME)" "y"
|
||||
_irq_list:=$(shell $(CPP) $(CPPFLAGS) -P -Ichip/$(CHIP) -Iboard/$(BOARD) \
|
||||
_irq_list:=$(shell $(CPP) $(CPPFLAGS) -P -Ichip/$(CHIP) -I$(BDIR) \
|
||||
-D"ENABLE_IRQ(x)=EN_IRQ x" -imacros chip/$(CHIP)/registers.h \
|
||||
board/$(BOARD)/ec.irqlist | grep "EN_IRQ .*" | cut -c8-)
|
||||
$(BDIR)/ec.irqlist | grep "EN_IRQ .*" | cut -c8-)
|
||||
CPPFLAGS+=$(foreach irq,$(_irq_list),\
|
||||
-D"irq_$(irq)_handler_optional=irq_$(irq)_handler")
|
||||
endif
|
||||
|
||||
# Compute RW firmware size and offset
|
||||
_rw_off_str:=$(shell echo "CONFIG_RW_MEM_OFF" | $(CPP) $(CPPFLAGS) -P \
|
||||
-Ichip/$(CHIP) -Iboard/$(BOARD) -imacros include/config.h)
|
||||
-Ichip/$(CHIP) -I$(BDIR) -imacros include/config.h)
|
||||
_rw_off:=$(shell echo "$$(($(_rw_off_str)))")
|
||||
_rw_size_str:=$(shell echo "CONFIG_RW_SIZE" | $(CPP) $(CPPFLAGS) -P \
|
||||
-Ichip/$(CHIP) -Iboard/$(BOARD) -imacros include/config.h)
|
||||
-Ichip/$(CHIP) -I$(BDIR) -imacros include/config.h)
|
||||
_rw_size:=$(shell echo "$$(($(_rw_size_str)))")
|
||||
_flash_base_str:=$(shell echo "CONFIG_FLASH_BASE" | $(CPP) $(CPPFLAGS) -P \
|
||||
-Ichip/$(CHIP) -Iboard/$(BOARD) -imacros include/config.h)
|
||||
-Ichip/$(CHIP) -I$(BDIR) -imacros include/config.h)
|
||||
_flash_base=$(shell echo "$$(($(_flash_base_str)))")
|
||||
|
||||
$(eval BOARD_$(UC_BOARD)=y)
|
||||
@@ -109,7 +119,7 @@ $(eval CHIP_FAMILY_$(UC_CHIP_FAMILY)=y)
|
||||
|
||||
# Get build configuration from sub-directories
|
||||
# Note that this re-includes the board and chip makefiles
|
||||
include board/$(BOARD)/build.mk
|
||||
include $(BDIR)/build.mk
|
||||
include chip/$(CHIP)/build.mk
|
||||
include core/$(CORE)/build.mk
|
||||
|
||||
@@ -130,14 +140,14 @@ ro-objs_from_dir=$(sort $(foreach obj, $($(2)-y), \
|
||||
# Get all sources to build
|
||||
all-ro-y=$(call ro-objs_from_dir,core/$(CORE),core)
|
||||
all-ro-y+=$(call ro-objs_from_dir,chip/$(CHIP),chip)
|
||||
all-ro-y+=$(call ro-objs_from_dir,board/$(BOARD),board)
|
||||
all-ro-y+=$(call ro-objs_from_dir,$(BDIR),board)
|
||||
all-ro-y+=$(call ro-objs_from_dir,private,private)
|
||||
all-ro-y+=$(call ro-objs_from_dir,private-cr51,private-cr51)
|
||||
all-ro-y+=$(call ro-objs_from_dir,common,common)
|
||||
all-ro-y+=$(call ro-objs_from_dir,driver,driver)
|
||||
all-ro-y+=$(call ro-objs_from_dir,power,power)
|
||||
all-ro-y+=$(call ro-objs_from_dir,test,$(PROJECT))
|
||||
dirs=core/$(CORE) chip/$(CHIP) board/$(BOARD) common power test
|
||||
dirs=core/$(CORE) chip/$(CHIP) $(BDIR) common power test
|
||||
dirs+= private private-cr51
|
||||
dirs+=$(shell find driver -type d)
|
||||
common_dirs=util
|
||||
|
||||
@@ -14,7 +14,7 @@ host-srcs := $(foreach u,$(host-util-bin),$(sort $($(u)-objs:%.o=util/%.c) util/
|
||||
|
||||
# Don't do a build test on the following boards:
|
||||
skip_boards = OWNERS host it8380dev
|
||||
boards := $(filter-out $(skip_boards),$(subst board/,,$(wildcard board/*)))
|
||||
boards := $(filter-out $(skip_boards),$(notdir $(wildcard board/* private*/board/*)))
|
||||
|
||||
# Create output directories if necessary
|
||||
_common_dir_create := $(foreach d,$(common_dirs),$(shell [ -d $(out)/$(d) ] || \
|
||||
@@ -317,7 +317,7 @@ xrefs: $(call targ_if_prog,etags,$(out)/TAGS) \
|
||||
flash: $(out)/ec.bin
|
||||
openocd -c "set BOARD $(BOARD)"\
|
||||
-c "set BUILD_DIR $(out)"\
|
||||
-f board/$(BOARD)/openocd-flash.cfg
|
||||
-f $(BDIR)/openocd-flash.cfg
|
||||
|
||||
.PHONY: flash_ec
|
||||
flash_ec: $(out)/ec.bin
|
||||
@@ -325,7 +325,7 @@ flash_ec: $(out)/ec.bin
|
||||
|
||||
.PHONY: flash_dfu
|
||||
flash_dfu: $(out)/ec.bin
|
||||
sudo ./board/$(BOARD)/dfu $(out)/ec.bin
|
||||
sudo ./$(BDIR)/dfu $(out)/ec.bin
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
||||
@@ -53,7 +53,7 @@ objs_lfw += $(out)/RW/common/version.o
|
||||
dirs-y+=chip/$(CHIP)/lfw
|
||||
|
||||
# objs with -lfw suffix are to include lfw's gpio
|
||||
$(out)/RW/%-lfw.o: private CC+=-Iboard/$(BOARD)/lfw -DLFW
|
||||
$(out)/RW/%-lfw.o: private CC+=-I$(BDIR)/lfw -DLFW
|
||||
$(out)/RW/%-lfw.o: %.c
|
||||
$(call quiet,c_to_o,CC )
|
||||
|
||||
|
||||
Reference in New Issue
Block a user