blob: f695aa3d803eac47442c8bb55623846b5472ada0 [file] [log] [blame]
Pascal Brandc639ac82015-07-02 08:53:34 +02001# Normally this makefile shouldn't be called directly and we expect the output
2# path to be on a certain location to fit together with the other OP-TEE
3# gits and helper scripts.
4ifeq ($O,)
5$(error output path should be specified when calling this makefile)
6endif
7
Cedric Chaumont1390f3a2015-08-31 13:55:16 +02008include $(TA_DEV_KIT_DIR)/host_include/conf.mk
9
Pascal Brandc639ac82015-07-02 08:53:34 +020010# By default we expect optee_client exported folder to be on a certain relative
11# path, but if the client specifies the OPTEE_CLIENT_EXPORT then that path will
12# be used instead.
13OPTEE_CLIENT_EXPORT ?= ../../../optee_client/out/export
14
Sumit Garg0e009142015-11-04 15:34:07 -050015CC ?= $(CROSS_COMPILE)gcc
16CPP ?= $(CROSS_COMPILE)cpp
17LD ?= $(CROSS_COMPILE)ld
18AR ?= $(CROSS_COMPILE)ar
19NM ?= $(CROSS_COMPILE)nm
20OBJCOPY ?= $(CROSS_COMPILE)objcopy
21OBJDUMP ?= $(CROSS_COMPILE)objdump
22READELF ?= $(CROSS_COMPILE)readelf
Pascal Brandc639ac82015-07-02 08:53:34 +020023
Jerome Forissierc6aac932015-09-24 17:45:08 -070024ifdef CFG_GP_PACKAGE_PATH
25GP := _gp
26endif
27
Pascal Brandc639ac82015-07-02 08:53:34 +020028srcs := xtest_1000.c \
29 xtest_4000.c \
30 xtest_5000.c \
31 xtest_6000.c \
Jerome Forissierc6aac932015-09-24 17:45:08 -070032 xtest_7000$(GP).c \
Pascal Brandc639ac82015-07-02 08:53:34 +020033 xtest_10000.c \
Cedric Chaumont1390f3a2015-08-31 13:55:16 +020034 xtest_20000.c \
James Kung35b352d2015-09-07 18:01:16 +080035 xtest_benchmark_1000.c \
Pascal Brandc639ac82015-07-02 08:53:34 +020036 xtest_helpers.c \
37 xtest_main.c \
38 xtest_test.c \
39 adbg/src/adbg_case.c \
40 adbg/src/adbg_enum.c \
41 adbg/src/adbg_expect.c \
42 adbg/src/adbg_log.c \
43 adbg/src/adbg_mts.c \
44 adbg/src/adbg_run.c \
45 adbg/src/adbg_util.c \
46 adbg/src/r_list_genutil.c \
47 adbg/src/security_utils_hex.c \
48 adbg/src/security_utils_mem.c
49
Jerome Forissiere3688342015-09-24 10:45:17 -070050ifdef CFG_GP_PACKAGE_PATH
51CFLAGS += -DWITH_GP_TESTS
Pascal Brand8a74e362015-09-10 12:41:52 +020052
Pascal Brandc639ac82015-07-02 08:53:34 +020053srcs += xtest_7500.c \
54 xtest_8000.c \
55 xtest_8500.c \
56 xtest_9000.c
57endif
58
59objs := $(patsubst %.c,$(O)/%.o, $(srcs))
60
61CFLAGS += -I./
62CFLAGS += -I./adbg/include
63CFLAGS += -I./xml/include
64
65CFLAGS += -I$(OPTEE_CLIENT_EXPORT)/include
66CFLAGS += -I$(TA_DEV_KIT_DIR)/host_include
67
68CFLAGS += -I../../ta/create_fail_test/include
69CFLAGS += -I../../ta/crypt/include
70CFLAGS += -I../../ta/enc_fs/include
71CFLAGS += -I../../ta/os_test/include
72CFLAGS += -I../../ta/rpc_test/include
73CFLAGS += -I../../ta/sims/include
74CFLAGS += -I../../ta/storage/include
James Kungdf1e6cf2015-09-14 22:42:24 +080075CFLAGS += -I../../ta/storage_benchmark/include
Jens Wiklanderac27ec12015-07-15 15:23:14 +020076CFLAGS += -I../../ta/concurrent/include
Jerome Forissiere3688342015-09-24 10:45:17 -070077ifdef CFG_GP_PACKAGE_PATH
Pascal Brandc639ac82015-07-02 08:53:34 +020078CFLAGS += -I../../ta/GP_TTA_Arithmetical
79CFLAGS += -I../../ta/GP_TTA_Crypto
80CFLAGS += -I../../ta/GP_TTA_DS
81CFLAGS += -I../../ta/GP_TTA_TCF
82CFLAGS += -I../../ta/GP_TTA_TCF_ICA
83CFLAGS += -I../../ta/GP_TTA_TCF_ICA2
84CFLAGS += -I../../ta/GP_TTA_TCF_MultipleInstanceTA
85CFLAGS += -I../../ta/GP_TTA_TCF_SingleInstanceTA
86CFLAGS += -I../../ta/GP_TTA_Time
87CFLAGS += -I../../ta/GP_TTA_answerErrorTo_Invoke
88CFLAGS += -I../../ta/GP_TTA_answerErrorTo_OpenSession
89CFLAGS += -I../../ta/GP_TTA_answerSuccessTo_OpenSession_Invoke
90CFLAGS += -I../../ta/GP_TTA_check_OpenSession_with_4_parameters
91CFLAGS += -I../../ta/GP_TTA_testingClientAPI
92
93# need more include: openssl
94CFLAGS += -Ifor_gp/include
95
96# need more libraries: openssl
Pascal Brandfd1596a2015-07-10 15:02:17 +020097ifeq ($(CFG_ARM32),y)
98LDFLAGS += ../lib/armv7/libcrypto.a
Pascal Brandc639ac82015-07-02 08:53:34 +020099else
Pascal Brandfd1596a2015-07-10 15:02:17 +0200100LDFLAGS += ../lib/armv8/libcrypto.a
Pascal Brandc639ac82015-07-02 08:53:34 +0200101endif
102
Pascal Brandc639ac82015-07-02 08:53:34 +0200103endif
104
105# FIXME: Check if and why we need this flag?
106CFLAGS += -DUSER_SPACE
Cedric Chaumont1390f3a2015-08-31 13:55:16 +0200107ifeq ($(CFG_ENC_FS),y)
108CFLAGS += -DCFG_ENC_FS
109endif
Pascal Brandc639ac82015-07-02 08:53:34 +0200110
Jerome Forissiere3688342015-09-24 10:45:17 -0700111ifndef CFG_GP_PACKAGE_PATH
Pascal Brandc639ac82015-07-02 08:53:34 +0200112CFLAGS += -Wall -Wcast-align -Werror \
113 -Werror-implicit-function-declaration -Wextra -Wfloat-equal \
114 -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self \
115 -Wmissing-declarations -Wmissing-format-attribute \
116 -Wmissing-include-dirs -Wmissing-noreturn \
117 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
118 -Wshadow -Wstrict-prototypes -Wswitch-default \
119 -Wwrite-strings \
120 -Wno-missing-field-initializers -Wno-format-zero-length
121endif
122
123LDFLAGS += -L$(OPTEE_CLIENT_EXPORT)/lib -lteec
124LDFLAGS += -lpthread
125
126.PHONY: all
127all: xtest
128
129xtest: $(objs)
130 @echo " LD $(O)/$@"
131 $(q)@$(CC) -o $(O)/$@ $+ $(LDFLAGS)
132
133$(O)/%.o: $(CURDIR)/%.c
134 $(q)mkdir -p $(O)/adbg/src
135 @echo ' CC $<'
136 $(q)$(CC) $(CFLAGS) -c $< -o $@
137
138.PHONY: clean
139clean:
140 @echo ' CLEAN $(O)'
141 $(q)rm -f $(O)/xtest
142 $(q)$(foreach obj,$(objs), rm -f $(obj))