#!/bin/bash 

echo "Start `pwd`/ : $0"

function get_abs_path() {
	local __path=${1}

	[ ${__path:0:1} = "~" ] && __path=${HOME}${__path:1}
	[ ! -d ${__path} ] && return
	echo `eval cd ${__path};pwd`
}

NHLOS_ROOT_DIR=$(get_abs_path "../../..")
[ -z "${T_TZ_ID+x}" ] && \
	T_TZ_ID=WAXAANAA

[ -z ${SEC_FACTORY_BUILD+x} ] && \
     SEC_FACTORY_BUILD=false

MAKE_MODEL_DEFINE_TZ_HEADER()
{
	local tmpfile=`mktemp`
	SEC_TZBSP_PROEJCT_CFG=$NHLOS_ROOT_DIR/trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/inc/sec_tzbsp_project_cfg.h

	echo "// DO NOT EDIT - Auto-generated by build_linux_samsung.sh" > $tmpfile
	echo "#ifndef SEC_TZBSP_PROJECT_CONFIG_H" >> $tmpfile
	echo "#define SEC_TZBSP_PROJECT_CONFIG_H" >> $tmpfile
	echo "" >> $tmpfile
	##### add defined value below
	[ ! -z "${T_MODEL+x}" ] && \
		echo '#define '$T_MODEL'_PROJECT' >> $tmpfile
	if [ $SEC_FACTORY_BUILD == "true" ]; then
		echo "#define SEC_FACTORY_BUILD" >> $tmpfile
	fi
	############################
	echo "" >> $tmpfile
	echo "#endif" >> $tmpfile

	rsync -c --remove-source-files $tmpfile $SEC_TZBSP_PROEJCT_CFG

	# show header
	echo "--- start of $SEC_TZBSP_PROEJCT_CFG"
	cat $SEC_TZBSP_PROEJCT_CFG
	echo "--- end of $SEC_TZBSP_PROEJCT_CFG"
}

SHOW_TZ_HEADER_APPLIED_OEM_CONFIG()
{
	DEVCFG_TZ_OEM_MASTER_OUT_XML=$NHLOS_ROOT_DIR/trustzone_images/core/kernel/devcfg/build/devcfg/A53_64/$T_TZ_ID/DAL_DEVCFG_OEM_QSEE_IMG/DevCfg_master_7150_oem_tz.xml

	# show header-applied xml
	echo "--- start of $DEVCFG_TZ_OEM_MASTER_OUT_XML"
	cat $DEVCFG_TZ_OEM_MASTER_OUT_XML
	echo "--- end of $DEVCFG_TZ_OEM_MASTER_OUT_XML"
}

#export SSROOT="$(cd "`pwd`/../../../..";pwd)"
export SSROOT="$(cd "`pwd`/../../../samsung";pwd)"

#sdm845
#export LLVM_VERSION=3.9.6
#export LLVM_VERSION=3.9.3

#sdm670
#export LLVM_VERSION=4.0.3

#sm8150 sm7150 sm6150
export LLVM_VERSION=4.0.11

if [ $LLVM_VERSION == "3.7.6" ]; then
export LLVMROOT=/opt/toolchains/Qualcomm/llvm/$LLVM_VERSION
#export LLVMROOT=$SSROOT/tools/toolchains/Qualcomm/llvm/$LLVM_VERSION
export LLVMBIN=$LLVMROOT/bin
export LLVMLIB=$LLVMROOT/lib/clang/$LLVM_VERSION/lib/linux
export LLVMINC=$LLVMROOT/tools/lib64/include
export LLVM32INC=$LLVMROOT/tools/lib32/include
export LLVMTOOLPATH=$LLVMROOT/tools/bin
export LLVMCLANG=$LLVMROOT/lib/clang/$LLVM_VERSION
export MUSL32PATH=$LLVMROOT/tools/lib32
export MUSLPATH=$LLVMROOT/tools/lib64
else
export LLVMROOT=/opt/toolchains/Qualcomm/llvm/$LLVM_VERSION
#export LLVMROOT=$SSROOT/toolchain/qualcomm/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 LLVMLIBPROP=$LLVMROOT/lib/clang/$LLVM_VERSION/lib/linux-propri_rt
fi

echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
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
echo LLVMLIBPROP=$LLVMLIBPROP

MAKE_MODEL_DEFINE_TZ_HEADER

if [ "$1" == "clean" ]; then 
#Clean
echo "clean softsim TA..."
python build_all.py -b TZ.XF.5.0 -v CHIPSET=sm7150 --cnb --config=./bin/${BUILD_ID}/build_config_deploy.xml/build_config_deploy.xml --cbt=softsim --clean
echo "End clean softsim TA..."
else
#Compile
echo "Building softsim TA..."
python build_all.py -b TZ.XF.5.0 -v CHIPSET=sm7150 --cnb --config=./bin/${BUILD_ID}/build_config_deploy.xml/build_config_deploy.xml --cbt=softsim
echo "End Building softsim TA..."

if [ "${HAS_DEBUG}" == "yes" ];then
debug_path=../../ssg/bsp/trustzone/qsapps/softsim/build/${BUILD_ID}/debug
if [ ! -e  ${debug_path} ] ; then
    mkdir -vp ${debug_path}
fi
cp -vf ../../ssg/bsp/trustzone/qsapps/softsim/build/${BUILD_ID}/softsim.{mbn,elf,map,scl} ${debug_path}/
else
release_path=../../ssg/bsp/trustzone/qsapps/softsim/build/${BUILD_ID}/release
if [ ! -e ${release_path} ] ; then
    mkdir -p ${release_path}
fi
    cp -vf ../../ssg/bsp/trustzone/qsapps/softsim/build/${BUILD_ID}/softsim.{mbn,elf,map,scl} ${release_path}/
fi

fi 

echo "Stop `pwd`/ : $0"

