blob: 9892064dadf5cc56928c7273373555fcdc74947b [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
Clement Faurefd962022023-01-04 14:59:06 +010011bindir ?= /bin
12libdir ?= /lib
13
Pascal Brande0d18412015-10-13 12:53:58 +020014-include $(TA_DEV_KIT_DIR)/host_include/conf.mk
Ricardo Salvetiafb915b2021-04-27 17:34:06 -030015-include $(OPTEE_CLIENT_EXPORT)/include/optee_client_config.mk
Cedric Chaumont1390f3a2015-08-31 13:55:16 +020016
Pascal Brandc639ac82015-07-02 08:53:34 +020017ifneq ($V,1)
18 q := @
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020019 echo := @echo
Pascal Brandc639ac82015-07-02 08:53:34 +020020else
21 q :=
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020022 echo := @:
Pascal Brandc639ac82015-07-02 08:53:34 +020023endif
Etienne Carriere3ddc3622017-03-13 15:31:15 +010024# export 'q', used by sub-makefiles.
25export q
Pascal Brandc639ac82015-07-02 08:53:34 +020026
Andrew F. Davis04b03592016-08-08 15:05:04 -050027# If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE
28CROSS_COMPILE_HOST ?= $(CROSS_COMPILE)
29CROSS_COMPILE_TA ?= $(CROSS_COMPILE)
30
Pascal Brandc639ac82015-07-02 08:53:34 +020031.PHONY: all
Pascal Brande0d18412015-10-13 12:53:58 +020032ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030033all: xtest ta test_plugin
Pascal Brande0d18412015-10-13 12:53:58 +020034else
35all:
36 $(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false
37endif
Pascal Brandc639ac82015-07-02 08:53:34 +020038
39.PHONY: xtest
40xtest:
41 $(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
Sumit Garg0e009142015-11-04 15:34:07 -050042 --no-builtin-variables \
Etienne Carriere3ddc3622017-03-13 15:31:15 +010043 O=$(out-dir) \
Pascal Brandc639ac82015-07-02 08:53:34 +020044 $@
45
46.PHONY: ta
47ta:
48 $(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \
Etienne Carriere3ddc3622017-03-13 15:31:15 +010049 O=$(out-dir) \
Pascal Brandc639ac82015-07-02 08:53:34 +020050 $@
51
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030052.PHONY: test_plugin
53test_plugin:
54 $(q)$(MAKE) -C host/supp_plugin CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
Davidson Kd09b43b2022-08-08 10:37:02 +053055 --no-builtin-variables \
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030056 O=$(out-dir)
57
Pascal Brandc639ac82015-07-02 08:53:34 +020058.PHONY: clean
Pascal Brande0d18412015-10-13 12:53:58 +020059ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
Pascal Brandc639ac82015-07-02 08:53:34 +020060clean:
Etienne Carriere3ddc3622017-03-13 15:31:15 +010061 $(q)$(MAKE) -C host/xtest O=$(out-dir) $@
62 $(q)$(MAKE) -C ta O=$(out-dir) $@
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030063 $(q)$(MAKE) -C host/supp_plugin O=$(out-dir) $@
Pascal Brande0d18412015-10-13 12:53:58 +020064else
65clean:
66 $(q)echo "TA_DEV_KIT_DIR is not correctly defined"
67 $(q)echo "You can remove manually $(out-dir)"
68endif
Pascal Brandc639ac82015-07-02 08:53:34 +020069
Markus S. Wamsera00bfb82018-10-16 11:20:32 +020070.PHONY: checkpatch checkpatch-staging checkpatch-working
71checkpatch: checkpatch-staging checkpatch-working
72
73checkpatch-working:
74 @./scripts/checkpatch.sh
75
76checkpatch-staging:
77 @./scripts/checkpatch.sh --cached
78
Jerome Forissier2a1ef2c2016-06-15 11:07:27 +020079install:
Clement Faurefd962022023-01-04 14:59:06 +010080 $(echo) ' INSTALL ${DESTDIR}${libdir}/optee_armtz'
81 $(q)mkdir -p ${DESTDIR}${libdir}/optee_armtz
82 $(q)find $(out-dir) -name \*.ta -exec cp {} ${DESTDIR}${libdir}/optee_armtz \;
83 $(echo) ' INSTALL ${DESTDIR}${bindir}'
84 $(q)mkdir -p ${DESTDIR}${bindir}
85 $(q)cp $(out-dir)/xtest/xtest ${DESTDIR}${bindir}
Aleksandr Anisimov01f6f062021-01-19 11:02:25 +030086 $(echo) ' INSTALL ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)'
87 $(q)mkdir -p ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
88 $(q)cp $(out-dir)/supp_plugin/*.plugin ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
Jerome Forissier07566712020-06-17 17:55:00 +020089
90.PHONY: cscope
91cscope:
92 $(echo) ' CSCOPE .'
93 ${q}rm -f cscope.*
94 ${q}find $(PWD) -name "*.[ch]" -o -name "*.cpp" | grep -v /package/ > cscope.files
95 ${q}cscope -b -q -k