#!/bin/bash
WS_ROOT_DIR=`pwd`

if [[ "$1" != sm* ]]; then
	echo "Invalid BUILD_CHIP value : $1"
	echo "Please set BUILD_CHIP appropriately, Values allowed : sm8350"
	exit 1
fi

case $2 in
    t2q)
    ;;
    b2q)
    echo "secure touch for B2 LCD"
    ;;
    q2q)
    echo "secure touch for Q2 LCD"
    ;;
    *)
    echo "Provide model name, for ex : ./QCOM_TA_BUILD_8350_TUI.sh sm8350 t2q"
    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.jar"
TZ_BUILD_ID=LAVAANAA

QC_TA_BUILD_DIR="${WS_ROOT_DIR}/nhlos/trustzone_images/build/ms"
cd $QC_TA_BUILD_DIR

BIN_OUT_DIR="${QC_TA_BUILD_DIR}/bin/${TZ_BUILD_ID}/unsigned"

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 ../../../boot_images/boot_tools/build_linux_samsung.sh ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/REPLACE_CHIPNAME_XBL_HEADERS/#REPLACE_CHIPNAME_XBL_HEADERS/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/MERGE_HYPX_AND_SIGN/#MERGE_HYPX_AND_SIGN/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i '/cd $SLPI_BUILD_DIR/{n;s/^/#/}' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/secure_boot_change.sh/#.\/secure_boot_change.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/tzapp_signing.sh/#.\/tzapp_signing.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/buildss.sh/#.\/buildss.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_aop_sym.sh/#.\/make_aop_sym.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_ddr_test_tool.sh/#.\/make_ddr_test_tool.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/.\/make_edl.sh/#.\/make_edl.sh/' ../../../boot_images/boot_tools/build_linux_samsung_ta.sh
sed -i 's/env.RunMinkidl()$/tempEnv=""/' ../../../trustzone_images/ssg/bsp/build/scripts/idlcompiler.py

cd ../../../boot_images/boot_tools/
echo "*** Build t2q ***" 

if [ $2 == "t2q" ]; then 
    echo "*** Build t2q ***" 
    PRODUCT_NAME=t2qsqw    
    ./build_linux_samsung_ta.sh T_PRODUCT=t2qsqw T_MODEL=T2Q T_CARRIER=USA_SINGLE T_TARGET=sm8350 T_CHIPNAME=$BUILD_CHIP
elif [ $2 == "b2q" ]; then
    echo "*** Build b2q ***" 
    PRODUCT_NAME=b2qsqw    
    ./build_linux_samsung_ta.sh T_PRODUCT=b2qsqw T_MODEL=B2Q T_CARRIER=USA_SINGLE T_TARGET=sm8350 T_CHIPNAME=$BUILD_CHIP
elif [ $2 == "q2q" ]; then
    echo "*** Build q2q ***" 
    PRODUCT_NAME=q2qsqw    
    ./build_linux_samsung_ta.sh T_PRODUCT=q2qsqw T_MODEL=Q2Q T_CARRIER=USA_SINGLE T_TARGET=sm8350 T_CHIPNAME=$BUILD_CHIP
fi

cd $QC_TA_BUILD_DIR 

INCLUDE_TZ_LIBRARIES_TO_APP_FOLDERS(){
# secure ui, touch related libraries
	lib_directories=(
			"../../apps/bsp/trustzone/qsapps/sselog"
			"../../apps/bsp/trustzone/qsapps/zlib"
			"../../apps/bsp/trustzone/qsapps/libgd"
			"../../apps/bsp/trustzone/qsapps/libpng"
			"../../apps/bsp/trustzone/qsapps/secure_ui"
			"../../apps/bsp/trustzone/qsapps/secure_ui_lib"
			"../../apps/bsp/trustzone/qsapps/secure_ui_tui"
			"../../apps/bsp/trustzone/qsapps/secure_ui"
			"../../apps/bsp/trustzone/qsapps/sklayout"
			)
			include_lib_in_tz_app=("bc_tui")
			for lib in ${lib_directories[@]}
			do
				for tz_app in ${include_lib_in_tz_app[@]}
				do
					rm -rf $lib/$tz_app/					#remove existing (local build) to have latest files
					mkdir -p $lib/$tz_app/scorpion/$TZ_BUILD_ID
					cp -Rf $lib/secure_ui_sample/scorpion/ $lib/$tz_app/
				done
			done

}

# Model
export MODEL_FAMILY="sm8350"

# Demo
export ENABLE_DEMO=false

