summaryrefslogtreecommitdiff
path: root/mk/aosp_optee.mk
diff options
context:
space:
mode:
authorr.tyminski <r.tyminski@partner.samsung.com>2017-05-29 11:42:10 +0200
committerr.tyminski <r.tyminski@partner.samsung.com>2017-05-29 11:49:50 +0200
commitf9a43781767007462965b21f3f518c4cfc0744c7 (patch)
tree201509439b1d9798256227794dae6774345adf43 /mk/aosp_optee.mk
parent1fed20f5471aa0dad5e4b4f79d1f2843ac88734f (diff)
downloadtef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.tar.gz
tef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.tar.bz2
tef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.zip
Initial commit with upstream sources
Change-Id: Ie9460111f21fc955102fd8732a0173b2d0499a4a
Diffstat (limited to 'mk/aosp_optee.mk')
-rw-r--r--mk/aosp_optee.mk90
1 files changed, 90 insertions, 0 deletions
diff --git a/mk/aosp_optee.mk b/mk/aosp_optee.mk
new file mode 100644
index 0000000..8017759
--- /dev/null
+++ b/mk/aosp_optee.mk
@@ -0,0 +1,90 @@
+##########################################################
+## Common mk file used for Android to compile and ##
+## integrate OP-TEE related components ##
+## Following flags need to be defined in device.mk ##
+## OPTEE_OS_DIR ##
+## OPTEE_TA_TARGETS ##
+## OPTEE_CFG_ARM64_CORE ##
+## OPTEE_PLATFORM ##
+## OPTEE_PLATFORM_FLAVOR ##
+## And BUILD_OPTEE_MK needs to be defined in device.mk ##
+## to point to this file ##
+## ##
+## local_module needs to be defined before including ##
+## this file to build TAs ##
+## ##
+##########################################################
+
+##########################################################
+## define common variables, like TA_DEV_KIT_DIR ##
+##########################################################
+OPTEE_OUT_DIR ?= $(PRODUCT_OUT)/optee
+OPTEE_TA_OUT_DIR ?= $(OPTEE_OUT_DIR)/ta
+# Set so that OP-TEE clients can find the installed dev-kit, which
+# depends on platform and its OP-TEE word-size.
+OPTEE_OS_OUT_DIR ?= $(OPTEE_OUT_DIR)/arm-plat-$(OPTEE_PLATFORM)
+TA_DEV_KIT_DIR := $(OPTEE_OS_OUT_DIR)/export-${OPTEE_TA_TARGETS}
+
+TOP_ROOT_ABS := $(realpath $(TOP))
+CROSS_COMPILE64 := $(TOP_ROOT_ABS)/$(TARGET_TOOLS_PREFIX)
+CROSS_COMPILE_LINE := CROSS_COMPILE64="$(CROSS_COMPILE64)"
+ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
+CROSS_COMPILE32 := $(TOP_ROOT_ABS)/$($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)
+CROSS_COMPILE_LINE += CROSS_COMPILE32="$(CROSS_COMPILE32)"
+endif
+
+##########################################################
+## define BUILD_OPTEE_OS target, add condition check ##
+## to make it only be defined once even though ##
+## this file might be included multiple times ##
+##########################################################
+ifneq (true,$(BUILD_OPTEE_OS_DEFINED))
+BUILD_OPTEE_OS_DEFINED := true
+
+.PHONY: BUILD_OPTEE_OS
+BUILD_OPTEE_OS:
+ @echo "Start building optee_os..."
+ $(MAKE) -C $(TOP_ROOT_ABS)/$(OPTEE_OS_DIR) \
+ O=$(TOP_ROOT_ABS)/$(OPTEE_OS_OUT_DIR) \
+ ta-targets=$(OPTEE_TA_TARGETS) \
+ CFG_ARM64_core=$(OPTEE_CFG_ARM64_CORE) \
+ PLATFORM=$(OPTEE_PLATFORM) \
+ PLATFORM_FLAVOR=$(OPTEE_PLATFORM_FLAVOR) \
+ $(CROSS_COMPILE_LINE)
+ @echo "Finished building optee_os..."
+
+endif
+
+##########################################################
+## Lines for building TAs automatically ##
+## will only be included in Android.mk for TAs ##
+## local_module: ##
+## need to be defined before include for this ##
+##########################################################
+ifneq (false,$(INCLUDE_FOR_BUILD_TA))
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := $(local_module)
+LOCAL_PREBUILT_MODULE_FILE := $(OPTEE_TA_OUT_DIR)/$(LOCAL_MODULE)
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/optee_armtz
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_TAGS := optional
+
+TA_TMP_DIR := $(subst /,_,$(LOCAL_PATH))
+TA_TMP_FILE := $(OPTEE_TA_OUT_DIR)/$(TA_TMP_DIR)/$(LOCAL_MODULE)
+$(LOCAL_PREBUILT_MODULE_FILE): $(TA_TMP_FILE)
+ @mkdir -p $(dir $@)
+ cp -uvf $< $@
+
+$(TA_TMP_FILE): PRIVATE_TA_SRC_DIR := $(LOCAL_PATH)
+$(TA_TMP_FILE): PRIVATE_TA_TMP_FILE := $(TA_TMP_FILE)
+$(TA_TMP_FILE): PRIVATE_TA_TMP_DIR := $(TA_TMP_DIR)
+$(TA_TMP_FILE): BUILD_OPTEE_OS
+ @echo "Start building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..."
+ $(MAKE) -C $(TOP_ROOT_ABS)/$(PRIVATE_TA_SRC_DIR) O=$(TOP_ROOT_ABS)/$(OPTEE_TA_OUT_DIR)/$(PRIVATE_TA_TMP_DIR) \
+ TA_DEV_KIT_DIR=$(TOP_ROOT_ABS)/$(TA_DEV_KIT_DIR) \
+ $(CROSS_COMPILE_LINE)
+ @echo "Finished building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..."
+
+include $(BUILD_PREBUILT)
+endif