xref: /OK3568_Linux_fs/external/security/rk_tee_user/v1/build.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/bash
2*4882a593SmuzhiyunWORK_DIR_TOP=$(cd `dirname $0` ; pwd)
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun#./build.sh or ./build.sh 3232 to compile CA TA with 32 bits
5*4882a593Smuzhiyun#./build.sh 6432 to compile CA with 64 bits and TA with 32 bits
6*4882a593Smuzhiyun#./build.sh ta to compile TA with 32 bits
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunTOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../../prebuilts
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunif [ ! -d "$TOOLCHAIN_PREBUILTS" ]; then
11*4882a593Smuzhiyun	TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../prebuilts
12*4882a593Smuzhiyunfi
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunTOOLCHAIN_PATH_ARM32=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin
15*4882a593SmuzhiyunTOOLCHAIN_PATH_AARCH64=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
16*4882a593SmuzhiyunCROSS_COMPILE32=arm-linux-gnueabihf-
17*4882a593SmuzhiyunCROSS_COMPILE64=aarch64-linux-gnu-
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunif [ -z "$AARCH64_TOOLCHAIN" ]; then
20*4882a593Smuzhiyun	AARCH64_TOOLCHAIN=$TOOLCHAIN_PATH_AARCH64/$CROSS_COMPILE64
21*4882a593Smuzhiyunelse
22*4882a593Smuzhiyun	AARCH64_TOOLCHAIN=`readlink -f $AARCH64_TOOLCHAIN`
23*4882a593Smuzhiyun	TOOLCHAIN_PATH_AARCH64=`dirname $AARCH64_TOOLCHAIN`
24*4882a593Smuzhiyunfi
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunif [ -z "$ARM32_TOOLCHAIN" ]; then
27*4882a593Smuzhiyun	ARM32_TOOLCHAIN=$TOOLCHAIN_PATH_ARM32/$CROSS_COMPILE32
28*4882a593Smuzhiyunelse
29*4882a593Smuzhiyun	ARM32_TOOLCHAIN=`readlink -f $ARM32_TOOLCHAIN`
30*4882a593Smuzhiyun	TOOLCHAIN_PATH_ARM32=`dirname $ARM32_TOOLCHAIN`
31*4882a593Smuzhiyunfi
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunmake TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta clean
34*4882a593SmuzhiyunBUILD_CATA_BITS="$1"
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunif [ "$BUILD_CATA_BITS" == "3264" ] || [ "$BUILD_CATA_BITS" == "6464" ]; then
37*4882a593Smuzhiyun	if [ ! -d "${TOOLCHAIN_PATH_AARCH64}" ]; then
38*4882a593Smuzhiyun		echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_AARCH64}"
39*4882a593Smuzhiyun		echo "You can get it from following address:"
40*4882a593Smuzhiyun		echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads"
41*4882a593Smuzhiyun		exit
42*4882a593Smuzhiyun	fi
43*4882a593Smuzhiyunelse
44*4882a593Smuzhiyun	if [ ! -d "${TOOLCHAIN_PATH_ARM32}" ]; then
45*4882a593Smuzhiyun		echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_ARM32}"
46*4882a593Smuzhiyun		echo "You can get it from following address:"
47*4882a593Smuzhiyun		echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads"
48*4882a593Smuzhiyun		exit
49*4882a593Smuzhiyun	fi
50*4882a593Smuzhiyunfi
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunif [ "$BUILD_CATA_BITS" == "3232" ]; then
53*4882a593Smuzhiyun	export BUILD_CA=y
54*4882a593Smuzhiyun	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
55*4882a593Smuzhiyun	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
56*4882a593Smuzhiyun	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
57*4882a593Smuzhiyun	CROSS_COMPILE=$ARM32_TOOLCHAIN \
58*4882a593Smuzhiyun	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \
59*4882a593Smuzhiyun	COMPILE_NS_USER=32 \
60*4882a593Smuzhiyun	O=$WORK_DIR_TOP/out
61*4882a593Smuzhiyunfi
62*4882a593Smuzhiyun
63*4882a593Smuzhiyunif [ "$BUILD_CATA_BITS" == "6432" ]; then
64*4882a593Smuzhiyun	export BUILD_CA=y
65*4882a593Smuzhiyun	make CROSS_COMPILE_HOST=$AARCH64_TOOLCHAIN \
66*4882a593Smuzhiyun	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
67*4882a593Smuzhiyun	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
68*4882a593Smuzhiyun	CROSS_COMPILE=$ARM32_TOOLCHAIN \
69*4882a593Smuzhiyun	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \
70*4882a593Smuzhiyun	COMPILE_NS_USER=64 \
71*4882a593Smuzhiyun	O=$WORK_DIR_TOP/out
72*4882a593Smuzhiyunfi
73*4882a593Smuzhiyun
74*4882a593Smuzhiyunif [ "$BUILD_CATA_BITS" == "" ]; then
75*4882a593Smuzhiyun	export BUILD_CA=y
76*4882a593Smuzhiyun	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
77*4882a593Smuzhiyun	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
78*4882a593Smuzhiyun	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
79*4882a593Smuzhiyun	CROSS_COMPILE=$ARM32_TOOLCHAIN \
80*4882a593Smuzhiyun	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \
81*4882a593Smuzhiyun	COMPILE_NS_USER=32 \
82*4882a593Smuzhiyun	O=$WORK_DIR_TOP/out
83*4882a593Smuzhiyunfi
84*4882a593Smuzhiyunif [ "$BUILD_CATA_BITS" == "ta" ]; then
85*4882a593Smuzhiyun	make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \
86*4882a593Smuzhiyun	CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \
87*4882a593Smuzhiyun	CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \
88*4882a593Smuzhiyun	CROSS_COMPILE=$ARM32_TOOLCHAIN \
89*4882a593Smuzhiyun	TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \
90*4882a593Smuzhiyun	COMPILE_NS_USER=32 \
91*4882a593Smuzhiyun	O=$WORK_DIR_TOP/out
92*4882a593Smuzhiyunfi
93