Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 1 | ifeq ($O,) |
| 2 | out-dir := $(CURDIR)/out |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 3 | else |
Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 4 | include scripts/common.mk |
| 5 | out-dir := $(call strip-trailing-slashes-and-dots,$(O)) |
| 6 | ifeq ($(out-dir),) |
| 7 | $(error invalid output directory (O=$(O))) |
| 8 | endif |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 9 | endif |
| 10 | |
Clement Faure | fd96202 | 2023-01-04 14:59:06 +0100 | [diff] [blame] | 11 | bindir ?= /bin |
| 12 | libdir ?= /lib |
| 13 | |
Pascal Brand | e0d1841 | 2015-10-13 12:53:58 +0200 | [diff] [blame] | 14 | -include $(TA_DEV_KIT_DIR)/host_include/conf.mk |
Ricardo Salveti | afb915b | 2021-04-27 17:34:06 -0300 | [diff] [blame] | 15 | -include $(OPTEE_CLIENT_EXPORT)/include/optee_client_config.mk |
Cedric Chaumont | 1390f3a | 2015-08-31 13:55:16 +0200 | [diff] [blame] | 16 | |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 17 | ifneq ($V,1) |
| 18 | q := @ |
Jerome Forissier | 2a1ef2c | 2016-06-15 11:07:27 +0200 | [diff] [blame] | 19 | echo := @echo |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 20 | else |
| 21 | q := |
Jerome Forissier | 2a1ef2c | 2016-06-15 11:07:27 +0200 | [diff] [blame] | 22 | echo := @: |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 23 | endif |
Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 24 | # export 'q', used by sub-makefiles. |
| 25 | export q |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 26 | |
Andrew F. Davis | 04b0359 | 2016-08-08 15:05:04 -0500 | [diff] [blame] | 27 | # If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE |
| 28 | CROSS_COMPILE_HOST ?= $(CROSS_COMPILE) |
| 29 | CROSS_COMPILE_TA ?= $(CROSS_COMPILE) |
| 30 | |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 31 | .PHONY: all |
Pascal Brand | e0d1841 | 2015-10-13 12:53:58 +0200 | [diff] [blame] | 32 | ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),) |
Aleksandr Anisimov | 01f6f06 | 2021-01-19 11:02:25 +0300 | [diff] [blame] | 33 | all: xtest ta test_plugin |
Pascal Brand | e0d1841 | 2015-10-13 12:53:58 +0200 | [diff] [blame] | 34 | else |
| 35 | all: |
| 36 | $(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false |
| 37 | endif |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 38 | |
| 39 | .PHONY: xtest |
| 40 | xtest: |
| 41 | $(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \ |
Sumit Garg | 0e00914 | 2015-11-04 15:34:07 -0500 | [diff] [blame] | 42 | --no-builtin-variables \ |
Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 43 | O=$(out-dir) \ |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 44 | $@ |
| 45 | |
| 46 | .PHONY: ta |
| 47 | ta: |
| 48 | $(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \ |
Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 49 | O=$(out-dir) \ |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 50 | $@ |
| 51 | |
Aleksandr Anisimov | 01f6f06 | 2021-01-19 11:02:25 +0300 | [diff] [blame] | 52 | .PHONY: test_plugin |
| 53 | test_plugin: |
| 54 | $(q)$(MAKE) -C host/supp_plugin CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \ |
Davidson K | d09b43b | 2022-08-08 10:37:02 +0530 | [diff] [blame] | 55 | --no-builtin-variables \ |
Aleksandr Anisimov | 01f6f06 | 2021-01-19 11:02:25 +0300 | [diff] [blame] | 56 | O=$(out-dir) |
| 57 | |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 58 | .PHONY: clean |
Pascal Brand | e0d1841 | 2015-10-13 12:53:58 +0200 | [diff] [blame] | 59 | ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),) |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 60 | clean: |
Etienne Carriere | 3ddc362 | 2017-03-13 15:31:15 +0100 | [diff] [blame] | 61 | $(q)$(MAKE) -C host/xtest O=$(out-dir) $@ |
| 62 | $(q)$(MAKE) -C ta O=$(out-dir) $@ |
Aleksandr Anisimov | 01f6f06 | 2021-01-19 11:02:25 +0300 | [diff] [blame] | 63 | $(q)$(MAKE) -C host/supp_plugin O=$(out-dir) $@ |
Pascal Brand | e0d1841 | 2015-10-13 12:53:58 +0200 | [diff] [blame] | 64 | else |
| 65 | clean: |
| 66 | $(q)echo "TA_DEV_KIT_DIR is not correctly defined" |
| 67 | $(q)echo "You can remove manually $(out-dir)" |
| 68 | endif |
Pascal Brand | c639ac8 | 2015-07-02 08:53:34 +0200 | [diff] [blame] | 69 | |
Markus S. Wamser | a00bfb8 | 2018-10-16 11:20:32 +0200 | [diff] [blame] | 70 | .PHONY: checkpatch checkpatch-staging checkpatch-working |
| 71 | checkpatch: checkpatch-staging checkpatch-working |
| 72 | |
| 73 | checkpatch-working: |
| 74 | @./scripts/checkpatch.sh |
| 75 | |
| 76 | checkpatch-staging: |
| 77 | @./scripts/checkpatch.sh --cached |
| 78 | |
Jerome Forissier | 2a1ef2c | 2016-06-15 11:07:27 +0200 | [diff] [blame] | 79 | install: |
Clement Faure | fd96202 | 2023-01-04 14:59:06 +0100 | [diff] [blame] | 80 | $(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 Anisimov | 01f6f06 | 2021-01-19 11:02:25 +0300 | [diff] [blame] | 86 | $(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 Forissier | 0756671 | 2020-06-17 17:55:00 +0200 | [diff] [blame] | 89 | |
| 90 | .PHONY: cscope |
| 91 | cscope: |
| 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 |