Build system: add 'make help' option
Add the 'help' target to the Makefile to present a brief guide to the
various build options available.
Change-Id: Ic3a3489860b6362eb236470ea6b43a16a1b2fe3a
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
diff --git a/Makefile b/Makefile
index 71be313..c54d49e 100644
--- a/Makefile
+++ b/Makefile
@@ -70,6 +70,8 @@
BUILD_DIRS := ${BUILD_BL1} ${BUILD_BL2} ${BUILD_BL31}
PLATFORMS := $(shell ls -I common plat/)
+HELP_PLATFORMS := $(shell echo ${PLATFORMS} | sed 's/ /|/g')
+
ifeq (${PLAT},)
$(error "Error: Unknown platform. Please use PLAT=<platform name> to specify the platform.")
endif
@@ -257,3 +259,22 @@
@echo
@echo "Built $@ successfully"
@echo
+
+help:
+ @echo "usage: ${MAKE} PLAT=<all|${HELP_PLATFORMS}> <all|bl1|bl2|bl31|distclean|clean|dump>"
+ @echo ""
+ @echo "PLAT is used to specify which platform you wish to build."
+ @echo ""
+ @echo "Supported Targets:"
+ @echo " all build the BL1, BL2 and BL31 binaries"
+ @echo " bl1 build the BL1 binary"
+ @echo " bl2 build the BL2 binary"
+ @echo " bl31 build the BL31 binary"
+ @echo " clean Clean the build for the selected platform"
+ @echo " distclean Remove all build artifacts for all platforms"
+ @echo " dump Generate object file dumps"
+ @echo ""
+ @echo "note: most build targets require PLAT to be set to a specific platform."
+ @echo ""
+ @echo "example: build all targets for the FVP platform:"
+ @echo " CROSS_COMPILE=aarch64-none-elf- make PLAT=fvp all"