diff options
author | Jon Medhurst <tixy@linaro.org> | 2014-02-13 15:19:28 +0000 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2014-03-05 16:21:14 +0000 |
commit | 4bfc2d21a157466ee2de7dc8f572d78dfa6a7dfe (patch) | |
tree | 59410a6d71ca28c49df0ca0dabec607e39ea28e8 /Makefile | |
parent | fb05246201a2d708fb4f3d5febf47e1fc931fa7e (diff) |
Enable platforms to omit some bootloaders
If a platform doesn't specify a BLx_SOURCE variable, then building
of the corresponding bootloader isn't attempted. Also allow BL3-3 to
be omitted from the FIP.
Note, this change also removes support for PLAT=all and the 'fip' target
from the 'all' recipe.
Fixes ARM-software/tf-issues#30
Change-Id: Ibdfead0440256eaf364617ecff65290ca6fe6240
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 60 |
1 files changed, 28 insertions, 32 deletions
@@ -71,7 +71,7 @@ BL_COMMON_SOURCES := misc_helpers.S \ ARCH ?= aarch64 # By default, build all platforms available -PLAT ?= all +PLAT ?= fvp # By default, build no SPD component SPD ?= none @@ -85,31 +85,30 @@ HELP_PLATFORMS := $(shell echo ${PLATFORMS} | sed 's/ /|/g') ifeq (${PLAT},) $(error "Error: Unknown platform. Please use PLAT=<platform name> to specify the platform.") endif -ifeq ($(findstring ${PLAT},${PLATFORMS} all),) +ifeq ($(findstring ${PLAT},${PLATFORMS}),) $(error "Error: Invalid platform. The following platforms are available: ${PLATFORMS}") endif -ifeq (${PLAT},all) -all: ${PLATFORMS} -else -all: msg_start fip -endif +all: msg_start msg_start: @echo "Building ${PLAT}" -${PLATFORMS}: - ${MAKE} PLAT=$@ all - -ifneq (${PLAT},all) - $(info Including ${PLAT}/platform.mk) - include plat/${PLAT}/platform.mk - $(info Including bl1.mk) - include bl1/bl1.mk - $(info Including bl2.mk) - include bl2/bl2.mk - $(info Including bl31.mk) - include bl31/bl31.mk +include plat/${PLAT}/platform.mk + +ifdef BL1_SOURCES +NEED_BL1 := yes +include bl1/bl1.mk +endif + +ifdef BL2_SOURCES +NEED_BL2 := yes +include bl2/bl2.mk +endif + +ifdef BL31_SOURCES +NEED_BL31 := yes +include bl31/bl31.mk endif # Include SPD Makefile if one has been specified @@ -128,7 +127,7 @@ ifneq (${SPD},none) # variable to "yes" endif -.PHONY: all msg_start ${PLATFORMS} clean realclean distclean cscope locate-checkpatch checkcodebase checkpatch fiptool fip locate-bl33 +.PHONY: all msg_start ${PLATFORMS} clean realclean distclean cscope locate-checkpatch checkcodebase checkpatch fiptool fip .SUFFIXES: @@ -158,6 +157,7 @@ vpath %.ld.S bl1:bl2:bl31 vpath %.c bl1:bl2:bl31 vpath %.c bl1/${ARCH}:bl2/${ARCH}:bl31/${ARCH} vpath %.S bl1/${ARCH}:bl2/${ARCH}:bl31/${ARCH} +vpath %.c lib/arch/${ARCH} # One of the missing paths needed for BL_COMMON_SOURCES ifneq (${DEBUG}, 0) @@ -203,17 +203,6 @@ ifeq (,$(wildcard ${CHECKPATCH})) endif endif -locate-bl33: -ifndef BL33 - $(error "Please set BL33 to point to the Normal World binary, eg: BL33=../uefi/FVP_AARCH64_EFI.fd") -else -ifeq (,$(wildcard ${BL33})) - $(error "The file BL33 points to cannot be found (${BL33})") -endif -FIP_DEPS += ${BL33} -endif - - clean: @echo " CLEAN" ${Q}rm -rf ${BUILD_PLAT} @@ -381,18 +370,25 @@ $(eval FIP_ARGS += $(if $2,--bl$(1) $(BIN),)) endef +ifeq (${NEED_BL1},yes) $(eval $(call MAKE_BL,1)) +endif +ifeq (${NEED_BL2},yes) $(eval $(call MAKE_BL,2,in_fip)) +endif +ifeq (${NEED_BL31},yes) BL31_SOURCES += ${SPD_SOURCES} $(eval $(call MAKE_BL,31,in_fip)) +endif ifeq (${NEED_BL32},yes) $(eval $(call MAKE_BL,32,in_fip)) endif -${BUILD_PLAT}/fip.bin: locate-bl33 ${FIP_DEPS} ${FIPTOOL} +${BUILD_PLAT}/fip.bin: ${FIP_DEPS} ${BL33} ${FIPTOOL} + $(if ${BL33},,$(error "To build a FIP, please set BL33 to point to the Normal World binary, eg: BL33=../uefi/FVP_AARCH64_EFI.fd")) ${Q}${FIPTOOL} --dump \ ${FIP_ARGS} \ --bl33 ${BL33} \ |