1LOCAL_PATH := $(call my-dir) 2 3## include variants like TA_DEV_KIT_DIR 4## and OPTEE_BIN 5INCLUDE_FOR_BUILD_TA := false 6include $(BUILD_OPTEE_MK) 7INCLUDE_FOR_BUILD_TA := 8 9VERSION = $(shell git describe --always --dirty=-dev 2>/dev/null || echo Unknown) 10 11# TA_DEV_KIT_DIR must be set to non-empty value to 12# avoid the Android build scripts complaining about 13# includes pointing outside the Android source tree. 14# This var is expected to be set when OPTEE OS built. 15# We set the default value to an invalid path. 16TA_DEV_KIT_DIR ?= ../invalid_include_path 17 18-include $(TA_DEV_KIT_DIR)/host_include/conf.mk 19include $(LOCAL_PATH)/scripts/common.mk 20 21################################################################################ 22# Build xtest # 23################################################################################ 24include $(CLEAR_VARS) 25LOCAL_MODULE := xtest 26LOCAL_VENDOR_MODULE := true 27LOCAL_SHARED_LIBRARIES := libteec 28 29TA_DIR ?= /vendor/lib/optee_armtz 30 31srcs := regression_1000.c 32 33ifeq ($(CFG_GP_SOCKETS),y) 34srcs += regression_2000.c \ 35 sock_server.c \ 36 rand_stream.c 37endif 38 39srcs += adbg/src/adbg_case.c \ 40 adbg/src/adbg_enum.c \ 41 adbg/src/adbg_expect.c \ 42 adbg/src/adbg_log.c \ 43 adbg/src/adbg_run.c \ 44 adbg/src/security_utils_hex.c \ 45 aes_perf.c \ 46 benchmark_1000.c \ 47 benchmark_2000.c \ 48 regression_4000.c \ 49 regression_4100.c \ 50 regression_5000.c \ 51 regression_6000.c \ 52 regression_8000.c \ 53 regression_8100.c \ 54 sha_perf.c \ 55 stats.c \ 56 xtest_helpers.c \ 57 xtest_main.c \ 58 xtest_test.c \ 59 xtest_uuid_helpers.c 60 61ifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y) 62srcs += install_ta.c 63endif 64 65ifeq ($(CFG_SECURE_DATA_PATH),y) 66srcs += sdp_basic.c 67endif 68 69ifeq ($(CFG_PKCS11_TA),y) 70srcs += pkcs11_1000.c 71LOCAL_CFLAGS += -DCFG_PKCS11_TA 72LOCAL_SHARED_LIBRARIES += libckteec 73endif 74 75define my-embed-file 76$(TARGET_OUT_HEADERS)/$(1).h: $(LOCAL_PATH)/$(2) 77 @echo ' GEN $$@' 78 @$(PYTHON3) $(LOCAL_PATH)/scripts/file_to_c.py --inf $$< --out $$@ --name $(1) 79 80LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_HEADERS)/$(1).h 81 82endef 83 84$(eval $(call my-embed-file,regression_8100_ca_crt,cert/ca.crt)) 85$(eval $(call my-embed-file,regression_8100_mid_crt,cert/mid.crt)) 86$(eval $(call my-embed-file,regression_8100_my_crt,cert/my.crt)) 87$(eval $(call my-embed-file,regression_8100_my_csr,cert/my.csr)) 88 89LOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs)) 90 91LOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \ 92 $(LOCAL_PATH)/host/xtest/adbg/include \ 93 $(LOCAL_PATH)/ta/include \ 94 $(LOCAL_PATH)/ta/supp_plugin/include \ 95 $(LOCAL_PATH)/ta/create_fail_test/include \ 96 $(LOCAL_PATH)/ta/crypt/include \ 97 $(LOCAL_PATH)/ta/enc_fs/include \ 98 $(LOCAL_PATH)/ta/os_test/include \ 99 $(LOCAL_PATH)/ta/rpc_test/include \ 100 $(LOCAL_PATH)/ta/sims/include \ 101 $(LOCAL_PATH)/ta/miss/include \ 102 $(LOCAL_PATH)/ta/sims_keepalive/include \ 103 $(LOCAL_PATH)/ta/storage_benchmark/include \ 104 $(LOCAL_PATH)/ta/concurrent/include \ 105 $(LOCAL_PATH)/ta/concurrent_large/include \ 106 $(LOCAL_PATH)/ta/sha_perf/include \ 107 $(LOCAL_PATH)/ta/aes_perf/include \ 108 $(LOCAL_PATH)/ta/socket/include \ 109 $(LOCAL_PATH)/ta/sdp_basic/include \ 110 $(LOCAL_PATH)/ta/tpm_log_test/include \ 111 $(LOCAL_PATH)/ta/large/include \ 112 $(LOCAL_PATH)/ta/bti_test/include \ 113 $(LOCAL_PATH)/host/supp_plugin/include 114 115# Include configuration file generated by OP-TEE OS (CFG_* macros) 116LOCAL_CFLAGS += -I $(TA_DEV_KIT_DIR)/host_include -include conf.h 117LOCAL_CFLAGS += -pthread 118LOCAL_CFLAGS += -g3 119LOCAL_CFLAGS += -Wno-missing-field-initializers -Wno-format-zero-length 120 121ifneq ($(TA_DIR),) 122LOCAL_CFLAGS += -DTA_DIR=\"$(TA_DIR)\" 123endif 124 125## $(OPTEE_BIN) is the path of tee.bin like 126## out/target/product/hikey/optee/arm-plat-hikey/core/tee.bin 127## it will be generated after build the optee_os with target BUILD_OPTEE_OS 128## which is defined in the common ta build mk file included before, 129LOCAL_ADDITIONAL_DEPENDENCIES += $(OPTEE_BIN) 130 131include $(BUILD_EXECUTABLE) 132 133################################################################################ 134# Build tee-supplicant test plugin # 135################################################################################ 136include $(CLEAR_VARS) 137 138PLUGIN_UUID = f07bfc66-958c-4a15-99c0-260e4e7375dd 139 140PLUGIN = $(PLUGIN_UUID).plugin 141PLUGIN_INCLUDES_DIR = $(LOCAL_PATH)/host/supp_plugin/include 142 143LOCAL_MODULE := $(PLUGIN) 144LOCAL_MODULE_RELATIVE_PATH := tee-supplicant/plugins 145LOCAL_VENDOR_MODULE := true 146# below is needed to locate optee_client exported headers 147LOCAL_SHARED_LIBRARIES := libteec 148 149LOCAL_SRC_FILES += host/supp_plugin/test_supp_plugin.c 150LOCAL_C_INCLUDES += $(PLUGIN_INCLUDES_DIR) 151LOCAL_CFLAGS += -Wno-unused-parameter 152 153$(info $$LOCAL_SRC_FILES = ${LOCAL_SRC_FILES}) 154 155LOCAL_MODULE_TAGS := optional 156 157# Build the 32-bit and 64-bit versions. 158LOCAL_MULTILIB := both 159LOCAL_MODULE_TARGET_ARCH := arm arm64 160 161include $(BUILD_SHARED_LIBRARY) 162 163################################################################################ 164# Build TAs # 165################################################################################ 166include $(LOCAL_PATH)/ta/Android.mk 167