xref: /OK3568_Linux_fs/external/security/rk_tee_user/v2/build.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash
2WORK_DIR_TOP=$(cd `dirname $0` ; pwd)
3
4#./build.sh or ./build.sh 3232 to compile CA TA with 32 bits
5#./build.sh 3264 to compile CA with 32 bits and TA with 64 bits
6#./build.sh 6464 to compile CA TA with 64 bits
7#./build.sh 6432 to compile CA with 64 bits and TA with 32 bits
8#./build.sh ta to compile TA with 32 bits
9
10TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../../tools/linux/toolchain
11if [ -d "$TOOLCHAIN_PREBUILTS" ]; then
12	TOOLCHAIN_PATH_ARM32=$TOOLCHAIN_PREBUILTS/arm-rockchip830-linux-uclibcgnueabihf/bin/
13	TOOLCHAIN_PATH_AARCH64=$TOOLCHAIN_PREBUILTS/aarch64-rockchip830-linux-uclibcgnu/bin/
14	CROSS_COMPILE32=arm-rockchip830-linux-uclibcgnueabihf-
15	CROSS_COMPILE64=aarch64-rockchip830-linux-uclibcgnu-
16	export TOOLCHAIN_UCLIBC=y
17else
18	TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../../prebuilts
19	if [ ! -d "$TOOLCHAIN_PREBUILTS" ]; then
20		TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../prebuilts
21	fi
22	TOOLCHAIN_PATH_ARM32=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/arm/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin
23	TOOLCHAIN_PATH_AARCH64=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/aarch64/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin
24	CROSS_COMPILE32=arm-none-linux-gnueabihf-
25	CROSS_COMPILE64=aarch64-none-linux-gnu-
26fi
27
28if [ -z "$AARCH64_TOOLCHAIN" ]; then
29	AARCH64_TOOLCHAIN=$TOOLCHAIN_PATH_AARCH64/$CROSS_COMPILE64
30else
31	AARCH64_TOOLCHAIN=`readlink -f $AARCH64_TOOLCHAIN`
32	TOOLCHAIN_PATH_AARCH64=`dirname $AARCH64_TOOLCHAIN`
33fi
34
35if [ -z "$ARM32_TOOLCHAIN" ]; then
36	ARM32_TOOLCHAIN=$TOOLCHAIN_PATH_ARM32/$CROSS_COMPILE32
37else
38	ARM32_TOOLCHAIN=`readlink -f $ARM32_TOOLCHAIN`
39	TOOLCHAIN_PATH_ARM32=`dirname $ARM32_TOOLCHAIN`
40fi
41
42function check_toolchain32(){
43	if [ ! -d "${TOOLCHAIN_PATH_ARM32}" ]; then
44		echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_ARM32}"
45		echo "You can get it from following address:"
46		echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads"
47		exit
48	fi
49}
50
51function check_toolchain64(){
52	if [ ! -d "${TOOLCHAIN_PATH_AARCH64}" ]; then
53		echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_AARCH64}"
54		echo "You can get it from following address:"
55		echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads"
56		exit
57	fi
58}
59
60make TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm32 clean
61BUILD_CATA_BITS="$1"
62
63if [ "$BUILD_CATA_BITS" == "3232" ]; then
64	check_toolchain32
65	export BUILD_CA=y
66	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
67	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
68	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
69	CROSS_COMPILE=$ARM32_TOOLCHAIN \
70	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm32 \
71	COMPILE_NS_USER=32 \
72	O=$WORK_DIR_TOP/out
73fi
74
75if [ "$BUILD_CATA_BITS" == "3264" ]; then
76	check_toolchain32
77	check_toolchain64
78	export BUILD_CA=y
79	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
80	CROSS_COMPILE_TA=$AARCH64_TOOLCHAIN \
81	CROSS_COMPILE_user_ta=$AARCH64_TOOLCHAIN \
82	CROSS_COMPILE=$AARCH64_TOOLCHAIN \
83	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm64 \
84	COMPILE_NS_USER=32 \
85	O=$WORK_DIR_TOP/out
86fi
87
88if [ "$BUILD_CATA_BITS" == "6464" ]; then
89	check_toolchain64
90	export BUILD_CA=y
91	make CROSS_COMPILE_HOST=$AARCH64_TOOLCHAIN \
92	CROSS_COMPILE_TA=$AARCH64_TOOLCHAIN \
93	CROSS_COMPILE_user_ta=$AARCH64_TOOLCHAIN \
94	CROSS_COMPILE=$AARCH64_TOOLCHAIN \
95	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm64 \
96	COMPILE_NS_USER=64 \
97	O=$WORK_DIR_TOP/out
98fi
99
100if [ "$BUILD_CATA_BITS" == "6432" ]; then
101	check_toolchain32
102	check_toolchain64
103	export BUILD_CA=y
104	make CROSS_COMPILE_HOST=$AARCH64_TOOLCHAIN \
105	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
106	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
107	CROSS_COMPILE=$ARM32_TOOLCHAIN \
108	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm32 \
109	COMPILE_NS_USER=64 \
110	O=$WORK_DIR_TOP/out
111fi
112
113if [ "$BUILD_CATA_BITS" == "" ]; then
114	check_toolchain32
115	export BUILD_CA=y
116	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
117	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
118	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
119	CROSS_COMPILE=$ARM32_TOOLCHAIN \
120	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm32 \
121	COMPILE_NS_USER=32 \
122	O=$WORK_DIR_TOP/out
123fi
124
125if [ "$BUILD_CATA_BITS" == "ta" ]; then
126	check_toolchain32
127	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
128	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
129	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
130	CROSS_COMPILE=$ARM32_TOOLCHAIN \
131	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-ta_arm32 \
132	COMPILE_NS_USER=32 \
133	O=$WORK_DIR_TOP/out
134fi
135