blob: c24f6ab9a8aeaf90697b20c9ea9dd6c5d354db70 [file] [log] [blame]
Pascal Brandb0104772014-06-12 15:56:20 +02001include mk/cleanvars.mk
2
3# Set current submodule (used for module specific flags compile result etc)
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +01004sm := $(ta-target)
Pascal Brandb0104772014-06-12 15:56:20 +02005sm-$(sm) := y
6
Jens Wiklander1b4eb4f2015-02-02 09:19:18 +01007# Setup compiler for this sub module
Jerome Forissierb6106702015-03-18 14:39:51 +01008CROSS_COMPILE_$(sm) ?= $(CROSS_COMPILE)
Jens Wiklander1b4eb4f2015-02-02 09:19:18 +01009COMPILER_$(sm) ?= $(COMPILER)
10include mk/$(COMPILER_$(sm)).mk
11
Jens Wiklander153c4952015-03-19 15:00:00 +010012include ta/arch/$(ARCH)/$(ARCH).mk
13
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +010014# Expand platform flags here as $(sm) will change if we have several TA
15# targets. Platform flags should not change after inclusion of ta/ta.mk.
16cppflags$(sm) := $(platform-cppflags) $($(sm)-platform-cppflags)
17cflags$(sm) := $(platform-cflags) $($(sm)-platform-cflags)
18aflags$(sm) := $(platform-aflags) $($(sm)-platform-aflags)
Pascal Brandb0104772014-06-12 15:56:20 +020019
Pascal Brandb5569a62016-01-08 15:14:30 +010020cppflags$(sm) += -include $(conf-file)
21
Pascal Brandb0104772014-06-12 15:56:20 +020022# Config flags from mk/config.mk
Jerome Forissier8a1e7b82015-03-31 00:44:06 +020023cppflags$(sm) += -DTRACE_LEVEL=$(CFG_TEE_TA_LOG_LEVEL)
Pascal Brand156fe682015-12-03 10:27:35 +010024ifeq ($(CFG_TEE_TA_MALLOC_DEBUG),y)
25cppflags$(sm) += -DENABLE_MDBG=1
26endif
Pascal Brandb0104772014-06-12 15:56:20 +020027
Pascal Brandb0104772014-06-12 15:56:20 +020028base-prefix := $(sm)-
29
30libname = utils
31libdir = lib/libutils
32include mk/lib.mk
33
34libname = mpa
35libdir = lib/libmpa
36include mk/lib.mk
37
38libname = utee
39libdir = lib/libutee
40include mk/lib.mk
41
42base-prefix :=
43
44incdirs-host := $(filter-out lib/libutils%, $(incdirs$(sm)))
Jens Wiklanderfecbba72015-01-26 09:53:56 +010045incfiles-extra-host := lib/libutils/ext/include/compiler.h
Jens Wiklander3c734192015-01-26 16:39:07 +010046incfiles-extra-host += lib/libutils/ext/include/util.h
Pascal Brandb5569a62016-01-08 15:14:30 +010047incfiles-extra-host += $(conf-file)
48incfiles-extra-host += $(conf-mk-file)
SY Chiu94707832015-09-09 17:17:49 +080049incfiles-extra-host += core/include/tee/tee_fs_key_manager.h
Jens Wiklander92ea2862015-10-26 13:37:30 +010050incfiles-extra-host += core/include/signed_hdr.h
Pascal Brandb0104772014-06-12 15:56:20 +020051
52#
53# Copy lib files and exported headers from each lib
54#
55
56define copy-file
57$2/$$(notdir $1): $1
Jerome Forissier0047cb62014-09-01 13:41:48 +020058 @set -e; \
59 mkdir -p $$(dir $$@) ; \
Jens Wiklander62428632015-04-29 15:05:19 +020060 $(cmd-echo-silent) ' INSTALL $$@' ; \
Pascal Brandb0104772014-06-12 15:56:20 +020061 cp $$< $$@
62
63cleanfiles += $2/$$(notdir $1)
64all: $2/$$(notdir $1)
65endef
66
67# Copy the .a files
68$(foreach f, $(libfiles), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +010069 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/lib)))
Pascal Brandb0104772014-06-12 15:56:20 +020070
71# Copy .mk files
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +020072ta-mkfiles = mk/compile.mk mk/subdir.mk mk/gcc.mk \
Jerome Forissier3bce5ba2014-12-16 19:23:24 +010073 $(wildcard core/arch/$(ARCH)/plat-$(PLATFORM)/platform_flags.mk) \
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +020074 $(wildcard ta/arch/$(ARCH)/link.mk) \
Pascal Brandb0104772014-06-12 15:56:20 +020075 ta/mk/ta_dev_kit.mk
Jerome Forissier3bce5ba2014-12-16 19:23:24 +010076
Pascal Brandb0104772014-06-12 15:56:20 +020077$(foreach f, $(ta-mkfiles), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +010078 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/mk)))
Pascal Brandb0104772014-06-12 15:56:20 +020079
Jens Wiklander153c4952015-03-19 15:00:00 +010080# Special treatment for ta/arch/$(ARCH)/$(ARCH).mk
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +010081arch-arch-mk := $(out-dir)/export-$(sm)/mk/arch.mk
Jens Wiklander153c4952015-03-19 15:00:00 +010082$(arch-arch-mk): ta/arch/$(ARCH)/$(ARCH).mk
83 @set -e; \
84 mkdir -p $(dir $@) ; \
Jens Wiklander62428632015-04-29 15:05:19 +020085 $(cmd-echo-silent) ' INSTALL $@' ; \
Jens Wiklander153c4952015-03-19 15:00:00 +010086 cp $< $@
87
88cleanfiles += $(arch-arch-mk)
89all: $(arch-arch-mk)
90
Pascal Brandb0104772014-06-12 15:56:20 +020091# Copy the .h files for TAs
92define copy-incdir
93sf := $(subst $1/, , $(shell find $1 -name "*.h"))
94$$(foreach h, $$(sf), $$(eval $$(call copy-file, $1/$$(h), \
Jerome Forissier0047cb62014-09-01 13:41:48 +020095 $$(patsubst %/,%,$$(subst /./,/,$2/$$(dir $$(h)))))))
Pascal Brandb0104772014-06-12 15:56:20 +020096endef
97$(foreach d, $(incdirs$(sm)), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +010098 $(eval $(call copy-incdir, $(d), $(out-dir)/export-$(sm)/include)))
Pascal Brandb0104772014-06-12 15:56:20 +020099
100# Copy the .h files needed by host
101$(foreach d, $(incdirs-host), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100102 $(eval $(call copy-incdir, $(d), $(out-dir)/export-$(sm)/host_include)))
Jens Wiklanderfecbba72015-01-26 09:53:56 +0100103$(foreach f, $(incfiles-extra-host), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100104 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/host_include)))
Pascal Brandb0104772014-06-12 15:56:20 +0200105
106# Copy the src files
107ta-srcfiles = ta/arch/$(ARCH)/user_ta_header.c \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100108 $(wildcard ta/arch/$(ARCH)/ta.ld.S)
Pascal Brandb0104772014-06-12 15:56:20 +0200109$(foreach f, $(ta-srcfiles), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100110 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/src)))
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +0200111
Jens Wiklanderbc420742015-05-05 14:59:15 +0200112# Copy keys
113ta-keys = keys/default_ta.pem
114$(foreach f, $(ta-keys), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100115 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/keys)))
Jens Wiklanderbc420742015-05-05 14:59:15 +0200116
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +0200117# Copy the scripts
Jens Wiklanderbc420742015-05-05 14:59:15 +0200118ta-scripts = $(wildcard scripts/sign.py)
Jens Wiklander2cb1e0d2014-08-15 11:35:17 +0200119$(foreach f, $(ta-scripts), \
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100120 $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/scripts)))
121
122# Create config file
Pascal Brandb5569a62016-01-08 15:14:30 +0100123conf-mk-file-export := $(out-dir)/export-$(sm)/mk/conf.mk
124sm-$(conf-mk-file-export) := $(sm)
125$(conf-mk-file-export): $(conf-mk-file)
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100126 @$(cmd-echo-silent) ' GEN ' $@
127 $(q)echo sm := $(sm-$(@)) > $@
128 $(q)echo sm-$(sm-$(@)) := y >> $@
129 $(q)echo CFG_ARM32_$(sm-$(@)) := $(CFG_ARM32_$(sm-$(@))) >> $@
130 $(q)echo CFG_ARM64_$(sm-$(@)) := $(CFG_ARM64_$(sm-$(@))) >> $@
Jens Wiklander3e27ab42015-12-11 12:48:45 +0100131 $(q)echo CFG_TA_FLOAT_SUPPORT := $(CFG_TA_FLOAT_SUPPORT) >> $@
Jens Wiklanderbc33bbd2015-11-11 14:08:26 +0100132
Pascal Brandb5569a62016-01-08 15:14:30 +0100133cleanfiles := $(cleanfiles) $(conf-mk-file-export)
134all: $(conf-mk-file-export)