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