CROSS_COMPILE := aarch64-none-elf- output_dir := $(HOME)/aarch64 output_nfs := /mnt/storage/nfsroot/aarch64 makejobs := $(shell grep '^processor' /proc/cpuinfo | sort -u | wc -l) makethreads := $(shell dc -e "$(makejobs) 1 + p") make_options := GCC49_AARCH64_PREFIX=$CROSS_COMPILE \ -j$(makethreads) -l$(makejobs) #BL33_FVP := $(output_dir)/FVP_AARCH64_EFI.fd BL33_FVP := $(output_dir)/u-boot-fvp-semi.bin BL30_JUNO := $(output_dir)/bl30-juno.bin #BL33_JUNO := $(output_dir)/BL33_AP_UEFI.fd SCP_BL2_JUNO := $(output_dir)/scp_bl2.bin BL33_JUNO := $(output_dir)/u-boot-juno.bin .PHONY: help help: @echo "**** Common Makefile ****" @echo "example:" @echo "make -f build-tf.mak .PHONY: have-crosscompiler have-crosscompiler: @echo -n "Check that $(CROSS_COMPILE)gcc is available..." @which $(CROSS_COMPILE)gcc > /dev/null ; \ if [ ! $$? -eq 0 ] ; then \ echo "ERROR: cross-compiler $(CROSS_COMPILE)gcc not in PATH=$$PATH!" ; \ echo "ABORTING." ; \ exit 1 ; \ else \ echo "OK" ;\ fi build: have-crosscompiler FORCE @echo "Build TF for FVP..." rm -rf build/ CROSS_COMPILE=$(CROSS_COMPILE) \ make all fip \ BL33=$(BL33_FVP) \ DEBUG=1 \ PLAT=fvp @echo "Copy resulting binaries..." cp build/fvp/debug/bl1.bin $(output_dir)/bl1-fvp.bin cp build/fvp/debug/fip.bin $(output_dir)/fip-fvp.bin @echo "Build TF for Juno..." rm -rf build/ CROSS_COMPILE=$(CROSS_COMPILE) \ make PLAT=juno \ BL30=$(BL30_JUNO) \ BL33=$(BL33_JUNO) \ SCP_BL2=$(SCP_BL2_JUNO) \ DEBUG=1 \ all fip @echo "Copy resulting binaries..." cp build/juno/debug/bl1.bin $(output_dir)/bl1-juno.bin cp build/juno/debug/fip.bin $(output_dir)/fip-juno.bin @if [ -w $(output_nfs) ]; then \ echo "Copying to NFS root $(output_nfs)" ; \ cp -f $(output_dir)/bl1-juno.bin $(output_nfs) ; \ cp -f $(output_dir)/fip-juno.bin $(output_nfs) ; \ fi FORCE: