From 289e0dadbdc4dbe4ac78110f93262dc785d24418 Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Fri, 16 May 2014 11:38:10 +0100 Subject: [PATCH] Introduce convenience functions to build This patch introduces two convenience functions to the build system: - assert_boolean: asserts that a given option is assigned either 0 or 1 as values - add_define: helps add/append macro definitions to build tool command line. This also introduces the variable DEFINES which is used to collect and pass all relevant configurations to build tools Change-Id: I3126894b034470d39858ebb3bd183bda681c7126 --- Makefile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3064aa4e4..93f89415a 100644 --- a/Makefile +++ b/Makefile @@ -83,6 +83,19 @@ PLATFORMS := $(shell ls -I common plat/) SPDS := $(shell ls -I none services/spd) HELP_PLATFORMS := $(shell echo ${PLATFORMS} | sed 's/ /|/g') +# Convenience function for adding build definitions +# $(eval $(call add_define,FOO)) will have: +# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise +define add_define +DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) +endef + +# Convenience function for verifying option has a boolean value +# $(eval $(call assert_boolean,FOO)) will assert FOO is 0 or 1 +define assert_boolean +$(and $(patsubst 0,,$(value $(1))),$(patsubst 1,,$(value $(1))),$(error $(1) must be boolean)) +endef + ifeq (${PLAT},) $(error "Error: Unknown platform. Please use PLAT= to specify the platform.") endif @@ -131,7 +144,6 @@ endif .PHONY: all msg_start clean realclean distclean cscope locate-checkpatch checkcodebase checkpatch fiptool fip .SUFFIXES: - INCLUDES += -Iinclude/bl1 \ -Iinclude/bl2 \ -Iinclude/bl31 \