1cfa34d9aSJens Wiklanderinclude mk/cleanvars.mk 219fdfcf6SEtienne Carriere 319fdfcf6SEtienne Carriere# Set $(sm) as the name of the in tree TA being built, for instance "avb" or "pkcs11" 4cfa34d9aSJens Wiklandersm := $(lastword $(subst /, ,$(dir $(ta-mk-file)))) 5cfa34d9aSJens Wiklandersm-$(sm) := y 6cfa34d9aSJens Wiklander 7cfa34d9aSJens Wiklander# Select TA target (aka TA dev kit, when delivered) 8cfa34d9aSJens Wiklanderta-target := $(strip $(if $(CFG_USER_TA_TARGET_$(sm)), \ 9cfa34d9aSJens Wiklander $(filter $(CFG_USER_TA_TARGET_$(sm)), $(ta-targets)), \ 10cfa34d9aSJens Wiklander $(default-user-ta-target))) 11cfa34d9aSJens Wiklander 12728777acSJerome Forissierifeq ($(ta-target),ta_arm32) 13728777acSJerome Forissierarch-bits-$(sm) := 32 14728777acSJerome Forissierendif 15728777acSJerome Forissierifeq ($(ta-target),ta_arm64) 16728777acSJerome Forissierarch-bits-$(sm) := 64 17728777acSJerome Forissierendif 1819fdfcf6SEtienne Carriere 19cfa34d9aSJens Wiklanderta-dev-kit-dir$(sm) := $(out-dir)/export-$(ta-target) 20cfa34d9aSJens Wiklanderlink-out-dir$(sm) := $(out-dir)/$(patsubst %/,%, $(dir $(ta-mk-file))) 21cfa34d9aSJens Wiklander 227ee167f5SJan Kiszka# Default if ta-mk-file defines none 237ee167f5SJan Kiszkauser-ta-version := 0 247ee167f5SJan Kiszka 25cfa34d9aSJens Wiklanderinclude $(ta-mk-file) 26cfa34d9aSJens Wiklanderifeq ($(user-ta-uuid),) 27cfa34d9aSJens Wiklander$(error user-ta-uuid missing in $(ta-mk-file)) 28cfa34d9aSJens Wiklanderendif 29cfa34d9aSJens Wiklander 30cfa34d9aSJens Wiklander# Inherit compiler and flags from TA target 31cfa34d9aSJens WiklanderCROSS_COMPILE_$(sm) := $(CROSS_COMPILE_$(ta-target)) 32cfa34d9aSJens WiklanderCOMPILER_$(sm) := $(COMPILER_$(ta-target)) 33cfa34d9aSJens Wiklanderinclude mk/$(COMPILER_$(sm)).mk 34cfa34d9aSJens Wiklander 357716295eSJerome Forissiercppflags$(sm) := $(cppflags$(ta-target)) $(CPPFLAGS_$(ta-target)) \ 367716295eSJerome Forissier -I$(ta-dev-kit-dir$(sm))/include 378bbc2e9cSJens Wiklanderifeq ($(CFG_TA_OPTEE_CORE_API_COMPAT_1_1),y) 388bbc2e9cSJens Wiklandercppflags$(sm) += -D__OPTEE_CORE_API_COMPAT_1_1=1 398bbc2e9cSJens Wiklanderendif 407716295eSJerome Forissiercflags$(sm) := $(cflags$(ta-target)) $(CFLAGS_$(ta-target)) 41cfa34d9aSJens Wiklanderaflags$(sm) := $(aflags$(ta-target)) 42cfa34d9aSJens Wiklander 4364718c93SJerome Forissier# For now, do not link in-tree TAs against shared libraries 4464718c93SJerome Forissierlink-ldflags$(sm) := -static 4564718c93SJerome Forissier 46cfa34d9aSJens Wiklanderlibdirs = $(ta-dev-kit-dir$(sm))/lib 47062e3d01SJens Wiklanderlibnames = utils utee 48cfa34d9aSJens Wiklanderifeq ($(CFG_TA_MBEDTLS),y) 49cfa34d9aSJens Wiklanderlibnames += mbedtls 50cfa34d9aSJens Wiklanderendif 51cfa34d9aSJens Wiklanderlibdeps = $(addsuffix .a, $(addprefix $(libdirs)/lib, $(libnames))) 52cfa34d9aSJens Wiklander 53ca7065cbSJerome Forissiersubdirs = $(patsubst %/,%,$(dir $(ta-mk-file))) 54cfa34d9aSJens Wiklanderinclude mk/subdir.mk 55cfa34d9aSJens Wiklander 56cfa34d9aSJens Wiklanderspec-out-dir := $(link-out-dir$(sm)) 57cfa34d9aSJens Wiklanderspec-srcs += $(ta-dev-kit-dir$(sm))/src/user_ta_header.c 58c8061893SJerome Forissierifeq ($(ta-target),ta_arm32) 59c8061893SJerome Forissierspec-srcs += $(ta-dev-kit-dir$(sm))/src/ta_entry_a32.S 60c8061893SJerome Forissierendif 61cfa34d9aSJens Wiklander 620265f1e4SJerome Forissier# Install TA headers before in-tree TAs can be compiled 630265f1e4SJerome Forissieradditional-compile-deps := $(ta_dev_kit-files-include) 64cfa34d9aSJens Wiklanderinclude mk/compile.mk 650265f1e4SJerome Forissier# Install TA libraries before in-tree TAs can be linked 660265f1e4SJerome Forissieradditional-link-deps := $(ta_dev_kit-files-lib) 67*31b31015Sliushiweiinclude ta/link.mk 6878329760SJerome Forissier 6978329760SJerome Forissierta_dev_kit: $(out-dir)/export-$(ta-target)/ta/$(user-ta-uuid).ta 7078329760SJerome Forissier 7178329760SJerome Forissier$(out-dir)/export-$(ta-target)/ta/$(user-ta-uuid).ta: $(link-out-dir$(sm))/$(user-ta-uuid).ta 7278329760SJerome Forissier $(q)mkdir -p $(dir $@) 7378329760SJerome Forissier @$(cmd-echo-silent) ' INSTALL $@' 7478329760SJerome Forissier $(q)cp -P $< $@ 7578329760SJerome Forissier 7678329760SJerome Forissiercleanfiles += $(out-dir)/export-$(ta-target)/ta/$(user-ta-uuid).ta 77