#!/bin/bash -e

case $1 in
x86 | "")
	PLATFORM="x86" ;;
CE4100)
	PLATFORM="CE4100" ;;
Arm)
        PLATFORM="Arm" ;;
*)
	echo "Unknown platform"
	exit 1
	;;
esac

SCRIPT_DIR=`pwd`

# Take version
MAJOR=`grep "#define XN_PS_MAJOR_VERSION" ../../../Include/XnPsVersion.h | awk '{ print $3 }' | strings -n 1`
MINOR=`grep "#define XN_PS_MINOR_VERSION" ../../../Include/XnPsVersion.h | awk '{ print $3 }' | strings -n 1`
MAINTENANCE=`grep "#define XN_PS_MAINTENANCE_VERSION" ../../../Include/XnPsVersion.h | awk '{ print $3 }' | strings -n 1`
BUILD=`grep "#define XN_PS_BUILD_VERSION" ../../../Include/XnPsVersion.h | awk '{ print $3 }' | strings -n 1`

PS_VERSION="$MAJOR.$MINOR.$MAINTENANCE.$BUILD"

# clean
rm -rf Final
rm -rf ../Redist

# Build Engine
make PLATFORM=$PLATFORM -C ../Build clean
make PLATFORM=$PLATFORM -C ../Build

# create redist folder structure
mkdir -p ../Redist
mkdir -p ../Redist/Lib
mkdir -p ../Redist/Bin
mkdir -p ../Redist/Install
mkdir -p ../Redist/Config

# copy files to redist
cp ../../../GPL.txt ../Redist
cp ../../../LGPL.txt ../Redist
cp ../Bin/Release/libXnDeviceSensorV2.* ../Redist/Lib
cp ../Bin/Release/libXnDeviceFile.* ../Redist/Lib
cp ../Bin/Release/libXnDDK.* ../Redist/Lib
cp ../Bin/Release/libXnFormats.* ../Redist/Lib
cp ../Bin/Release/libXnCore.* ../Redist/Lib
cp ../Bin/Release/XnSensorServer ../Redist/Bin
cp ../Install/* ../Redist/Install
cp install.sh ../Redist

# fix GlobalDefaults according to platform
if [ "$PLATFORM" == "CE4100" ]; then
	# change default UsbInterface to BULK and default image+depth format to compressed
	cat ../../../Data/GlobalDefaults.ini | sed 's/[;]*UsbInterface=.*/UsbInterface=2/' | sed 's/[;]*InputFormat=.*/InputFormat=1/' > ../Redist/Config/GlobalDefaults.ini
else
	cp ../../../Data/GlobalDefaults.ini ../Redist/Config
fi

# create tar
mkdir -p Final
cd ../Redist

if [ "`uname -s`" == "Darwin" ]; then
	TAR_TARGET="MacOSX"
elif [ "$PLATFORM" == "CE4100" ]; then
	TAR_TARGET="CE4100"
elif [ "$PLATFORM" == "Arm" ]; then
	TAR_TARGET="Arm"
elif [ "`uname -m`" == "i686" ]; then
	TAR_TARGET="Linux32"
elif [ "`uname -m`" == "x86_64" ]; then
	TAR_TARGET="Linux64"
else
	TAR_TARGET="Linux"
fi

tar -cjf $SCRIPT_DIR/Final/Sensor-Bin-$TAR_TARGET-v$PS_VERSION.tar.bz2 *

cd -
