#!/bin/bash WORK_DIR_TOP=$(cd `dirname $0` ; pwd) #./build.sh or ./build.sh 3232 to compile CA TA with 32 bits #./build.sh 6432 to compile CA with 64 bits and TA with 32 bits #./build.sh ta to compile TA with 32 bits TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../../prebuilts if [ ! -d "$TOOLCHAIN_PREBUILTS" ]; then TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../prebuilts fi TOOLCHAIN_PATH_ARM32=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin TOOLCHAIN_PATH_AARCH64=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin CROSS_COMPILE32=arm-linux-gnueabihf- CROSS_COMPILE64=aarch64-linux-gnu- if [ -z "$AARCH64_TOOLCHAIN" ]; then AARCH64_TOOLCHAIN=$TOOLCHAIN_PATH_AARCH64/$CROSS_COMPILE64 else AARCH64_TOOLCHAIN=`readlink -f $AARCH64_TOOLCHAIN` TOOLCHAIN_PATH_AARCH64=`dirname $AARCH64_TOOLCHAIN` fi if [ -z "$ARM32_TOOLCHAIN" ]; then ARM32_TOOLCHAIN=$TOOLCHAIN_PATH_ARM32/$CROSS_COMPILE32 else ARM32_TOOLCHAIN=`readlink -f $ARM32_TOOLCHAIN` TOOLCHAIN_PATH_ARM32=`dirname $ARM32_TOOLCHAIN` fi make TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta clean BUILD_CATA_BITS="$1" if [ "$BUILD_CATA_BITS" == "3264" ] || [ "$BUILD_CATA_BITS" == "6464" ]; then if [ ! -d "${TOOLCHAIN_PATH_AARCH64}" ]; then echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_AARCH64}" echo "You can get it from following address:" echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads" exit fi else if [ ! -d "${TOOLCHAIN_PATH_ARM32}" ]; then echo "Toolchain error! Need toolchain: ${TOOLCHAIN_PATH_ARM32}" echo "You can get it from following address:" echo "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads" exit fi fi if [ "$BUILD_CATA_BITS" == "3232" ]; then export BUILD_CA=y make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \ CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \ CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \ CROSS_COMPILE=$ARM32_TOOLCHAIN \ TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \ COMPILE_NS_USER=32 \ O=$WORK_DIR_TOP/out fi if [ "$BUILD_CATA_BITS" == "6432" ]; then export BUILD_CA=y make CROSS_COMPILE_HOST=$AARCH64_TOOLCHAIN \ CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \ CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \ CROSS_COMPILE=$ARM32_TOOLCHAIN \ TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \ COMPILE_NS_USER=64 \ O=$WORK_DIR_TOP/out fi if [ "$BUILD_CATA_BITS" == "" ]; then export BUILD_CA=y make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \ CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \ CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \ CROSS_COMPILE=$ARM32_TOOLCHAIN \ TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \ COMPILE_NS_USER=32 \ O=$WORK_DIR_TOP/out fi if [ "$BUILD_CATA_BITS" == "ta" ]; then make CROSS_COMPILE_HOST=$ARM32_TOOLCHAIN \ CROSS_COMPILE_TA=$ARM32_TOOLCHAIN \ CROSS_COMPILE_user_ta=$ARM32_TOOLCHAIN \ CROSS_COMPILE=$ARM32_TOOLCHAIN \ TA_DEV_KIT_DIR=$WORK_DIR_TOP/export-user_ta \ COMPILE_NS_USER=32 \ O=$WORK_DIR_TOP/out fi