xref: /optee_os/ta/mk/build-user-ta.mk (revision c80618936c7024c4ceb06b6783ca6f9626ff30ac)
1cfa34d9aSJens Wiklanderinclude mk/cleanvars.mk
2cfa34d9aSJens Wiklandersm := $(lastword $(subst /, ,$(dir $(ta-mk-file))))
3cfa34d9aSJens Wiklandersm-$(sm) := y
4cfa34d9aSJens Wiklander
5cfa34d9aSJens Wiklander# Select TA target (aka TA dev kit, when delivered)
6cfa34d9aSJens Wiklanderta-target := $(strip $(if $(CFG_USER_TA_TARGET_$(sm)), \
7cfa34d9aSJens Wiklander		$(filter $(CFG_USER_TA_TARGET_$(sm)), $(ta-targets)), \
8cfa34d9aSJens Wiklander		$(default-user-ta-target)))
9cfa34d9aSJens Wiklander
10cfa34d9aSJens Wiklanderta-dev-kit-dir$(sm) := $(out-dir)/export-$(ta-target)
11cfa34d9aSJens Wiklanderlink-out-dir$(sm) := $(out-dir)/$(patsubst %/,%, $(dir $(ta-mk-file)))
12cfa34d9aSJens Wiklander
13cfa34d9aSJens Wiklanderinclude $(ta-mk-file)
14cfa34d9aSJens Wiklanderifeq ($(user-ta-uuid),)
15cfa34d9aSJens Wiklander$(error user-ta-uuid missing in $(ta-mk-file))
16cfa34d9aSJens Wiklanderendif
17cfa34d9aSJens Wiklander
18cfa34d9aSJens Wiklander# Inherit compiler and flags from TA target
19cfa34d9aSJens WiklanderCROSS_COMPILE_$(sm)	:= $(CROSS_COMPILE_$(ta-target))
20cfa34d9aSJens WiklanderCOMPILER_$(sm)		:= $(COMPILER_$(ta-target))
21cfa34d9aSJens Wiklanderinclude mk/$(COMPILER_$(sm)).mk
22cfa34d9aSJens Wiklander
23cfa34d9aSJens Wiklandercppflags$(sm)	:= $(cppflags$(ta-target)) -I$(ta-dev-kit-dir$(sm))/include
24cfa34d9aSJens Wiklandercflags$(sm)	:= $(cflags$(ta-target))
25cfa34d9aSJens Wiklanderaflags$(sm)	:= $(aflags$(ta-target))
26cfa34d9aSJens Wiklander
2764718c93SJerome Forissierifeq ($(CFG_ULIBS_SHARED),y)
2864718c93SJerome Forissier# For now, do not link in-tree TAs against shared libraries
2964718c93SJerome Forissierlink-ldflags$(sm) := -static
3064718c93SJerome Forissierendif
3164718c93SJerome Forissier
32cfa34d9aSJens Wiklanderlibdirs  = $(ta-dev-kit-dir$(sm))/lib
33062e3d01SJens Wiklanderlibnames = utils utee
34062e3d01SJens Wiklanderifneq ($(CFG_TA_MBEDTLS_MPI),y)
35062e3d01SJens Wiklanderlibnames += mpa
36062e3d01SJens Wiklanderendif
37cfa34d9aSJens Wiklanderifeq ($(CFG_TA_MBEDTLS),y)
38cfa34d9aSJens Wiklanderlibnames += mbedtls
39cfa34d9aSJens Wiklanderendif
40cfa34d9aSJens Wiklanderlibdeps = $(addsuffix .a, $(addprefix $(libdirs)/lib, $(libnames)))
41cfa34d9aSJens Wiklander
42ca7065cbSJerome Forissiersubdirs = $(patsubst %/,%,$(dir $(ta-mk-file)))
43cfa34d9aSJens Wiklanderinclude mk/subdir.mk
44cfa34d9aSJens Wiklander
45cfa34d9aSJens Wiklanderspec-out-dir := $(link-out-dir$(sm))
46cfa34d9aSJens Wiklanderspec-srcs += $(ta-dev-kit-dir$(sm))/src/user_ta_header.c
47*c8061893SJerome Forissierifeq ($(ta-target),ta_arm32)
48*c8061893SJerome Forissierspec-srcs += $(ta-dev-kit-dir$(sm))/src/ta_entry_a32.S
49*c8061893SJerome Forissierendif
50cfa34d9aSJens Wiklander
518452bf4eSJerome Forissieradditional-compile-deps := $(ta_dev_kit-files) # TA dev kit should be built before in-tree TAs
52cfa34d9aSJens Wiklanderinclude mk/compile.mk
53cfa34d9aSJens Wiklanderinclude  ta/arch/$(ARCH)/link.mk
54