blob: 0c2f7d27629c10a55025ac64e708fc9f36188dd1 [file] [log] [blame]
Pascal Brandb0104772014-06-12 15:56:20 +02001include mk/cleanvars.mk
Jerome Forissier3bce5ba2014-12-16 19:23:24 +01002include core/arch/$(ARCH)/plat-$(PLATFORM)/platform_flags.mk
Pascal Brandb0104772014-06-12 15:56:20 +02003
4# Set current submodule (used for module specific flags compile result etc)
5sm := user_ta
6sm-$(sm) := y
7
8cppflags$(sm) += $(platform-cppflags) $(user_ta-platform-cppflags)
9cflags$(sm) += $(platform-cflags) $(user_ta-platform-cflags)
10aflags$(sm) += $(platform-aflags) $(user_ta-platform-aflags)
11
12# Config flags from mk/config.mk
Jens Wiklander4de4beb2014-10-20 11:26:38 +020013cppflags$(sm) += -DCFG_TRACE_LEVEL=$(CFG_TEE_TA_LOG_LEVEL)
Pascal Brandb0104772014-06-12 15:56:20 +020014cppflags$(sm) += -DCFG_TEE_CORE_USER_MEM_DEBUG=$(CFG_TEE_CORE_USER_MEM_DEBUG)
15
16
17base-prefix := $(sm)-
18
19libname = utils
20libdir = lib/libutils
21include mk/lib.mk
22
23libname = mpa
24libdir = lib/libmpa
25include mk/lib.mk
26
27libname = utee
28libdir = lib/libutee
29include mk/lib.mk
30
31base-prefix :=
32
33incdirs-host := $(filter-out lib/libutils%, $(incdirs$(sm)))
Jens Wiklanderfecbba72015-01-26 09:53:56 +010034incfiles-extra-host := lib/libutils/ext/include/compiler.h
Pascal Brandb0104772014-06-12 15:56:20 +020035
36#
37# Copy lib files and exported headers from each lib
38#
39
40define copy-file
41$2/$$(notdir $1): $1
Jerome Forissier0047cb62014-09-01 13:41:48 +020042 @set -e; \
43 mkdir -p $$(dir $$@) ; \
44 echo ' INSTALL $$@' ; \
Pascal Brandb0104772014-06-12 15:56:20 +020045 cp $$< $$@
46
47cleanfiles += $2/$$(notdir $1)
48all: $2/$$(notdir $1)
49endef
50
51# Copy the .a files
52$(foreach f, $(libfiles), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020053 $(eval $(call copy-file, $(f), $(out-dir)/export-user_ta/lib)))
Pascal Brandb0104772014-06-12 15:56:20 +020054
55# Copy .mk files
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +020056ta-mkfiles = mk/compile.mk mk/subdir.mk mk/gcc.mk \
Jerome Forissier3bce5ba2014-12-16 19:23:24 +010057 $(wildcard core/arch/$(ARCH)/plat-$(PLATFORM)/platform_flags.mk) \
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +020058 $(wildcard ta/arch/$(ARCH)/link.mk) \
Pascal Brandb0104772014-06-12 15:56:20 +020059 ta/mk/ta_dev_kit.mk
Jerome Forissier3bce5ba2014-12-16 19:23:24 +010060
Pascal Brandb0104772014-06-12 15:56:20 +020061$(foreach f, $(ta-mkfiles), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020062 $(eval $(call copy-file, $(f), $(out-dir)/export-user_ta/mk)))
Pascal Brandb0104772014-06-12 15:56:20 +020063
64# Copy the .h files for TAs
65define copy-incdir
66sf := $(subst $1/, , $(shell find $1 -name "*.h"))
67$$(foreach h, $$(sf), $$(eval $$(call copy-file, $1/$$(h), \
Jerome Forissier0047cb62014-09-01 13:41:48 +020068 $$(patsubst %/,%,$$(subst /./,/,$2/$$(dir $$(h)))))))
Pascal Brandb0104772014-06-12 15:56:20 +020069endef
70$(foreach d, $(incdirs$(sm)), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020071 $(eval $(call copy-incdir, $(d), $(out-dir)/export-user_ta/include)))
Pascal Brandb0104772014-06-12 15:56:20 +020072
73# Copy the .h files needed by host
74$(foreach d, $(incdirs-host), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020075 $(eval $(call copy-incdir, $(d), $(out-dir)/export-user_ta/host_include)))
Jens Wiklanderfecbba72015-01-26 09:53:56 +010076$(foreach f, $(incfiles-extra-host), \
77 $(eval $(call copy-file, $(f), $(out-dir)/export-user_ta/host_include)))
Pascal Brandb0104772014-06-12 15:56:20 +020078
79# Copy the src files
80ta-srcfiles = ta/arch/$(ARCH)/user_ta_header.c \
81 $(wildcard ta/arch/$(ARCH)/user_ta_elf_arm.lds)
82$(foreach f, $(ta-srcfiles), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020083 $(eval $(call copy-file, $(f), $(out-dir)/export-user_ta/src)))
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +020084
85# Copy the scripts
86ta-scripts = $(wildcard ta/arch/$(ARCH)/fix_ta_binary)
87$(foreach f, $(ta-scripts), \
Jerome Forissier4334e8d2014-09-08 10:53:42 +020088 $(eval $(call copy-file, $(f), $(out-dir)/export-user_ta/scripts)))