1############################################################################### 2# Targets 3############################################################################### 4.PHONY: all clean cleaner prepare 5 6all: u-boot linux optee-os build-fit buildroot 7clean: linux-clean u-boot-clean optee-os-clean build-fit-clean buildroot-clean 8cleaner: clean prepare-cleaner linux-cleaner 9 10include toolchain.mk 11 12prepare: 13 @if [ ! -d $(STAGING_AREA) ]; then mkdir -p $(STAGING_AREA); fi 14 15.PHONY: prepare-cleaner 16prepare-cleaner: 17 rm -r $(STAGING_AREA) 18 19############################################################################### 20# Das U-Boot 21############################################################################### 22.PHONY: u-boot u-boot-clean 23 24U-BOOT_EXPORTS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_KERNEL) ARCH=arm 25 26u-boot: 27 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) $(U-BOOT_CONFIG) 28 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) all 29 30u-boot-clean: 31 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean 32 33############################################################################### 34# Linux kernel 35############################################################################### 36.PHONY: linux-defconfig linux linux-defconfig-clean linux-clean linux-cleaner 37 38linux-defconfig: 39 cd $(LINUX_PATH) && \ 40 ti_config_fragments/defconfig_builder.sh -t $(CONFIG_TYPE) 41 $(MAKE) -C $(LINUX_PATH) $(LINUX_COMMON_FLAGS) $(CONFIG_TYPE)_defconfig 42 43LINUX_COMMON_FLAGS += ARCH=arm 44linux: linux-common 45linux-defconfig-clean: linux-defconfig-clean-common 46 47LINUX_CLEAN_COMMON_FLAGS += ARCH=arm 48linux-clean: linux-clean-common 49 50LINUX_CLEANER_COMMON_FLAGS += ARCH=arm 51linux-cleaner: linux-cleaner-common 52 53############################################################################### 54# OP-TEE 55############################################################################### 56.PHONY: optee-os optee-os-clean optee-client optee-client-clean 57 58OPTEE_OS_COMMON_FLAGS += PLATFORM=$(OPTEE_OS_PLATFORM) 59optee-os: optee-os-common 60 61OPTEE_OS_CLEAN_COMMON_FLAGS += PLATFORM=$(OPTEE_OS_PLATFORM) 62optee-os-clean: optee-os-clean-common 63 64############################################################################### 65# Build FIT 66############################################################################### 67.PHONY: build-fit build-fit-clean 68 69build-fit: prepare linux optee-os 70 cp $(LINUX_IMAGE) $(STAGING_AREA)/ 71 cp $(LINUX_DTBS) $(STAGING_AREA)/ 72 cp $(OPTEE_OS_BIN) $(STAGING_AREA)/ 73 cp $(FIT_SOURCE) $(STAGING_AREA)/fitImage.its 74 cp $(FIT_MAKEFILE) $(STAGING_AREA)/ 75 MKIMAGE=$(U-BOOT_PATH)/tools/mkimage $(MAKE) -C $(STAGING_AREA) 76 77build-fit-clean: 78 $(RM) $(STAGING_AREA)/Makefile 79 $(RM) $(STAGING_AREA)/fitImage.its 80 $(RM) $(STAGING_AREA)/tee.bin 81 $(RM) $(STAGING_AREA)/*.dtb 82 $(RM) $(STAGING_AREA)/zImage 83 84############################################################################### 85# Root FS 86############################################################################### 87.PHONY: update_rootfs 88# Make sure this is built before the buildroot target which will create the 89# root file system based on what's in $(BUILDROOT_TARGET_ROOT) 90buildroot: update_rootfs 91 92update_rootfs: u-boot build-fit 93 @mkdir -p --mode=755 $(BUILDROOT_TARGET_ROOT)/boot 94 @install -v -p --mode=644 $(UBOOT_SPL) $(BUILDROOT_TARGET_ROOT)/boot/MLO 95 @install -v -p --mode=644 $(UBOOT_IMG) \ 96 $(BUILDROOT_TARGET_ROOT)/boot/u-boot.img 97 @install -v -p --mode=644 $(STAGING_AREA)/fitImage \ 98 $(BUILDROOT_TARGET_ROOT)/boot/fitImage 99