blob: ca08a807af96bfe5d59beb8b4a53d7d6b2eca812 [file] [log] [blame]
sunny1ebcb5a2014-12-12 16:09:45 +08001################################################################################
Victor Chong0bd202f2021-01-14 18:11:43 +00002# Android optee-client, libckteec and optee-supplicant makefile #
sunny1ebcb5a2014-12-12 16:09:45 +08003################################################################################
4LOCAL_PATH := $(call my-dir)
5
Victor Chong649507c2021-05-08 18:24:38 +01006# 3 (debug) is too noisy
7CFG_TEE_CLIENT_LOG_LEVEL ?= 2
8CFG_TEE_SUPP_LOG_LEVEL ?= 2
9
Victor Chong5ade8102021-05-01 17:49:19 +010010# Define Android-specific configuration before including config.mk
Yongqin Liubd0e7c82018-06-21 22:21:09 +080011CFG_TEE_CLIENT_LOAD_PATH ?= /vendor/lib
Yongqin Liubd0e7c82018-06-21 22:21:09 +080012TEEC_TEST_LOAD_PATH ?= /data/vendor/tee
Victor Chong83c7bcf2019-05-10 17:40:15 +090013CFG_TEE_FS_PARENT_PATH ?= /data/vendor/tee
Etienne Carrieref5911432021-08-04 13:17:52 +020014CFG_TEE_SUPP_PLUGINS ?= y
Victor Chong5ade8102021-05-01 17:49:19 +010015ifneq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
16CFG_TEE_PLUGIN_LOAD_PATH ?= /vendor/lib64/tee-supplicant/plugins/
17else
18CFG_TEE_PLUGIN_LOAD_PATH ?= /vendor/lib/tee-supplicant/plugins/
19endif
20
21$(info CFG_TEE_PLUGIN_LOAD_PATH = ${CFG_TEE_PLUGIN_LOAD_PATH})
22
Yongqin Liu9a631352018-03-29 16:00:11 +080023
sunny1ebcb5a2014-12-12 16:09:45 +080024################################################################################
25# Include optee-client common config and flags #
26################################################################################
27include $(LOCAL_PATH)/config.mk
Zoltan Kuscsik3b9c1b22016-03-31 14:17:51 +020028include $(LOCAL_PATH)/android_flags.mk
29
30optee_CFLAGS = $(CFLAGS)
sunny1ebcb5a2014-12-12 16:09:45 +080031
32################################################################################
33# Build libteec.so - TEE (Trusted Execution Environment) shared library #
34################################################################################
35include $(CLEAR_VARS)
Zoltan Kuscsik3b9c1b22016-03-31 14:17:51 +020036LOCAL_CFLAGS += $(optee_CFLAGS)
sunny1ebcb5a2014-12-12 16:09:45 +080037
Ruslan Piasetskyi0b7aa7d2017-03-23 20:56:09 +020038ifneq ($(CFG_TEE_CLIENT_LOG_FILE),)
Yongqin Liu9a631352018-03-29 16:00:11 +080039LOCAL_CFLAGS += -DTEEC_LOG_FILE=\"$(CFG_TEE_CLIENT_LOG_FILE)\"
sunny1ebcb5a2014-12-12 16:09:45 +080040endif
41
42LOCAL_CFLAGS += -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL)
43LOCAL_CFLAGS += -DBINARY_PREFIX=\"TEEC\"
44
Victor Chong6d968062021-01-14 18:08:08 +000045LOCAL_SRC_FILES := libteec/src/tee_client_api.c \
Jerome Forissier5883a752017-06-01 14:53:52 +020046 libteec/src/teec_trace.c
47ifeq ($(CFG_TEE_BENCHMARK),y)
48LOCAL_CFLAGS += -DCFG_TEE_BENCHMARK
49LOCAL_SRC_FILES += teec_benchmark.c
50endif
sunny1ebcb5a2014-12-12 16:09:45 +080051
52LOCAL_C_INCLUDES := $(LOCAL_PATH)/public \
Zoltan Kuscsikb4ce4442016-03-31 13:52:37 +020053 $(LOCAL_PATH)/libteec/include \
sunny1ebcb5a2014-12-12 16:09:45 +080054
55LOCAL_PRELINK_MODULE := false
56LOCAL_MODULE := libteec
Yongqin Liubd0e7c82018-06-21 22:21:09 +080057
sunny1ebcb5a2014-12-12 16:09:45 +080058LOCAL_MODULE_TAGS := optional
Yongqin Liubd0e7c82018-06-21 22:21:09 +080059LOCAL_VENDOR_MODULE := true
Zoltan Kuscsik12dcfbe2016-03-31 13:54:39 +020060
Victor Chongf57695a2021-01-14 18:06:03 +000061# Build the 32-bit and 64-bit versions.
62LOCAL_MULTILIB := both
63LOCAL_MODULE_TARGET_ARCH := arm arm64
64
Zoltan Kuscsik12dcfbe2016-03-31 13:54:39 +020065LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/public
66
sunny1ebcb5a2014-12-12 16:09:45 +080067include $(BUILD_SHARED_LIBRARY)
68
Victor Chong6d968062021-01-14 18:08:08 +000069################################################################################
Victor Chong0bd202f2021-01-14 18:11:43 +000070# Build libckteec.so #
71################################################################################
72include $(CLEAR_VARS)
73
74LOCAL_CFLAGS += $(optee_CFLAGS)
75
76LOCAL_SRC_FILES := libckteec/src/pkcs11_api.c \
77 libckteec/src/ck_debug.c \
78 libckteec/src/ck_helpers.c \
79 libckteec/src/invoke_ta.c \
80 libckteec/src/pkcs11_processing.c \
81 libckteec/src/pkcs11_token.c \
82 libckteec/src/serializer.c \
83 libckteec/src/serialize_ck.c
84
85LOCAL_C_INCLUDES := $(LOCAL_PATH)/public \
86 $(LOCAL_PATH)/libckteec/include
87
88LOCAL_SHARED_LIBRARIES := libteec
89
90LOCAL_PRELINK_MODULE := false
91LOCAL_MODULE := libckteec
92
93LOCAL_MODULE_TAGS := optional
94LOCAL_VENDOR_MODULE := true
95
96# Build the 32-bit and 64-bit versions.
97LOCAL_MULTILIB := both
98LOCAL_MODULE_TARGET_ARCH := arm arm64
99
100LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libckteec/include
101
102include $(BUILD_SHARED_LIBRARY)
103
104################################################################################
Victor Chong6d968062021-01-14 18:08:08 +0000105# Build TEE Supplicant #
106################################################################################
Zoltan Kuscsik3b9c1b22016-03-31 14:17:51 +0200107include $(LOCAL_PATH)/tee-supplicant/tee_supplicant_android.mk