blob: ef31a4b351666593e37bda774bc53cd03d9a5372 [file] [log] [blame]
Pascal Brandd6536da2015-09-01 10:38:43 +02001#
2# Common definition to all platforms
3#
4
Pascal Brand070d9552015-09-01 15:33:22 +02005BASH ?= bash
Pascal Brandd6536da2015-09-01 10:38:43 +02006ROOT ?= $(shell pwd)/..
7
8#
9# Must declare in platform specific makefiles:
10# - CROSS_COMPILE_NS_USER / CROSS_COMPILE_NS_KERNEL
11# - CROSS_COMPILE_S_USER / CROSS_COMPILE_S_KERNEL
12#
13# - OPTEE_OS_BIN
14# - OPTEE_OS_TA_DEV_KIT_DIR
15#
16
17LINUX_PATH ?= $(ROOT)/linux
18OPTEE_OS_PATH ?= $(ROOT)/optee_os
19OPTEE_CLIENT_PATH ?= $(ROOT)/optee_client
20OPTEE_CLIENT_EXPORT ?= $(OPTEE_CLIENT_PATH)/out/export
21OPTEE_LINUXDRIVER_PATH ?= $(ROOT)/optee_linuxdriver
22OPTEE_TEST_PATH ?= $(ROOT)/optee_test
23OPTEE_TEST_OUT_PATH ?= $(ROOT)/optee_test/out
24
25CCACHE ?= $(shell which ccache) # Don't remove this comment (space is needed)
26
27################################################################################
Pascal Brand070d9552015-09-01 15:33:22 +020028# defines, macros, configuration etc
29################################################################################
30define KERNEL_VERSION
Jerome Forissierae45fbf2015-09-04 09:40:17 +020031$(shell cd $(LINUX_PATH) && $(MAKE) --no-print-directory kernelversion)
Pascal Brand070d9552015-09-01 15:33:22 +020032endef
33DEBUG ?= 0
34
35################################################################################
Pascal Brand9a0f50f2015-09-08 15:34:17 +020036# EDK2 / Tianocore
37################################################################################
38# Make sure edksetup.sh only will be called once and that we don't rebuild
39# BaseTools again and again.
40$(EDK2_PATH)/Conf/target.txt:
41 set -e && cd $(EDK2_PATH) && $(BASH) edksetup.sh && \
42 $(MAKE) -j1 -C $(EDK2_PATH)/BaseTools
43
44edk2-common: $(EDK2_PATH)/Conf/target.txt
45 set -e && cd $(EDK2_PATH) && $(BASH) edksetup.sh && \
46 $(call edk2-call)
47
48edk2-clean-common:
49 set -e && cd $(EDK2_PATH) && $(BASH) edksetup.sh && \
50 $(call edk2-call) clean && \
51 $(MAKE) -j1 -C $(EDK2_PATH)/BaseTools clean && \
52 rm -f $(EDK2_PATH)/Conf/target.txt
53
54################################################################################
Pascal Brand070d9552015-09-01 15:33:22 +020055# OP-TEE
56################################################################################
Jerome Forissierae45fbf2015-09-04 09:40:17 +020057OPTEE_OS_COMMON_FLAGS ?= CROSS_COMPILE=$(CROSS_COMPILE_S_USER) \
58 CROSS_COMPILE_core=$(CROSS_COMPILE_S_KERNEL) \
59 CFG_TEE_CORE_LOG_LEVEL=3 \
60 DEBUG=$(DEBUG)
61
Pascal Brand070d9552015-09-01 15:33:22 +020062optee-os-common:
Jerome Forissierae45fbf2015-09-04 09:40:17 +020063 $(MAKE) -C $(OPTEE_OS_PATH) $(OPTEE_OS_COMMON_FLAGS)
64
65OPTEE_OS_CLEAN_COMMON_FLAGS ?= $(OPTEE_OS_COMMON_FLAGS)
Pascal Brand070d9552015-09-01 15:33:22 +020066
67optee-os-clean-common:
Jerome Forissierae45fbf2015-09-04 09:40:17 +020068 $(MAKE) -C $(OPTEE_OS_PATH) $(OPTEE_OS_CLEAN_COMMON_FLAGS) clean
69
70OPTEE_CLIENT_COMMON_FLAGS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_USER)
Pascal Brand070d9552015-09-01 15:33:22 +020071
72optee-client-common:
Jerome Forissierae45fbf2015-09-04 09:40:17 +020073 $(MAKE) -C $(OPTEE_CLIENT_PATH) $(OPTEE_CLIENT_COMMON_FLAGS)
74
75OPTEE_CLIENT_CLEAN_COMMON_FLAGS ?= $(OPTEE_CLIENT_COMMON_FLAGS)
Pascal Brand070d9552015-09-01 15:33:22 +020076
77optee-client-clean-common:
Jerome Forissierae45fbf2015-09-04 09:40:17 +020078 $(MAKE) -C $(OPTEE_CLIENT_PATH) $(OPTEE_CLIENT_CLEAN_COMMON_FLAGS) \
79 clean
80
81OPTEE_LINUXDRIVER_COMMON_FLAGS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_KERNEL) \
82 LOCALVERSION= M=$(OPTEE_LINUXDRIVER_PATH)
Pascal Brand070d9552015-09-01 15:33:22 +020083
84optee-linuxdriver-common: linux
Jerome Forissierae45fbf2015-09-04 09:40:17 +020085 $(MAKE) -C $(LINUX_PATH) $(OPTEE_LINUXDRIVER_COMMON_FLAGS) modules
86
87OPTEE_LINUXDRIVER_CLEAN_COMMON_FLAGS ?= $(OPTEE_LINUXDRIVER_COMMON_FLAGS)
Pascal Brand070d9552015-09-01 15:33:22 +020088
89optee-linuxdriver-clean-common:
Jerome Forissierae45fbf2015-09-04 09:40:17 +020090 $(MAKE) -C $(LINUX_PATH) $(OPTEE_LINUXDRIVER_CLEAN_COMMON_FLAGS) clean
Pascal Brand070d9552015-09-01 15:33:22 +020091
92################################################################################
Pascal Brandd6536da2015-09-01 10:38:43 +020093# xtest / optee_test
94################################################################################
Jerome Forissierae45fbf2015-09-04 09:40:17 +020095XTEST_COMMON_FLAGS ?= CROSS_COMPILE_HOST=$(CROSS_COMPILE_NS_USER)\
96 CROSS_COMPILE_TA=$(CROSS_COMPILE_S_USER) \
97 TA_DEV_KIT_DIR=$(OPTEE_OS_TA_DEV_KIT_DIR) \
98 CFG_DEV_PATH=$(ROOT) \
99 O=$(OPTEE_TEST_OUT_PATH)
100
Pascal Brandd6536da2015-09-01 10:38:43 +0200101xtest-common: optee-os optee-client
102 @if [ -d "$(OPTEE_TEST_PATH)" ]; then \
Jerome Forissierae45fbf2015-09-04 09:40:17 +0200103 $(MAKE) -C $(OPTEE_TEST_PATH) $(XTEST_COMMON_FLAGS); \
Pascal Brandd6536da2015-09-01 10:38:43 +0200104 fi
105
Jerome Forissierae45fbf2015-09-04 09:40:17 +0200106XTEST_CLEAN_COMMON_FLAGS ?= $(XTEST_COMMON_FLAGS)
107
Pascal Brandd6536da2015-09-01 10:38:43 +0200108xtest-clean-common:
109 @if [ -d "$(OPTEE_TEST_PATH)" ]; then \
Jerome Forissierae45fbf2015-09-04 09:40:17 +0200110 $(MAKE) -C $(OPTEE_TEST_PATH) $(XTEST_CLEAN_COMMON_FLAGS) clean; \
Pascal Brandd6536da2015-09-01 10:38:43 +0200111 fi
112
Jerome Forissierae45fbf2015-09-04 09:40:17 +0200113XTEST_PATCH_COMMON_FLAGS ?= $(XTEST_COMMON_FLAGS) \
114 CFG_OPTEE_TEST_PATH=$(OPTEE_TEST_PATH)
115
Pascal Brandd6536da2015-09-01 10:38:43 +0200116xtest-patch-common: optee-os optee-client
117 @if [ -d "$(OPTEE_TEST_PATH)" ]; then \
Jerome Forissierae45fbf2015-09-04 09:40:17 +0200118 $(MAKE) -C $(OPTEE_TEST_PATH) $(XTEST_PATCH_COMMON_FLAGS) \
119 patch; \
Pascal Brandd6536da2015-09-01 10:38:43 +0200120 fi