export LLVM_VERSION=4.0.12
export LLVMROOT=${WS_ROOT_DIR}/llvm/$LLVM_VERSION
export LLVMBIN=$LLVMROOT/bin
export LLVMLIB=$LLVMROOT/lib/clang/$LLVM_VERSION/lib/linux
export LLVMINC=$LLVMROOT/aarch64-none-elf/libc/include
export LLVM32INC=$LLVMROOT/armv7-none-eabi/libc/include
export LLVMTOOLPATH=$LLVMROOT/tools/bin
export LLVMCLANG=$LLVMROOT/lib/clang/$LLVM_VERSION
export MUSL32PATH=$LLVMROOT/armv7-none-eabi/libc
export MUSLPATH=$LLVMROOT/aarch64-none-elf/libc
export NOCHECK_TRUSTED_BOOT=false
export ICCC_ENABLED=true

echo LLVM_VERSION=$LLVM_VERSION
echo LLVMROOT=$LLVMROOT
echo LLVMBIN=$LLVMBIN
echo LLVMLIB=$LLVMLIB
echo LLVMINC=$LLVMINC
echo LLVM32INC=$LLVM32INC
echo LLVMTOOLPATH=$LLVMTOOLPATH
echo LLVMCLANG=$LLVMCLANG
echo MUSL32PATH=$MUSL32PATH
echo MUSLPATH=$MUSLPATH

# TZ related libraries
INCLUDE_TZ_LIBRARIES_TO_APP_FOLDERS

TA_NAME=bc_tui
source ${WS_ROOT_DIR}/build_version.config
export SUPPORT_IRIS=false
export SUPPORT_SOFTKEY_PUNCHCUT=true

TUI_QC_PRD_DIR="app/src/cmn_production/assets/ta/qc/${1:2:${#1}}"
TUI_QC_STG_DIR="app/src/cmn_staging/assets/ta/qc/${1:2:${#1}}"
TUI_OUT_DIR_PRD="${WS_ROOT_DIR}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${TUI_QC_PRD_DIR}"
TUI_OUT_DIR_STG="${WS_ROOT_DIR}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${TUI_QC_STG_DIR}"
mkdir -p $TUI_OUT_DIR_PRD
mkdir -p $TUI_OUT_DIR_STG

if [ $2 == "q2q" ]; then

export Q2Q_PROJECT=true
export B2Q_PROJECT=false

TUI_RESOURCE_DIR="q2q"

echo ====================== BUILD PRODUCTION TA $TUI_DPI =======================
export STAGING_ENV=false
mkdir -p $TUI_OUT_DIR_PRD/$TUI_RESOURCE_DIR/
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_PRD}/${TUI_RESOURCE_DIR}/${TA_NAME}.mp3

echo ======================== BUILD STAGING TA $TUI_DPI ========================
export STAGING_ENV=true
mkdir -p $TUI_OUT_DIR_STG/$TUI_RESOURCE_DIR/
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_STG}/${TUI_RESOURCE_DIR}/${TA_NAME}.mp3

elif [ $2 == "b2q" ]; then

export Q2Q_PROJECT=false
export B2Q_PROJECT=true

TUI_RESOURCE_DIR="b2q"

echo ====================== BUILD PRODUCTION TA $TUI_DPI =======================
export STAGING_ENV=false
mkdir -p $TUI_OUT_DIR_PRD/$TUI_RESOURCE_DIR/
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_PRD}/${TUI_RESOURCE_DIR}/${TA_NAME}.mp3

echo ======================== BUILD STAGING TA $TUI_DPI ========================
export STAGING_ENV=true
mkdir -p $TUI_OUT_DIR_STG/$TUI_RESOURCE_DIR/
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_STG}/${TUI_RESOURCE_DIR}/${TA_NAME}.mp3

else

export Q2Q_PROJECT=false
export B2Q_PROJECT=false

echo ====================== BUILD PRODUCTION TA $TUI_DPI =======================
export STAGING_ENV=false
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_PRD}/${TA_NAME}.mp3

echo ======================== BUILD STAGING TA $TUI_DPI ========================
export STAGING_ENV=true
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --config=build_config_$TA_NAME.xml $TA_NAME --clean
python build_all.py -b TZ.XF.5.0 CHIPSET=$BUILD_CHIP PRODUCT_NAME=$PRODUCT_NAME --cnb --config=build_config_$TA_NAME.xml --cbt $TA_NAME
java -jar ${SIGNCLIENT} -model ${SECURE_NAME} -runtype ${RUNTYPE} -input ${BIN_OUT_DIR}/${TA_NAME}.mbn -output ${TUI_OUT_DIR_STG}/${TA_NAME}.mp3

fi