#!/bin/bash -e

OS_TYPE=`uname -s`
MACHINE_TYPE=`uname -m`

function calc_jobs_number() {
	if [ $OS_TYPE == "Darwin" ] ; then
		N_CORES=$(sysctl -n hw.physicalcpu)
	else
		N_CORES=$(grep "processor\W:" /proc/cpuinfo | wc -l)
	fi
	echo $((N_CORES*2))
}

if [ $# -gt 1 ]
then
	echo "Usaga: $0 [PLATFORM]"
	exit 1
fi

if [ $# -eq 1 ]
then
	PLATFORM=$1
else
	case $MACHINE_TYPE in
	x86 | i386 | i686)
		PLATFORM="x86" ;;
	x86_64)
		PLATFORM="x64" ;;
	arm)
		PLATFORM="Arm" ;;
	aarch64)
		PLATFORM="AArch64" ;;
	ppc)
		PLATFORM="Powerpc" ;;
	arm*)
		PLATFORM="Arm" ;;
	*)
		echo "Unknown machine type: $MACHINE_TYPE"
		exit 1
		;;
	esac
fi

export PLATFORM

if [ "$OS_TYPE" == "Darwin" ]; then
	TAR_TARGET="MacOSX"
else
	TAR_TARGET="Linux-$PLATFORM"
fi

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"

echo "Creating redist for Sensor v$PS_VERSION"

REDIST_NAME="Sensor-Bin-$TAR_TARGET-v$PS_VERSION"
REDIST_DIR="Redist/$REDIST_NAME"

# clean
echo "Cleaning previous outputs..."
rm -rf Final
rm -rf ../$REDIST_DIR

# Build Engine
echo "Building..."
make -C ../Build clean > /dev/null
make -C ../Build

# create redist folder structure
echo "Creating redist folder..."
mkdir -p ../$REDIST_DIR
mkdir -p ../$REDIST_DIR/Lib
mkdir -p ../$REDIST_DIR/Bin
mkdir -p ../$REDIST_DIR/Install
mkdir -p ../$REDIST_DIR/Config

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

cp ../../../Data/GlobalDefaults.ini ../$REDIST_DIR/Config

# create tar
echo "Creating tar..."
mkdir -p Final
cd ../Redist

tar -cjf $SCRIPT_DIR/Final/$REDIST_NAME.tar.bz2 $REDIST_NAME

cd $SCRIPT_DIR

echo "Done!"
