blob: 8f3f802f4a674e9539d5ed434bc20a5592f752d1 [file] [log] [blame]
# Normally this makefile shouldn't be called directly and we expect the output
# path to be on a certain location to fit together with the other OP-TEE
# gits and helper scripts.
include ../scripts/common.mk
out-dir := $(call strip-trailing-slashes-and-dots,$(O))
ifeq ($(out-dir),)
$(error invalid output directory (O=$(O)))
endif
include $(TA_DEV_KIT_DIR)/mk/conf.mk
# Prevent use of LDFLAGS from the environment. For example, yocto exports
# LDFLAGS that are suitable for the client applications, not for TAs
LDFLAGS=
TA_DIRS := create_fail_test \
crypt \
os_test_lib \
os_test_lib_dl \
os_test \
rpc_test \
sims \
miss \
sims_keepalive \
storage \
storage2 \
concurrent \
concurrent_large \
storage_benchmark \
crypto_perf \
socket \
supp_plugin \
large \
subkey1 \
subkey2
ifeq ($(CFG_SECURE_DATA_PATH),y)
TA_DIRS += sdp_basic
endif
ifeq ($(CFG_TA_BTI),y)
TA_DIRS += bti_test
endif
.PHONY: all
all: ta
.PHONY: ta
ta:
define add-ta-target
.PHONY: ta-$(1)
ta-$(1):
$(MAKE) -C $(1) O=$(out-dir)/ta/$(1)
ta: ta-$(1)
endef
$(eval $(foreach dir,$(TA_DIRS),$(call add-ta-target,$(dir))))
ta-os_test: ta-os_test_lib ta-os_test_lib_dl
ifneq (,$(GP_PACKAGE))
define add-gp-ta-target
.PHONY: gp-ta-$(1)
gp-ta-$(1):
$(MAKE) -C $(1)
ta: gp-ta-$(1)
endef
$(eval $(foreach f,$(dir $(wildcard ../host/xtest/gp-suite/TTAs_Internal_API_1_1_1/*/*/code_files/Makefile \
../host/xtest/gp-suite/TTAs_Internal_API_1_1_1/*/*/*/code_files/Makefile)),$(call add-gp-ta-target,$(f))))
endif
# remove build directories including ta/<ta-name>/ directories.
# Note: $(out-dir) may be a relative path.
RMDIR := rmdir --ignore-fail-on-non-empty
define rm-build-subdir
echo `[ -d $1 ] && { cd $1; $(RMDIR) $(out-dir)/ta $(out-dir) 2> /dev/null; true; }` > /dev/null
endef
.PHONY: clean
clean:
$(q)$(foreach dir,$(TA_DIRS), [ ! -d $(dir) ] || $(MAKE) -C $(dir) O=$(out-dir)/ta/$(dir) $@ &&) true
$(q)$(foreach dir,$(TA_DIRS), $(call rm-build-subdir,$(dir));)