summaryrefslogtreecommitdiff
path: root/ta/mk/ta_dev_kit.mk
diff options
context:
space:
mode:
Diffstat (limited to 'ta/mk/ta_dev_kit.mk')
-rw-r--r--ta/mk/ta_dev_kit.mk103
1 files changed, 103 insertions, 0 deletions
diff --git a/ta/mk/ta_dev_kit.mk b/ta/mk/ta_dev_kit.mk
new file mode 100644
index 0000000..fab5df0
--- /dev/null
+++ b/ta/mk/ta_dev_kit.mk
@@ -0,0 +1,103 @@
+# Get the dir of the ta-dev-kit, requires make version 3.81 or later
+ta-dev-kit-dir := $(patsubst %/,%,$(abspath $(dir $(lastword $(MAKEFILE_LIST)))..))
+
+
+.PHONY: all
+all:
+
+include $(ta-dev-kit-dir)/mk/conf.mk
+
+binary := $(BINARY)
+libname := $(LIBNAME)
+
+ifneq ($(BINARY),)
+ifneq ($(LIBNAME),)
+$(error You can only specify one of BINARY or LIBNAME)
+endif
+else
+ifeq ($(LIBNAME),)
+$(error You must specify one of BINARY or LIBNAME)
+endif
+endif
+
+ifneq ($O,)
+out-dir := $O
+else
+out-dir := .
+endif
+
+ifneq ($V,1)
+q := @
+cmd-echo := true
+cmd-echo-silent := echo
+else
+q :=
+cmd-echo := echo
+cmd-echo-silent := true
+endif
+
+ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
+ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
+cmd-echo-silent := true
+endif
+else # make-3.8x
+ifneq ($(findstring s, $(MAKEFLAGS)),)
+cmd-echo-silent := true
+endif
+endif
+
+cppflags$(sm) := $($(sm)-platform-cppflags) $(CPPFLAGS_$(sm))
+aflags$(sm) := $($(sm)-platform-aflags)
+cflags$(sm) := $($(sm)-platform-cflags) $(CFLAGS_$(sm))
+
+CFG_TEE_TA_LOG_LEVEL ?= 2
+cppflags$(sm) += -DTRACE_LEVEL=$(CFG_TEE_TA_LOG_LEVEL)
+
+# CFG_TEE_PANIC_DEBUG is used in tee_api.h
+ifeq ($(CFG_TEE_PANIC_DEBUG),y)
+cppflags$(sm) += -DCFG_TEE_PANIC_DEBUG=1
+endif
+
+cppflags$(sm) += -I. -I$(ta-dev-kit-dir)/include
+
+libdirs += $(ta-dev-kit-dir)/lib
+libnames += utils utee mpa utils zlib png utee
+libdeps += $(ta-dev-kit-dir)/lib/libutils.a
+libdeps += $(ta-dev-kit-dir)/lib/libmpa.a
+libdeps += $(ta-dev-kit-dir)/lib/libutee.a
+libdeps += $(ta-dev-kit-dir)/lib/libzlib.a
+libdeps += $(ta-dev-kit-dir)/lib/libpng.a
+
+include $(ta-dev-kit-dir)/mk/cleandirs.mk
+
+.PHONY: clean
+clean:
+ @$(cmd-echo-silent) ' CLEAN $(out-dir)'
+ ${q}rm -f $(cleanfiles)
+ ${q}dirs="$(call cleandirs-for-rmdir)"; if [ "$$dirs" ]; then $(RMDIR) $$dirs; fi
+ @$(cmd-echo-silent) ' CLEAN $(O)'
+ ${q}if [ -d "$(O)" ]; then $(RMDIR) $(O); fi
+
+subdirs = .
+include $(ta-dev-kit-dir)/mk/subdir.mk
+
+#the build target is ta
+ifneq ($(binary),)
+vpath %.c $(ta-dev-kit-dir)/src
+srcs += user_ta_header.c
+endif
+
+include $(ta-dev-kit-dir)/mk/gcc.mk
+include $(ta-dev-kit-dir)/mk/compile.mk
+ifneq ($(binary),)
+include $(ta-dev-kit-dir)/mk/link.mk
+else
+ifneq ($(libname),)
+all: $(libname).a
+cleanfiles += $(libname).a
+
+$(libname).a: $(objs)
+ @echo ' AR $@'
+ $(q)rm -f $@ && $(AR$(sm)) rcs -o $@ $^
+endif
+endif