xref: /OK3568_Linux_fs/external/security/rk_tee_user/v2/Android.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunifneq ($(filter rk312% rk322% rk3288 rk3328 rk3368 rk3399 rk3399pro px3 px5, $(TARGET_BOARD_PLATFORM)), )
2*4882a593Smuzhiyun$(info 'building rk_tee_user v1')
3*4882a593Smuzhiyunelse
4*4882a593Smuzhiyun$(info 'building rk_tee_user v2')
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunLOCAL_PATH := $(call my-dir)
7*4882a593SmuzhiyunOPTEE_TEST_PATH := $(shell pwd)/$(LOCAL_PATH)
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun## include variants like TA_DEV_KIT_DIR
10*4882a593Smuzhiyun## and target of BUILD_OPTEE_OS
11*4882a593SmuzhiyunINCLUDE_FOR_BUILD_TA := false
12*4882a593Smuzhiyuninclude $(BUILD_OPTEE_MK)
13*4882a593SmuzhiyunINCLUDE_FOR_BUILD_TA :=
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunVERSION = $(shell git describe --always --dirty=-dev 2>/dev/null || echo Unknown)
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun# TA_DEV_KIT_DIR must be set to non-empty value to
18*4882a593Smuzhiyun# avoid the Android build scripts complaining about
19*4882a593Smuzhiyun# includes pointing outside the Android source tree.
20*4882a593Smuzhiyun# This var is expected to be set when OPTEE OS built.
21*4882a593Smuzhiyun# We set the default value to an invalid path.
22*4882a593SmuzhiyunTA_DEV_KIT_DIR ?= $(OPTEE_TEST_PATH)/export-ta_arm32
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunOPTEE_CLIENT_PATH ?= $(LOCAL_PATH)/client_export
25*4882a593Smuzhiyun
26*4882a593Smuzhiyuninclude $(TA_DEV_KIT_DIR)/host_include/conf.mk
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunifeq (1,$(strip $(shell expr $(PLATFORM_VERSION) \>= 11)))
29*4882a593Smuzhiyunifeq ($(strip $(TARGET_ARCH)), arm64)
30*4882a593Smuzhiyun	CLIENT_LIB_PATH ?= $(shell pwd)/hardware/rockchip/optee/v2/arm64
31*4882a593Smuzhiyunelse
32*4882a593Smuzhiyun	CLIENT_LIB_PATH ?= $(shell pwd)/hardware/rockchip/optee/v2/arm
33*4882a593Smuzhiyunendif
34*4882a593Smuzhiyunelse
35*4882a593Smuzhiyunifeq ($(strip $(TARGET_ARCH)), arm64)
36*4882a593Smuzhiyun	CLIENT_LIB_PATH ?= $(shell pwd)/vendor/rockchip/common/security/optee/v2/lib/arm64
37*4882a593Smuzhiyunelse
38*4882a593Smuzhiyun	CLIENT_LIB_PATH ?= $(shell pwd)/vendor/rockchip/common/security/optee/v2/lib/arm
39*4882a593Smuzhiyunendif
40*4882a593Smuzhiyunendif
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun################################################################################
43*4882a593Smuzhiyun# Build xtest                                                                  #
44*4882a593Smuzhiyun################################################################################
45*4882a593Smuzhiyuninclude $(CLEAR_VARS)
46*4882a593SmuzhiyunLOCAL_MODULE := xtest
47*4882a593SmuzhiyunLOCAL_VENDOR_MODULE := true
48*4882a593SmuzhiyunLOCAL_SHARED_LIBRARIES := libteec
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunTA_DIR ?= /vendor/lib/optee_armtz
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunsrcs := regression_1000.c
53*4882a593Smuzhiyun
54*4882a593Smuzhiyunifeq ($(CFG_GP_SOCKETS),y)
55*4882a593Smuzhiyunsrcs += regression_2000.c \
56*4882a593Smuzhiyun	sock_server.c \
57*4882a593Smuzhiyun	rand_stream.c
58*4882a593Smuzhiyunendif
59*4882a593Smuzhiyun
60*4882a593Smuzhiyunsrcs +=	adbg/src/adbg_case.c \
61*4882a593Smuzhiyun	adbg/src/adbg_enum.c \
62*4882a593Smuzhiyun	adbg/src/adbg_expect.c \
63*4882a593Smuzhiyun	adbg/src/adbg_log.c \
64*4882a593Smuzhiyun	adbg/src/adbg_run.c \
65*4882a593Smuzhiyun	adbg/src/security_utils_hex.c \
66*4882a593Smuzhiyun	aes_perf.c \
67*4882a593Smuzhiyun	benchmark_1000.c \
68*4882a593Smuzhiyun	benchmark_2000.c \
69*4882a593Smuzhiyun	regression_4000.c \
70*4882a593Smuzhiyun	regression_4100.c \
71*4882a593Smuzhiyun	regression_5000.c \
72*4882a593Smuzhiyun	regression_6000.c \
73*4882a593Smuzhiyun	regression_8000.c \
74*4882a593Smuzhiyun	regression_8100.c \
75*4882a593Smuzhiyun	sha_perf.c \
76*4882a593Smuzhiyun	stats.c \
77*4882a593Smuzhiyun	xtest_helpers.c \
78*4882a593Smuzhiyun	xtest_main.c \
79*4882a593Smuzhiyun	xtest_test.c \
80*4882a593Smuzhiyun	xtest_uuid_helpers.c
81*4882a593Smuzhiyun
82*4882a593Smuzhiyunifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y)
83*4882a593Smuzhiyunsrcs += install_ta.c
84*4882a593Smuzhiyunendif
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunifeq ($(CFG_SECURE_DATA_PATH),y)
87*4882a593Smuzhiyunsrcs += sdp_basic.c
88*4882a593Smuzhiyunendif
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunifeq ($(CFG_PKCS11_TA),y)
91*4882a593Smuzhiyunsrcs += pkcs11_1000.c
92*4882a593SmuzhiyunLOCAL_CFLAGS += -DCFG_PKCS11_TA
93*4882a593SmuzhiyunLOCAL_SHARED_LIBRARIES += libckteec
94*4882a593Smuzhiyunendif
95*4882a593Smuzhiyun
96*4882a593Smuzhiyundefine my-embed-file
97*4882a593Smuzhiyun$(TARGET_OUT_HEADERS)/$(1).h: $(LOCAL_PATH)/$(2)
98*4882a593Smuzhiyun	@echo '  GEN     $$@'
99*4882a593Smuzhiyun	@$(LOCAL_PATH)/scripts/file_to_c.py --inf $$< --out $$@ --name $(1)
100*4882a593Smuzhiyun
101*4882a593SmuzhiyunLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_HEADERS)/$(1).h
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunendef
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_ca_crt,cert/ca.crt))
106*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_mid_crt,cert/mid.crt))
107*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_my_crt,cert/my.crt))
108*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_my_csr,cert/my.csr))
109*4882a593Smuzhiyun
110*4882a593SmuzhiyunLOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs))
111*4882a593Smuzhiyun
112*4882a593SmuzhiyunLOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \
113*4882a593Smuzhiyun		$(LOCAL_PATH)/host/xtest/adbg/include\
114*4882a593Smuzhiyun		$(LOCAL_PATH)/host/supp_plugin/include \
115*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/include \
116*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/create_fail_test/include \
117*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/crypt/include \
118*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/enc_fs/include \
119*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/os_test/include \
120*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/rpc_test/include \
121*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/sims/include \
122*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/miss/include \
123*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/sims_keepalive/include \
124*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/storage_benchmark/include \
125*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/concurrent/include \
126*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/concurrent_large/include \
127*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/sha_perf/include \
128*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/aes_perf/include \
129*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/socket/include \
130*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/sdp_basic/include \
131*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/tpm_log_test/include \
132*4882a593Smuzhiyun		$(LOCAL_PATH)/ta/supp_plugin/include \
133*4882a593Smuzhiyun		$(OPTEE_CLIENT_PATH)/public
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun# Include configuration file generated by OP-TEE OS (CFG_* macros)
136*4882a593SmuzhiyunLOCAL_CFLAGS += -I $(TA_DEV_KIT_DIR)/host_include -include conf.h
137*4882a593SmuzhiyunLOCAL_CFLAGS += -pthread
138*4882a593SmuzhiyunLOCAL_CFLAGS += -g3
139*4882a593SmuzhiyunLOCAL_CFLAGS += -Wno-missing-field-initializers -Wno-format-zero-length
140*4882a593Smuzhiyun
141*4882a593Smuzhiyunifneq ($(TA_DIR),)
142*4882a593SmuzhiyunLOCAL_CFLAGS += -DTA_DIR=\"$(TA_DIR)\"
143*4882a593Smuzhiyunendif
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun## $(OPTEE_BIN) is the path of tee.bin like
146*4882a593Smuzhiyun## out/target/product/hikey/optee/arm-plat-hikey/core/tee.bin
147*4882a593Smuzhiyun## it will be generated after build the optee_os with target BUILD_OPTEE_OS
148*4882a593Smuzhiyun## which is defined in the common ta build mk file included before,
149*4882a593SmuzhiyunLOCAL_ADDITIONAL_DEPENDENCIES += $(OPTEE_BIN)
150*4882a593Smuzhiyun
151*4882a593Smuzhiyuninclude $(BUILD_EXECUTABLE)
152*4882a593Smuzhiyun################################################################################
153*4882a593Smuzhiyun# Build rktest                                                                 #
154*4882a593Smuzhiyun################################################################################
155*4882a593Smuzhiyuninclude $(CLEAR_VARS)
156*4882a593SmuzhiyunLOCAL_CFLAGS += -DANDROID_BUILD -DUSER_SPACE
157*4882a593SmuzhiyunLOCAL_CFLAGS += -Wall -Wno-error
158*4882a593SmuzhiyunLOCAL_LDFLAGS += $(CLIENT_LIB_PATH)/libteec.so
159*4882a593SmuzhiyunLOCAL_LDFLAGS += -llog
160*4882a593Smuzhiyun
161*4882a593SmuzhiyunSRC_FILES_DIR := $(wildcard $(LOCAL_PATH)/host/rk_test/*.c)
162*4882a593SmuzhiyunLOCAL_SRC_FILES += $(SRC_FILES_DIR:$(LOCAL_PATH)/%=%)
163*4882a593Smuzhiyun
164*4882a593SmuzhiyunLOCAL_C_INCLUDES := $(LOCAL_PATH)/ta/rk_test/include \
165*4882a593Smuzhiyun		$(LOCAL_PATH)/host/rk_test/include \
166*4882a593Smuzhiyun		$(LOCAL_PATH)/export-ta_arm32/host_include \
167*4882a593Smuzhiyun		$(OPTEE_CLIENT_PATH)/public
168*4882a593Smuzhiyun
169*4882a593SmuzhiyunLOCAL_MODULE := rktest
170*4882a593SmuzhiyunLOCAL_MODULE_TAGS := optional
171*4882a593Smuzhiyunifeq (1,$(strip $(shell expr $(PLATFORM_VERSION) \>= 8)))
172*4882a593Smuzhiyun	LOCAL_PROPRIETARY_MODULE := true
173*4882a593Smuzhiyunendif
174*4882a593Smuzhiyuninclude $(BUILD_EXECUTABLE)
175*4882a593Smuzhiyun
176*4882a593Smuzhiyuninclude $(LOCAL_PATH)/ta/Android.mk
177*4882a593Smuzhiyunendif