blob: 08e72e8248a12db5db0086470e479acc051d61fc [file] [log] [blame]
################################################################################
# Android optee-client, libckteec and optee-supplicant makefile #
################################################################################
LOCAL_PATH := $(call my-dir)
# 3 (debug) is too noisy
CFG_TEE_CLIENT_LOG_LEVEL ?= 2
CFG_TEE_SUPP_LOG_LEVEL ?= 2
# Define Android-specific configuration before including config.mk
CFG_TEE_CLIENT_LOAD_PATH ?= /vendor/lib
TEEC_TEST_LOAD_PATH ?= /data/vendor/tee
CFG_TEE_FS_PARENT_PATH ?= /data/vendor/tee
CFG_TEE_SUPP_PLUGINS ?= y
ifneq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
CFG_TEE_PLUGIN_LOAD_PATH ?= /vendor/lib64/tee-supplicant/plugins/
else
CFG_TEE_PLUGIN_LOAD_PATH ?= /vendor/lib/tee-supplicant/plugins/
endif
$(info CFG_TEE_PLUGIN_LOAD_PATH = ${CFG_TEE_PLUGIN_LOAD_PATH})
################################################################################
# Include optee-client common config and flags #
################################################################################
include $(LOCAL_PATH)/config.mk
include $(LOCAL_PATH)/android_flags.mk
optee_CFLAGS = $(CFLAGS)
################################################################################
# Build libteec.so - TEE (Trusted Execution Environment) shared library #
################################################################################
include $(CLEAR_VARS)
LOCAL_CFLAGS += $(optee_CFLAGS)
ifneq ($(CFG_TEE_CLIENT_LOG_FILE),)
LOCAL_CFLAGS += -DTEEC_LOG_FILE=\"$(CFG_TEE_CLIENT_LOG_FILE)\"
endif
LOCAL_CFLAGS += -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL)
LOCAL_CFLAGS += -DBINARY_PREFIX=\"TEEC\"
LOCAL_SRC_FILES := libteec/src/tee_client_api.c \
libteec/src/teec_trace.c
ifeq ($(CFG_TEE_BENCHMARK),y)
LOCAL_CFLAGS += -DCFG_TEE_BENCHMARK
LOCAL_SRC_FILES += teec_benchmark.c
endif
LOCAL_C_INCLUDES := $(LOCAL_PATH)/libteec/include
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libteec
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true
# Build the 32-bit and 64-bit versions.
LOCAL_MULTILIB := both
LOCAL_MODULE_TARGET_ARCH := arm arm64
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libteec/include
include $(BUILD_SHARED_LIBRARY)
################################################################################
# Build libckteec.so #
################################################################################
include $(CLEAR_VARS)
LOCAL_CFLAGS += $(optee_CFLAGS)
LOCAL_SRC_FILES := libckteec/src/pkcs11_api.c \
libckteec/src/ck_debug.c \
libckteec/src/ck_helpers.c \
libckteec/src/invoke_ta.c \
libckteec/src/pkcs11_processing.c \
libckteec/src/pkcs11_token.c \
libckteec/src/serializer.c \
libckteec/src/serialize_ck.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/libteec/include \
$(LOCAL_PATH)/libckteec/include
LOCAL_SHARED_LIBRARIES := libteec
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libckteec
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true
# Build the 32-bit and 64-bit versions.
LOCAL_MULTILIB := both
LOCAL_MODULE_TARGET_ARCH := arm arm64
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libckteec/include
include $(BUILD_SHARED_LIBRARY)
################################################################################
# Build TEE Supplicant #
################################################################################
include $(LOCAL_PATH)/tee-supplicant/tee_supplicant_android.mk