blob: 5c2f11fca86cea74f5520c3992222396aa5e1bee [file] [log] [blame]
Etienne Carriere3ddc3622017-03-13 15:31:15 +01001ifeq ($O,)
2out-dir := $(CURDIR)/out
Pascal Brandc639ac82015-07-02 08:53:34 +02003else
Etienne Carriere3ddc3622017-03-13 15:31:15 +01004include scripts/common.mk
5out-dir := $(call strip-trailing-slashes-and-dots,$(O))
6ifeq ($(out-dir),)
7$(error invalid output directory (O=$(O)))
8endif
Pascal Brandc639ac82015-07-02 08:53:34 +02009endif
10
Pascal Brande0d18412015-10-13 12:53:58 +020011-include $(TA_DEV_KIT_DIR)/host_include/conf.mk
Ricardo Salvetiafb915b2021-04-27 17:34:06 -030012-include $(OPTEE_CLIENT_EXPORT)/include/optee_client_config.mk
Cedric Chaumont1390f3a2015-08-31 13:55:16 +020013
Pascal Brandc639ac82015-07-02 08:53:34 +020014ifneq ($V,1)
15 q := @
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020016 echo := @echo
Pascal Brandc639ac82015-07-02 08:53:34 +020017else
18 q :=
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020019 echo := @:
Pascal Brandc639ac82015-07-02 08:53:34 +020020endif
Etienne Carriere3ddc3622017-03-13 15:31:15 +010021# export 'q', used by sub-makefiles.
22export q
Pascal Brandc639ac82015-07-02 08:53:34 +020023
Andrew F. Davis04b03592016-08-08 15:05:04 -050024# If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE
25CROSS_COMPILE_HOST ?= $(CROSS_COMPILE)
26CROSS_COMPILE_TA ?= $(CROSS_COMPILE)
27
Pascal Brandc639ac82015-07-02 08:53:34 +020028.PHONY: all
Pascal Brande0d18412015-10-13 12:53:58 +020029ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030030all: xtest ta test_plugin
Pascal Brande0d18412015-10-13 12:53:58 +020031else
32all:
33 $(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false
34endif
Pascal Brandc639ac82015-07-02 08:53:34 +020035
36.PHONY: xtest
37xtest:
38 $(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
Sumit Garg0e009142015-11-04 15:34:07 -050039 --no-builtin-variables \
Etienne Carriere3ddc3622017-03-13 15:31:15 +010040 O=$(out-dir) \
Pascal Brandc639ac82015-07-02 08:53:34 +020041 $@
42
43.PHONY: ta
44ta:
45 $(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \
Etienne Carriere3ddc3622017-03-13 15:31:15 +010046 O=$(out-dir) \
Pascal Brandc639ac82015-07-02 08:53:34 +020047 $@
48
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030049.PHONY: test_plugin
50test_plugin:
51 $(q)$(MAKE) -C host/supp_plugin CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
Davidson Kd09b43b2022-08-08 10:37:02 +053052 --no-builtin-variables \
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030053 O=$(out-dir)
54
Pascal Brandc639ac82015-07-02 08:53:34 +020055.PHONY: clean
Pascal Brande0d18412015-10-13 12:53:58 +020056ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
Pascal Brandc639ac82015-07-02 08:53:34 +020057clean:
Etienne Carriere3ddc3622017-03-13 15:31:15 +010058 $(q)$(MAKE) -C host/xtest O=$(out-dir) $@
59 $(q)$(MAKE) -C ta O=$(out-dir) $@
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030060 $(q)$(MAKE) -C host/supp_plugin O=$(out-dir) $@
Pascal Brande0d18412015-10-13 12:53:58 +020061else
62clean:
63 $(q)echo "TA_DEV_KIT_DIR is not correctly defined"
64 $(q)echo "You can remove manually $(out-dir)"
65endif
Pascal Brandc639ac82015-07-02 08:53:34 +020066
Markus S. Wamsera00bfb82018-10-16 11:20:32 +020067.PHONY: checkpatch checkpatch-staging checkpatch-working
68checkpatch: checkpatch-staging checkpatch-working
69
70checkpatch-working:
71 @./scripts/checkpatch.sh
72
73checkpatch-staging:
74 @./scripts/checkpatch.sh --cached
75
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020076install:
77 $(echo) ' INSTALL ${DESTDIR}/lib/optee_armtz'
78 $(q)mkdir -p ${DESTDIR}/lib/optee_armtz
Clement Faure8a698ba2022-05-24 12:36:05 +020079 $(q)find $(out-dir) -name \*.ta -exec cp {} ${DESTDIR}/lib/optee_armtz \;
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020080 $(echo) ' INSTALL ${DESTDIR}/bin'
81 $(q)mkdir -p ${DESTDIR}/bin
Clement Faure8a698ba2022-05-24 12:36:05 +020082 $(q)cp $(out-dir)/xtest/xtest ${DESTDIR}/bin
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030083 $(echo) ' INSTALL ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)'
84 $(q)mkdir -p ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
85 $(q)cp $(out-dir)/supp_plugin/*.plugin ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
Jerome Forissier07566712020-06-17 17:55:00 +020086
87.PHONY: cscope
88cscope:
89 $(echo) ' CSCOPE .'
90 ${q}rm -f cscope.*
91 ${q}find $(PWD) -name "*.[ch]" -o -name "*.cpp" | grep -v /package/ > cscope.files
92 ${q}cscope -b -q -k