1# Get the dir of the ta-dev-kit, requires make version 3.81 or later 2ta-dev-kit-dir := $(patsubst %/,%,$(abspath $(dir $(lastword $(MAKEFILE_LIST)))..)) 3 4 5.PHONY: all 6all: 7 8include $(ta-dev-kit-dir)/mk/conf.mk 9 10binary := $(BINARY) 11libname := $(LIBNAME) 12 13ifneq ($(BINARY),) 14ifneq ($(LIBNAME),) 15$(error You can only specify one of BINARY or LIBNAME) 16endif 17else 18ifeq ($(LIBNAME),) 19$(error You must specify one of BINARY or LIBNAME) 20endif 21endif 22 23ifneq ($O,) 24out-dir := $O 25else 26out-dir := . 27endif 28 29ifneq ($V,1) 30q := @ 31cmd-echo := true 32cmd-echo-silent := echo 33else 34q := 35cmd-echo := echo 36cmd-echo-silent := true 37endif 38 39ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 40ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),) 41cmd-echo-silent := true 42endif 43else # make-3.8x 44ifneq ($(findstring s, $(MAKEFLAGS)),) 45cmd-echo-silent := true 46endif 47endif 48 49cppflags$(sm) := $($(sm)-platform-cppflags) $(CPPFLAGS_$(sm)) 50aflags$(sm) := $($(sm)-platform-aflags) 51cflags$(sm) := $($(sm)-platform-cflags) $(CFLAGS_$(sm)) 52 53CFG_TEE_TA_LOG_LEVEL ?= 2 54cppflags$(sm) += -DTRACE_LEVEL=$(CFG_TEE_TA_LOG_LEVEL) 55 56# CFG_TEE_PANIC_DEBUG is used in tee_api.h 57ifeq ($(CFG_TEE_PANIC_DEBUG),y) 58cppflags$(sm) += -DCFG_TEE_PANIC_DEBUG=1 59endif 60 61cppflags$(sm) += -I. -I$(ta-dev-kit-dir)/include 62 63libdirs += $(ta-dev-kit-dir)/lib 64libnames += utils utee mpa 65libdeps += $(ta-dev-kit-dir)/lib/libutils.a 66libdeps += $(ta-dev-kit-dir)/lib/libmpa.a 67libdeps += $(ta-dev-kit-dir)/lib/libutee.a 68 69include $(ta-dev-kit-dir)/mk/cleandirs.mk 70 71.PHONY: clean 72clean: 73 @$(cmd-echo-silent) ' CLEAN $(out-dir)' 74 ${q}rm -f $(cleanfiles) 75 ${q}dirs="$(call cleandirs-for-rmdir)"; if [ "$$dirs" ]; then $(RMDIR) $$dirs; fi 76 @$(cmd-echo-silent) ' CLEAN $(O)' 77 ${q}if [ -d "$(O)" ]; then $(RMDIR) $(O); fi 78 79subdirs = . 80include $(ta-dev-kit-dir)/mk/subdir.mk 81 82#the build target is ta 83ifneq ($(binary),) 84vpath %.c $(ta-dev-kit-dir)/src 85srcs += user_ta_header.c 86endif 87 88include $(ta-dev-kit-dir)/mk/gcc.mk 89include $(ta-dev-kit-dir)/mk/compile.mk 90ifneq ($(binary),) 91include $(ta-dev-kit-dir)/mk/link.mk 92else 93ifneq ($(libname),) 94all: $(libname).a 95cleanfiles += $(libname).a 96 97$(libname).a: $(objs) 98 @echo ' AR $@' 99 $(q)rm -f $@ && $(AR$(sm)) rcs -o $@ $^ 100endif 101endif 102