1include mk/cleanvars.mk 2sm := $(lastword $(subst /, ,$(dir $(ta-mk-file)))) 3sm-$(sm) := y 4 5# Select TA target (aka TA dev kit, when delivered) 6ta-target := $(strip $(if $(CFG_USER_TA_TARGET_$(sm)), \ 7 $(filter $(CFG_USER_TA_TARGET_$(sm)), $(ta-targets)), \ 8 $(default-user-ta-target))) 9 10ta-dev-kit-dir$(sm) := $(out-dir)/export-$(ta-target) 11link-out-dir$(sm) := $(out-dir)/$(patsubst %/,%, $(dir $(ta-mk-file))) 12 13include $(ta-mk-file) 14ifeq ($(user-ta-uuid),) 15$(error user-ta-uuid missing in $(ta-mk-file)) 16endif 17 18# Inherit compiler and flags from TA target 19CROSS_COMPILE_$(sm) := $(CROSS_COMPILE_$(ta-target)) 20COMPILER_$(sm) := $(COMPILER_$(ta-target)) 21include mk/$(COMPILER_$(sm)).mk 22 23cppflags$(sm) := $(cppflags$(ta-target)) -I$(ta-dev-kit-dir$(sm))/include 24cflags$(sm) := $(cflags$(ta-target)) 25aflags$(sm) := $(aflags$(ta-target)) 26 27ifeq ($(CFG_ULIBS_SHARED),y) 28# For now, do not link in-tree TAs against shared libraries 29link-ldflags$(sm) := -static 30endif 31 32libdirs = $(ta-dev-kit-dir$(sm))/lib 33libnames = utils utee 34ifneq ($(CFG_TA_MBEDTLS_MPI),y) 35libnames += mpa 36endif 37ifeq ($(CFG_TA_MBEDTLS),y) 38libnames += mbedtls 39endif 40libdeps = $(addsuffix .a, $(addprefix $(libdirs)/lib, $(libnames))) 41 42subdirs = $(patsubst %/,%,$(dir $(ta-mk-file))) 43include mk/subdir.mk 44 45spec-out-dir := $(link-out-dir$(sm)) 46spec-srcs += $(ta-dev-kit-dir$(sm))/src/user_ta_header.c 47ifeq ($(ta-target),ta_arm32) 48spec-srcs += $(ta-dev-kit-dir$(sm))/src/ta_entry_a32.S 49endif 50 51# Install TA headers before in-tree TAs can be compiled 52additional-compile-deps := $(ta_dev_kit-files-include) 53include mk/compile.mk 54# Install TA libraries before in-tree TAs can be linked 55additional-link-deps := $(ta_dev_kit-files-lib) 56include ta/arch/$(ARCH)/link.mk 57