blob: 1e5e42ae7083492745f32987eee6289fb6c2f7ef
1 | ########################################################## |
2 | ## Lines for building TAs automatically ## |
3 | ## will only be included in Android.mk for TAs ## |
4 | ## local_module: |
5 | ## local_module_ta_name: |
6 | ## need to be defined before include for this ## |
7 | ########################################################## |
8 | |
9 | OPTEE_CROSS_COMPILE := arm-linux-gnueabihf- |
10 | CROSS_COMPILE_LINE := CROSS_COMPILE=$(OPTEE_CROSS_COMPILE) |
11 | OPTEE_TA_OUT_DIR ?= $(PRODUCT_OUT)/optee/ta |
12 | |
13 | TOP_ROOT_ABS := $(realpath $(TOP)) |
14 | TA_DEV_KIT_DIR := $(BOARD_AML_VENDOR_PATH)/tdk/ta_export |
15 | |
16 | ifeq ($(TARGET_ENABLE_TA_SIGN), true) |
17 | TDK_PATH := $(TOP_ROOT_ABS)/$(BOARD_AML_VENDOR_PATH)/tdk |
18 | TA_SIGN_AUTO_TOOL := $(TDK_PATH)/ta_export/scripts/sign_ta_auto.py |
19 | endif |
20 | |
21 | include $(CLEAR_VARS) |
22 | local_module_path ?= $(TARGET_OUT)/lib/optee_armtz |
23 | LOCAL_MODULE := $(local_module) |
24 | LOCAL_PREBUILT_MODULE_FILE := $(OPTEE_TA_OUT_DIR)/$(LOCAL_MODULE) |
25 | LOCAL_MODULE_PATH := $(local_module_path) |
26 | LOCAL_MODULE_CLASS := EXECUTABLES |
27 | LOCAL_MODULE_TAGS := optional |
28 | |
29 | TA_TMP_DIR := $(subst /,_,$(LOCAL_PATH)) |
30 | TA_TMP_FILE := $(OPTEE_TA_OUT_DIR)/$(TA_TMP_DIR)/$(LOCAL_MODULE) |
31 | |
32 | $(LOCAL_PREBUILT_MODULE_FILE): $(TA_TMP_FILE) |
33 | @mkdir -p $(dir $@) |
34 | ifeq ($(TARGET_ENABLE_TA_SIGN), true) |
35 | ifeq ($(TARGET_ENABLE_TA_ENCRYPT), true) |
36 | $(TA_SIGN_AUTO_TOOL) --in=$< --out=$@ --encrypt=1 |
37 | else |
38 | $(TA_SIGN_AUTO_TOOL) --in=$< --out=$@ --encrypt=0 |
39 | endif |
40 | else #else ifeq ($(TARGET_ENABLE_TA_SIGN), true) |
41 | cp -uvf $< $@ |
42 | endif |
43 | |
44 | $(TA_TMP_FILE): PRIVATE_TA_SRC_DIR := $(LOCAL_PATH) |
45 | $(TA_TMP_FILE): PRIVATE_TA_TMP_FILE := $(TA_TMP_FILE) |
46 | $(TA_TMP_FILE): PRIVATE_TA_TMP_DIR := $(TA_TMP_DIR) |
47 | $(TA_TMP_FILE): FORCE |
48 | @echo "Start building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..." |
49 | $(MAKE) -C $(TOP_ROOT_ABS)/$(PRIVATE_TA_SRC_DIR) O=$(TOP_ROOT_ABS)/$(OPTEE_TA_OUT_DIR)/$(PRIVATE_TA_TMP_DIR) \ |
50 | TA_DEV_KIT_DIR=$(TOP_ROOT_ABS)/$(TA_DEV_KIT_DIR) \ |
51 | $(CROSS_COMPILE_LINE) |
52 | @echo "Finished building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..." |
53 | |
54 | FORCE: |
55 | |
56 | include $(BUILD_PREBUILT) |
57 | |
58 | include $(CLEAR_VARS) |
59 | LOCAL_MODULE := $(local_module_ta_name) |
60 | LOCAL_MODULE_TAGS := optional |
61 | LOCAL_MODULE_CLASS := SHARED_LIBRARIES |
62 | |
63 | LOCAL_REQUIRED_MODULES := $(local_module) |
64 | |
65 | include $(BUILD_PHONY_PACKAGE) |
66 | |
67 | local_module_ta_name := |
68 | |
69 |