#!/bin/bash

##SlackBuild style build script

CWD=`pwd`
NAME=iTest
VERSION=1.3.0
ARCH=i586
BUILD=1vl59
VL_PACKAGER=easuter

if [ "$TMP" = "" ]; then
  TMP=/tmp
fi

if [ $UID != 0 ]; then
	echo "You need to be root to run this script."
	exit
fi

if [ ! -x /usr/bin/requiredbuilder ]; then
	echo "Requiredbuilder not installed, or not executable."
	exit
fi

if [ ! -d $TMP/finished-packages ]; then
	mkdir -p $TMP/finished-packages
fi

PKG=$TMP/package-$NAME
SRCDIR=$TMP/$NAME-$VERSION-src
rm -rf $PKG
rm -rf $SRCDIR
mkdir -p $PKG/usr
mkdir $PKG/install


if [ "$ARCH" = "i386" ]; then
	export CFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
	export CFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i586" ]; then
	export CFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
	export CFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
	export CFLAGS="-O2"
elif [ "$ARCH" = "noarch" ]; then
	export CFLAGS=""
fi

CXXFLAGS="$CFLAGS"

tar xvf $NAME-$VERSION-src.tar.gz -C $TMP
cd $SRCDIR

chown -R root:root .
chmod 644 -R ./*

#Configure the client and server components

( cd iTestClient
qmake4 -config release
lrelease4 iTestClient.pro )

( cd iTestServer
qmake4 -config release
lrelease4 iTestServer.pro )

qmake4 -config release

make

if ( ! make ); then
	echo "make failed"
	exit
fi

cp $CWD/slack-desc* .

cat >> slack-desc-client << EOF

#----------------------------------------

BUILDDATE: `date`
PACKAGER:  $VL_PACKAGER
HOST:      `uname -srm`
DISTRO:    `cat /etc/vector-version`
CFLAGS:    $CFLAGS
CONFIGURE: `awk "/\.\/configure\ /" config.log`

EOF

cat >> slack-desc-server << EOF

#----------------------------------------

BUILDDATE: `date`
PACKAGER:  $VL_PACKAGER
HOST:      `uname -srm`
DISTRO:    `cat /etc/vector-version`
CFLAGS:    $CFLAGS
CONFIGURE: `awk "/\.\/configure\ /" config.log`

EOF

#install components and files manually
mkdir -p $PKG/server/usr/bin
mkdir -p $PKG/server/usr/share/applications
mkdir $PKG/server/usr/share/pixmaps
mkdir $PKG/server/install
cp itestwri.png $PKG/server/usr/share/pixmaps
cp bin/iTestServer $PKG/server/usr/bin
cat $CWD/iTestServer.desktop > \
	$PKG/server/usr/share/applications/iTestServer.desktop

mkdir -p $PKG/client/usr/bin
mkdir -p $PKG/client/usr/share/applications
mkdir $PKG/client/usr/share/pixmaps
mkdir $PKG/client/install
cp itest.png $PKG/client/usr/share/pixmaps
cp bin/iTestClient $PKG/client/usr/bin
cat $CWD/iTestClient.desktop > \
	$PKG/client/usr/share/applications/iTestClient.desktop


( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)

mkdir -p $PKG/server/usr/doc/$NAME-$VERSION
mkdir -p $PKG/client/usr/doc/$NAME-$VERSION
cp gpl.txt readme.txt $PKG/server/usr/doc/$NAME-$VERSION
cp gpl.txt readme.txt $PKG/client/usr/doc/$NAME-$VERSION

cat slack-desc-server > $PKG/server/install/slack-desc
cat slack-desc-client > $PKG/client/install/slack-desc

( cd $PKG/server
requiredbuilder -v -y .
makepkg -p -l y -c n ${NAME}Server-$VERSION-$ARCH-$BUILD.tlz

cp ${NAME}Server-$VERSION-$ARCH-$BUILD.tlz $TMP/finished-packages
echo "${NAME}Server-$VERSION package is in $TMP/finished-packages" )

( cd $PKG/client
requiredbuilder -v -y .
makepkg -p -l y -c n ${NAME}Client-$VERSION-$ARCH-$BUILD.tlz

cp ${NAME}Client-$VERSION-$ARCH-$BUILD.tlz $TMP/finished-packages
echo "${NAME}Client-$VERSION package is in $TMP/finished-packages" )

rm -rf $SRCDIR
rm -rf $PKG

