Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 1 | include mk/cleanvars.mk |
| 2 | |
| 3 | # Set current submodule (used for module specific flags compile result etc) |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 4 | sm := $(ta-target) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 5 | sm-$(sm) := y |
| 6 | |
Jens Wiklander | 1b4eb4f | 2015-02-02 09:19:18 +0100 | [diff] [blame] | 7 | # Setup compiler for this sub module |
Jens Wiklander | 1b4eb4f | 2015-02-02 09:19:18 +0100 | [diff] [blame] | 8 | COMPILER_$(sm) ?= $(COMPILER) |
| 9 | include mk/$(COMPILER_$(sm)).mk |
| 10 | |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 11 | # Expand platform flags here as $(sm) will change if we have several TA |
| 12 | # targets. Platform flags should not change after inclusion of ta/ta.mk. |
| 13 | cppflags$(sm) := $(platform-cppflags) $($(sm)-platform-cppflags) |
| 14 | cflags$(sm) := $(platform-cflags) $($(sm)-platform-cflags) |
| 15 | aflags$(sm) := $(platform-aflags) $($(sm)-platform-aflags) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 16 | |
Pascal Brand | b5569a6 | 2016-01-08 15:14:30 +0100 | [diff] [blame] | 17 | cppflags$(sm) += -include $(conf-file) |
| 18 | |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 19 | # Config flags from mk/config.mk |
Jerome Forissier | 8a1e7b8 | 2015-03-31 00:44:06 +0200 | [diff] [blame] | 20 | cppflags$(sm) += -DTRACE_LEVEL=$(CFG_TEE_TA_LOG_LEVEL) |
Pascal Brand | 156fe68 | 2015-12-03 10:27:35 +0100 | [diff] [blame] | 21 | ifeq ($(CFG_TEE_TA_MALLOC_DEBUG),y) |
| 22 | cppflags$(sm) += -DENABLE_MDBG=1 |
| 23 | endif |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 24 | |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 25 | base-prefix := $(sm)- |
| 26 | |
| 27 | libname = utils |
| 28 | libdir = lib/libutils |
| 29 | include mk/lib.mk |
| 30 | |
Jens Wiklander | ca3a358 | 2016-03-27 17:38:49 +0200 | [diff] [blame] | 31 | libname = zlib |
| 32 | libdir = lib/libzlib |
| 33 | include mk/lib.mk |
| 34 | |
Jens Wiklander | fdf35d0 | 2016-03-27 15:24:43 +0200 | [diff] [blame] | 35 | libname = png |
| 36 | libdir = lib/libpng |
| 37 | include mk/lib.mk |
| 38 | |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 39 | libname = mpa |
| 40 | libdir = lib/libmpa |
| 41 | include mk/lib.mk |
| 42 | |
| 43 | libname = utee |
| 44 | libdir = lib/libutee |
| 45 | include mk/lib.mk |
| 46 | |
| 47 | base-prefix := |
| 48 | |
| 49 | incdirs-host := $(filter-out lib/libutils%, $(incdirs$(sm))) |
Jens Wiklander | fecbba7 | 2015-01-26 09:53:56 +0100 | [diff] [blame] | 50 | incfiles-extra-host := lib/libutils/ext/include/compiler.h |
Jens Wiklander | 3c73419 | 2015-01-26 16:39:07 +0100 | [diff] [blame] | 51 | incfiles-extra-host += lib/libutils/ext/include/util.h |
Jens Wiklander | 09d93d2 | 2016-04-09 00:21:32 +0200 | [diff] [blame] | 52 | incfiles-extra-host += lib/libutils/ext/include/types_ext.h |
Pascal Brand | b5569a6 | 2016-01-08 15:14:30 +0100 | [diff] [blame] | 53 | incfiles-extra-host += $(conf-file) |
| 54 | incfiles-extra-host += $(conf-mk-file) |
SY Chiu | 9470783 | 2015-09-09 17:17:49 +0800 | [diff] [blame] | 55 | incfiles-extra-host += core/include/tee/tee_fs_key_manager.h |
Jens Wiklander | 92ea286 | 2015-10-26 13:37:30 +0100 | [diff] [blame] | 56 | incfiles-extra-host += core/include/signed_hdr.h |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 57 | |
| 58 | # |
| 59 | # Copy lib files and exported headers from each lib |
| 60 | # |
| 61 | |
| 62 | define copy-file |
| 63 | $2/$$(notdir $1): $1 |
Jerome Forissier | 0047cb6 | 2014-09-01 13:41:48 +0200 | [diff] [blame] | 64 | @set -e; \ |
| 65 | mkdir -p $$(dir $$@) ; \ |
Jens Wiklander | 6242863 | 2015-04-29 15:05:19 +0200 | [diff] [blame] | 66 | $(cmd-echo-silent) ' INSTALL $$@' ; \ |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 67 | cp $$< $$@ |
| 68 | |
| 69 | cleanfiles += $2/$$(notdir $1) |
| 70 | all: $2/$$(notdir $1) |
| 71 | endef |
| 72 | |
| 73 | # Copy the .a files |
| 74 | $(foreach f, $(libfiles), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 75 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/lib))) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 76 | |
| 77 | # Copy .mk files |
Jerome Forissier | 9ac870c | 2017-01-06 09:33:29 +0100 | [diff] [blame] | 78 | ta-mkfiles = mk/compile.mk mk/subdir.mk mk/gcc.mk mk/cleandirs.mk \ |
Jens Wiklander | 2cb1e0d | 2014-08-15 11:35:17 +0200 | [diff] [blame] | 79 | $(wildcard ta/arch/$(ARCH)/link.mk) \ |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 80 | ta/mk/ta_dev_kit.mk |
Jerome Forissier | 3bce5ba | 2014-12-16 19:23:24 +0100 | [diff] [blame] | 81 | |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 82 | $(foreach f, $(ta-mkfiles), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 83 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/mk))) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 84 | |
| 85 | # Copy the .h files for TAs |
| 86 | define copy-incdir |
| 87 | sf := $(subst $1/, , $(shell find $1 -name "*.h")) |
| 88 | $$(foreach h, $$(sf), $$(eval $$(call copy-file, $1/$$(h), \ |
Jerome Forissier | 0047cb6 | 2014-09-01 13:41:48 +0200 | [diff] [blame] | 89 | $$(patsubst %/,%,$$(subst /./,/,$2/$$(dir $$(h))))))) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 90 | endef |
| 91 | $(foreach d, $(incdirs$(sm)), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 92 | $(eval $(call copy-incdir, $(d), $(out-dir)/export-$(sm)/include))) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 93 | |
| 94 | # Copy the .h files needed by host |
| 95 | $(foreach d, $(incdirs-host), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 96 | $(eval $(call copy-incdir, $(d), $(out-dir)/export-$(sm)/host_include))) |
Jens Wiklander | fecbba7 | 2015-01-26 09:53:56 +0100 | [diff] [blame] | 97 | $(foreach f, $(incfiles-extra-host), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 98 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/host_include))) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 99 | |
| 100 | # Copy the src files |
| 101 | ta-srcfiles = ta/arch/$(ARCH)/user_ta_header.c \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 102 | $(wildcard ta/arch/$(ARCH)/ta.ld.S) |
Pascal Brand | b010477 | 2014-06-12 15:56:20 +0200 | [diff] [blame] | 103 | $(foreach f, $(ta-srcfiles), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 104 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/src))) |
Jens Wiklander | 2cb1e0d | 2014-08-15 11:35:17 +0200 | [diff] [blame] | 105 | |
Jens Wiklander | bc42074 | 2015-05-05 14:59:15 +0200 | [diff] [blame] | 106 | # Copy keys |
| 107 | ta-keys = keys/default_ta.pem |
| 108 | $(foreach f, $(ta-keys), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 109 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/keys))) |
Jens Wiklander | bc42074 | 2015-05-05 14:59:15 +0200 | [diff] [blame] | 110 | |
Jens Wiklander | 2cb1e0d | 2014-08-15 11:35:17 +0200 | [diff] [blame] | 111 | # Copy the scripts |
Jens Wiklander | bc42074 | 2015-05-05 14:59:15 +0200 | [diff] [blame] | 112 | ta-scripts = $(wildcard scripts/sign.py) |
Jens Wiklander | 2cb1e0d | 2014-08-15 11:35:17 +0200 | [diff] [blame] | 113 | $(foreach f, $(ta-scripts), \ |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 114 | $(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/scripts))) |
| 115 | |
| 116 | # Create config file |
Pascal Brand | b5569a6 | 2016-01-08 15:14:30 +0100 | [diff] [blame] | 117 | conf-mk-file-export := $(out-dir)/export-$(sm)/mk/conf.mk |
| 118 | sm-$(conf-mk-file-export) := $(sm) |
Jerome Forissier | 50ce590 | 2017-01-06 15:28:52 +0100 | [diff] [blame^] | 119 | define mk-file-export |
Pascal Brand | b5569a6 | 2016-01-08 15:14:30 +0100 | [diff] [blame] | 120 | $(conf-mk-file-export): $(conf-mk-file) |
Jerome Forissier | 50ce590 | 2017-01-06 15:28:52 +0100 | [diff] [blame^] | 121 | @$$(cmd-echo-silent) ' GEN ' $$@ |
| 122 | $(q)echo sm := $$(sm-$(conf-mk-file-export)) > $$@ |
| 123 | $(q)echo sm-$$(sm-$(conf-mk-file-export)) := y >> $$@ |
| 124 | $(q)echo CFG_TA_FLOAT_SUPPORT := $$(CFG_TA_FLOAT_SUPPORT) >> $$@ |
| 125 | $(q)($$(foreach v, $$(ta-mk-file-export-vars-$$(sm-$(conf-mk-file-export))), \ |
| 126 | echo $$(v) := $$($$(v));)) >> $$@ |
| 127 | $(q)echo '$$(ta-mk-file-export-add-$$(sm-$(conf-mk-file-export)))' | sed 's/_nl_ */\n/g' >> $$@ |
| 128 | endef |
| 129 | $(eval $(mk-file-export)) |
Jens Wiklander | bc33bbd | 2015-11-11 14:08:26 +0100 | [diff] [blame] | 130 | |
Pascal Brand | b5569a6 | 2016-01-08 15:14:30 +0100 | [diff] [blame] | 131 | cleanfiles := $(cleanfiles) $(conf-mk-file-export) |
| 132 | all: $(conf-mk-file-export) |