#!/bin/bash
WS_ROOT_DIR=`pwd`

if [[ "$1" != sm* ]]; then
	echo "Invalid BUILD_CHIP value : $1"
	echo "Please set BUILD_CHIP appropriately, Values allowed : sm8450"
	exit 1
fi

case $2 in
    g0q)
	export ESE_COMMON_VENDOR=true
	;;
	*)
    echo "Provide model name, for ex : ./QCOM_TA_BUILD_8450.sh sm8450 g0q"
	exit
	;;
esac


# Add build CL
export BUILD_CHANGELIST=$P4_CHANGELIST
export BUILD_SHELVED=$P4_REVIEW

BUILD_CHIP=${1:0:6}
SECURE_NAME=QSEE_${BUILD_CHIP^^}_TA
RUNTYPE=qc_secimg50_tzapp
SIGNCLIENT="${WS_ROOT_DIR}/LocalTASigner_210728.jar"
TZ_BUILD_ID=WAPIONAA
#PRODUCT_NAME=g0qsqw

QC_TA_BUILD_DIR="${WS_ROOT_DIR}/nhlos/qtee_tas/build/ms"
#cd $QC_TA_BUILD_DIR

BIN_OUT_DIR="${QC_TA_BUILD_DIR}/bin/${TZ_BUILD_ID}"

rm build-log*
rm LOGFILE*

export TIMA_VERSION=3
export TIMA_ENABLED=1

rm -f tima_config.h

# customize build_linux_samsung.sh and run to generate tima_config.h
cp ./nhlos/boot_images/boot_tools/build_linux_samsung.sh ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/REPLACE_CHIPNAME_XBL_HEADERS/#REPLACE_CHIPNAME_XBL_HEADERS/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/MERGE_HYPX_AND_SIGN/#MERGE_HYPX_AND_SIGN/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i '/cd $SLPI_BUILD_DIR/{n;s/^/#/}' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/secure_boot_change.sh/#.\/secure_boot_change.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/tzapp_signing.sh/#.\/tzapp_signing.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/buildss.sh/#.\/buildss.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_aop_sym.sh/#.\/make_aop_sym.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_ddr_test_tool.sh/#.\/make_ddr_test_tool.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_edl.sh/#.\/make_edl.sh/' ./nhlos/boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/env.RunMinkidl()$/tempEnv=""/' ./nhlos/trustzone_images/ssg/bsp/build/scripts/idlcompiler.py

cd ./nhlos/boot_images/boot_tools/
echo "*** Build g0q ***"
chmod 755 ./build_linux_samsung_ta.sh 
./build_linux_samsung_ta.sh T_PRODUCT=g0xq T_MODEL=G0Q T_CARRIER=USA_SINGLEW T_TARGET=sm8450 T_CHIPNAME=$BUILD_CHIP

#cd $QC_TA_BUILD_DIR 
cd $WS_ROOT_DIR

# Model
export MODEL_FAMILY="sm8450"

# Demo
export ENABLE_DEMO=false

#export NOCHECK_TRUSTED_BOOT=true
export ICCC_ENABLED=true

cd nhlos
source ./environment_path_set.sh 12.0.2

cd ./nhlos/qtee_tas
CFG_FILE_ORG="sdk/latest/external/config/sdk_config_lnx_org.cfg"
CFG_FILE="sdk/latest/external/config/sdk_config_lnx.cfg"

if [ ! -e $CFG_FILE_ORG ];then
	cp $CFG_FILE $CFG_FILE_ORG
fi
rm $CFG_FILE

echo "CLANG_VERSION = \"12.0.2\"" >> $CFG_FILE
echo "GNUARM7 = \"$GNUARM7\"" >> $CFG_FILE
echo "GNULIBC = \"$GNULIBC\"" >> $CFG_FILE
echo "GNUPATH = \"$GNUPATH\"" >> $CFG_FILE
echo "GNUROOT = \"$GNUROOT\"" >> $CFG_FILE
echo "GNUTOOL = \"$GNUTOOL\"" >> $CFG_FILE
echo "LLVM32INC = \"$LLVM32INC\"" >> $CFG_FILE
echo "LLVMBIN = \"$LLVMBIN\"" >> $CFG_FILE
echo "LLVMCLANG = \"$LLVMCLANG\"" >> $CFG_FILE
echo "LLVMINC = \"$LLVMINC\"" >> $CFG_FILE
echo "LLVMLIB = \"$LLVMLIB\"" >> $CFG_FILE
echo "LLVMLIBPROP = \"$LLVMLIBPROP\"" >> $CFG_FILE
echo "LLVMROOT = \"$LLVMROOT\"" >> $CFG_FILE
echo "LLVMTOOLPATH = \"$LLVMTOOLPATH\"" >> $CFG_FILE
echo "LLVM_VERSION = \"$LLVM_VERSION\"" >> $CFG_FILE
echo "MUSL32PATH = \"$MUSL32PATH\"" >> $CFG_FILE
echo "MUSLPATH = \"$MUSLPATH\"" >> $CFG_FILE

LOCAL_SCHEME_QC_PRD_DIR="app/src/tee_production_localScheme/assets/ta/qc/${1:2:${#1}}"
LOCAL_SCHEME_QC_STG_DIR="app/src/tee_staging_localScheme/assets/ta/qc/${1:2:${#1}}"
LOCAL_SCHEME_OUT_DIR_PRD="${WS_ROOT_DIR}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${LOCAL_SCHEME_QC_PRD_DIR}"
LOCAL_SCHEME_OUT_DIR_STG="${WS_ROOT_DIR}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${LOCAL_SCHEME_QC_STG_DIR}"
mkdir -p $LOCAL_SCHEME_OUT_DIR_PRD
mkdir -p $LOCAL_SCHEME_OUT_DIR_STG

LOCAL_SCHEME_TA_LIST=( "bc_core" )

echo ======================= BUILD LOCAL SCHEME TA ========================
for TA_NAME in ${LOCAL_SCHEME_TA_LIST[@]}; do
        echo ======================== BUILD 111 ========================
	export GLOBAL_MEMBERSHIP=true
	source ${WS_ROOT_DIR}/build_version.config

	echo ====================== BUILD PRODUCTION TA =======================
	export STAGING_ENV=false
	python3 ../trustzone_images/tools/build/scons/SCons/scons -C apps/securemsm/trustzone/qsapps/$TA_NAME/build $TA_NAME CHIPSET=waipio qtee_sdk_version=latest
	java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${LOCAL_SCHEME_OUT_DIR_PRD}/${TA_NAME/amex/aexp}.mp3  -alg ECDSA

	echo ======================== BUILD STAGING TA ========================
	export STAGING_ENV=true
	python3 ../trustzone_images/tools/build/scons/SCons/scons -C apps/securemsm/trustzone/qsapps/$TA_NAME/build $TA_NAME CHIPSET=waipio qtee_sdk_version=latest
	java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${LOCAL_SCHEME_OUT_DIR_STG}/${TA_NAME/amex/aexp}.mp3 -alg ECDSA
done
        echo ======================== BUILD end ========================
