#!/bin/bash

test -z "$1" && echo "Usage: ./build.sh exynos8895" && exit 1
test ! -f '/opt/python2.7/python' && echo -e "You have no Python where NHLOS expected.\nUse 'sudo mkdir /opt/python2.7; sudo ln -fs $(which python) /opt/python2.7/python' to fix it." && exit 1

cur="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
KMSRK_ROOT_PATH=${cur%/keymaster_mdfpp*}

source $KMSRK_ROOT_PATH/keymaster_mdfpp/swd/env_swd.sh "$1" || exit 1

function swd_filter_output()
{
	if [[ $TARGET_SOC == "exynos"* ]]; then          #MOBICORE
		sed -e 's/.*\/\<armcc\>.*keymaster_mdfpp\/\(.*\)\.c\>.*/  CC      \1.c/g' \
		    -e 's/\/.*\/skeymaster_dev\/keymaster_mdfpp\///g' \
		    -e 's/.*\/\<armlink\>.*keymaster_mdfpp\/\(.*\)\.axf\>.*/  LD      \1.axf/g' \
		    -e 's/.*\/\<fromelf\>.*keymaster_mdfpp\/\(.*\)\.lst2\>.*/  ELF     \1.lst2/g' \
		    -e '/.*Your license for Compiler.*/d' \
		    -e '/^[ \t]*$/d' \
		    -e '/^mkdir/d' \
		    -e '/.*subprocess.call end.*/d' \
		    -e 's/: \(Error:  #.*\)/: \x1b[1;31m\1\x1b[0m/g' \
		    -e 's/^\(Error: .*\)/\x1b[1;31m\1\x1b[0m/g' \
		    -e '/^\*\*/d'
	elif [[ $TARGET_SOC == "msm"* ]] || [[ $TARGET_SOC == "s"* ]]; then          #QUALCOMM
		sed -e '/^[A-Za-z0-9_]\+=.*/d' \
		    -e '/^-------------\+/d' \
		    -e '/^   Loading .*/d' \
		    -e '/^| .*/d' \
		    -e '/^   called from .*/d' \
		    -e '/^!! WARNING: .*/d' \
		    -e '/^INFO:build_all.*/d' \
		    -e '/^[ \t]*$/d'
	else                                            #TEEGRIS
		sed -e 's/\/.*\/skeymaster_dev\/keymaster_mdfpp\///g'
	fi
}

make -C $KM_ROOT_PATH/swd distclean

if [ "$V" = "1" ]; then
	make -C $KM_ROOT_PATH/swd || exit 1
else
	make -C $KM_ROOT_PATH/swd -j16 2>&1 | swd_filter_output || exit 1
fi

make -C $KM_ROOT_PATH/swd sign || exit 1
