1ifeq ($O,) 2out-dir := $(CURDIR)/out 3else 4include scripts/common.mk 5out-dir := $(call strip-trailing-slashes-and-dots,$(O)) 6ifeq ($(out-dir),) 7$(error invalid output directory (O=$(O))) 8endif 9endif 10 11-include $(TA_DEV_KIT_DIR)/host_include/conf.mk 12 13ifneq ($V,1) 14 q := @ 15 echo := @echo 16else 17 q := 18 echo := @: 19endif 20# export 'q', used by sub-makefiles. 21export q 22 23# If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE 24CROSS_COMPILE_HOST ?= $(CROSS_COMPILE) 25CROSS_COMPILE_TA ?= $(CROSS_COMPILE) 26 27.PHONY: all 28ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),) 29ifeq "$(BUILD_CA)" "y" 30all: rk_test xtest ta extra_app 31else 32all: ta 33endif 34else 35all: 36 $(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false 37endif 38 39.PHONY: extra_app 40extra_app: 41 $(q)[ ! -d host/extra_app ] || \ 42 $(MAKE) -C host/extra_app CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \ 43 --no-builtin-variables \ 44 q=$(q) \ 45 O=$(out-dir)/extra_app \ 46 $@ 47 48.PHONY: rk_test 49rk_test: 50 $(q)$(MAKE) -C host/rk_test CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \ 51 --no-builtin-variables \ 52 q=$(q) \ 53 O=$(out-dir)/rk_test \ 54 $@ 55 56.PHONY: xtest 57xtest: 58 $(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \ 59 --no-builtin-variables \ 60 q=$(q) \ 61 O=$(out-dir) \ 62 $@ 63 64.PHONY: ta 65ta: 66 $(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \ 67 O=$(out-dir) \ 68 $@ 69 70.PHONY: clean 71ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),) 72clean: 73 $(q)$(MAKE) -C host/rk_test O=$(out-dir) $@ 74 $(q)$(MAKE) -C host/xtest O=$(out-dir) $@ 75 $(q)$(MAKE) -C ta O=$(out-dir) $@ 76 $(q)[ ! -d host/extra_app ] || $(MAKE) -C host/extra_app O=$(out-dir) $@ 77 $(q)find ta/ \( -name "*.ta" -o -name "*.dmp" -o -name "*.elf" -o -name "*.map" \) -exec rm -rf {} \; 78 79else 80clean: 81 $(q)echo "TA_DEV_KIT_DIR is not correctly defined" 82 $(q)echo "You can remove manually $(out-dir)" 83endif 84 85 86 87install: 88 $(echo) ' INSTALL ${DESTDIR}/lib/optee_armtz' 89 $(q)mkdir -p ${DESTDIR}/lib/optee_armtz 90 $(q)find $(out-dir) -name \*.ta -exec cp -a {} ${DESTDIR}/lib/optee_armtz \; 91 $(echo) ' INSTALL ${DESTDIR}/bin' 92 $(q)mkdir -p ${DESTDIR}/bin 93 $(q)cp -a $(out-dir)/xtest/xtest ${DESTDIR}/bin 94 $(echo) ' INSTALL ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)' 95 $(q)mkdir -p ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH) 96 $(q)cp $(out-dir)/supp_plugin/*.plugin ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH) 97 98.PHONY: cscope 99cscope: 100 $(echo) ' CSCOPE .' 101 ${q}rm -f cscope.* 102 ${q}find $(PWD) -name "*.[ch]" -o -name "*.cpp" | grep -v /package/ > cscope.files 103 ${q}cscope -b -q -k 104