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 hash_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_SECURE_PARTITION)-$(CFG_SPMC_TESTS),y-y) 62srcs += ffa_spmc_1000.c 63endif 64 65ifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y) 66srcs += install_ta.c 67endif 68 69ifeq ($(CFG_SECURE_DATA_PATH),y) 70srcs += sdp_basic.c 71endif 72 73ifeq ($(CFG_PKCS11_TA),y) 74srcs += pkcs11_1000.c 75LOCAL_CFLAGS += -DCFG_PKCS11_TA 76LOCAL_SHARED_LIBRARIES += libckteec 77endif 78 79define my-embed-file 80$(TARGET_OUT_HEADERS)/$(1).h: $(LOCAL_PATH)/$(2) 81 @echo ' GEN $$@' 82 @$(PYTHON3) $(LOCAL_PATH)/scripts/file_to_c.py --inf $$< --out $$@ --name $(1) 83 84LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_HEADERS)/$(1).h 85 86endef 87 88$(eval $(call my-embed-file,regression_8100_ca_crt,cert/ca.crt)) 89$(eval $(call my-embed-file,regression_8100_mid_crt,cert/mid.crt)) 90$(eval $(call my-embed-file,regression_8100_my_crt,cert/my.crt)) 91$(eval $(call my-embed-file,regression_8100_my_csr,cert/my.csr)) 92 93LOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs)) 94 95LOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \ 96 $(LOCAL_PATH)/host/xtest/adbg/include \ 97 $(LOCAL_PATH)/ta/include \ 98 $(LOCAL_PATH)/ta/supp_plugin/include \ 99 $(LOCAL_PATH)/ta/create_fail_test/include \ 100 $(LOCAL_PATH)/ta/crypt/include \ 101 $(LOCAL_PATH)/ta/enc_fs/include \ 102 $(LOCAL_PATH)/ta/os_test/include \ 103 $(LOCAL_PATH)/ta/rpc_test/include \ 104 $(LOCAL_PATH)/ta/sims/include \ 105 $(LOCAL_PATH)/ta/miss/include \ 106 $(LOCAL_PATH)/ta/sims_keepalive/include \ 107 $(LOCAL_PATH)/ta/storage_benchmark/include \ 108 $(LOCAL_PATH)/ta/concurrent/include \ 109 $(LOCAL_PATH)/ta/concurrent_large/include \ 110 $(LOCAL_PATH)/ta/hash_perf/include \ 111 $(LOCAL_PATH)/ta/aes_perf/include \ 112 $(LOCAL_PATH)/ta/socket/include \ 113 $(LOCAL_PATH)/ta/sdp_basic/include \ 114 $(LOCAL_PATH)/ta/tpm_log_test/include \ 115 $(LOCAL_PATH)/ta/large/include \ 116 $(LOCAL_PATH)/ta/bti_test/include \ 117 $(LOCAL_PATH)/host/supp_plugin/include 118 119# Include configuration file generated by OP-TEE OS (CFG_* macros) 120LOCAL_CFLAGS += -I $(TA_DEV_KIT_DIR)/host_include -include conf.h 121LOCAL_CFLAGS += -pthread 122LOCAL_CFLAGS += -g3 123LOCAL_CFLAGS += -Wno-missing-field-initializers -Wno-format-zero-length 124 125ifneq ($(TA_DIR),) 126LOCAL_CFLAGS += -DTA_DIR=\"$(TA_DIR)\" 127endif 128 129## $(OPTEE_BIN) is the path of tee.bin like 130## out/target/product/hikey/optee/arm-plat-hikey/core/tee.bin 131## it will be generated after build the optee_os with target BUILD_OPTEE_OS 132## which is defined in the common ta build mk file included before, 133LOCAL_ADDITIONAL_DEPENDENCIES += $(OPTEE_BIN) 134 135include $(BUILD_EXECUTABLE) 136 137################################################################################ 138# Build tee-supplicant test plugin # 139################################################################################ 140include $(CLEAR_VARS) 141 142PLUGIN_UUID = f07bfc66-958c-4a15-99c0-260e4e7375dd 143 144PLUGIN = $(PLUGIN_UUID).plugin 145PLUGIN_INCLUDES_DIR = $(LOCAL_PATH)/host/supp_plugin/include 146 147LOCAL_MODULE := $(PLUGIN) 148LOCAL_MODULE_RELATIVE_PATH := tee-supplicant/plugins 149LOCAL_VENDOR_MODULE := true 150# below is needed to locate optee_client exported headers 151LOCAL_SHARED_LIBRARIES := libteec 152 153LOCAL_SRC_FILES += host/supp_plugin/test_supp_plugin.c 154LOCAL_C_INCLUDES += $(PLUGIN_INCLUDES_DIR) 155LOCAL_CFLAGS += -Wno-unused-parameter 156 157$(info $$LOCAL_SRC_FILES = ${LOCAL_SRC_FILES}) 158 159LOCAL_MODULE_TAGS := optional 160 161# Build the 32-bit and 64-bit versions. 162LOCAL_MULTILIB := both 163LOCAL_MODULE_TARGET_ARCH := arm arm64 164 165include $(BUILD_SHARED_LIBRARY) 166 167################################################################################ 168# Build TAs # 169################################################################################ 170include $(LOCAL_PATH)/ta/Android.mk 171