blob: 36ad8caf6ad1c226fbfd34823c3982f4633dcabf [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)" \
52 O=$(out-dir)
53
Pascal Brandc639ac82015-07-02 08:53:34 +020054.PHONY: clean
Pascal Brande0d18412015-10-13 12:53:58 +020055ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
Pascal Brandc639ac82015-07-02 08:53:34 +020056clean:
Etienne Carriere3ddc3622017-03-13 15:31:15 +010057 $(q)$(MAKE) -C host/xtest O=$(out-dir) $@
58 $(q)$(MAKE) -C ta O=$(out-dir) $@
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030059 $(q)$(MAKE) -C host/supp_plugin O=$(out-dir) $@
Pascal Brande0d18412015-10-13 12:53:58 +020060else
61clean:
62 $(q)echo "TA_DEV_KIT_DIR is not correctly defined"
63 $(q)echo "You can remove manually $(out-dir)"
64endif
Pascal Brandc639ac82015-07-02 08:53:34 +020065
Markus S. Wamsera00bfb82018-10-16 11:20:32 +020066.PHONY: checkpatch checkpatch-staging checkpatch-working
67checkpatch: checkpatch-staging checkpatch-working
68
69checkpatch-working:
70 @./scripts/checkpatch.sh
71
72checkpatch-staging:
73 @./scripts/checkpatch.sh --cached
74
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020075install:
76 $(echo) ' INSTALL ${DESTDIR}/lib/optee_armtz'
77 $(q)mkdir -p ${DESTDIR}/lib/optee_armtz
78 $(q)find $(out-dir) -name \*.ta -exec cp -a {} ${DESTDIR}/lib/optee_armtz \;
79 $(echo) ' INSTALL ${DESTDIR}/bin'
80 $(q)mkdir -p ${DESTDIR}/bin
81 $(q)cp -a $(out-dir)/xtest/xtest ${DESTDIR}/bin
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030082 $(echo) ' INSTALL ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)'
83 $(q)mkdir -p ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
84 $(q)cp $(out-dir)/supp_plugin/*.plugin ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
Jerome Forissier07566712020-06-17 17:55:00 +020085
86.PHONY: cscope
87cscope:
88 $(echo) ' CSCOPE .'
89 ${q}rm -f cscope.*
90 ${q}find $(PWD) -name "*.[ch]" -o -name "*.cpp" | grep -v /package/ > cscope.files
91 ${q}cscope -b -q -k