#!/bin/bash

#
# In case you modify the script make sure you run 
# dos2unix on it before checking it in.
#

if [ "`env | grep /data/mcs_wlan/2430/toolchain/arm-2007q1/bin -c`" = "0" ]; then
    echo 
    echo "In order to select host platform one of the following and execute:"
    echo "source /vobs/WiLink/platforms/os/linux/omap2430_env.tcsh"
    echo "source /vobs/WiLink/platforms/os/linux/omap3430_env.tcsh" 
    echo
    exit
fi


VERSION="$1_$2_$3_$4_$5"

echo ""
echo "****************************************************************************"
echo -n "* Hello, "
echo -n `finger $USER | grep Name | grep Login | sed -e 's/Login: '$USER'//' -e 's/Name: //'`
if [ "$1" = "clean" ]; then
    echo ". I will now clean WiLink"
else
    echo ". I will now build WiLink for you. "
fi
echo "****************************************************************************"
echo ""

ROOT_DIR="/vobs/WiLink"
LINUX_DIR="$ROOT_DIR/platforms/os/linux"
VERSIONTREE_DIR="$LINUX_DIR/VersionTree"


echo "*** Removing existing package remnants..."
cd "$LINUX_DIR"
make clean >& /dev/null
rm -r -f $VERSIONTREE_DIR
rm -r -f ~/WiLink
rm -f ~/WiLink61_Linux_noCCX_osa.tar.bz2
rm -f ~/WiLink61_Linux_noCCX_core.tar.bz2
rm -f ~/WiLink61_Linux_OpenSource.tar.bz2
rm -f ~/WiLink61_Linux_CCX_osa.tar.bz2
rm -f ~/WiLink61_Linux_CCX_core.tar.bz2
rm -f ~/WiLink61_Linux_Gem_osa.tar.bz2
rm -f ~/WiLink61_Linux_Gem_core.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_CCX_osa.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_CCX_core.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_noCCX_osa.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_noCCX_core.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_OpenSource.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_Gem_osa.tar.bz2
rm -f "$LINUX_DIR"/WiLink61_Linux_Gem_core.tar.bz2
if [ "$1" = "clean" ]; then
    echo "*** Cleaning up..."
    exit
else
    echo "*** Preparing environment..."
fi



echo "*** Removing redundant private files..."
cd "$ROOT_DIR"

files=`find . -name *.contrib*`
for file in ${files}; do
    rm -f ${file}
done

files=`find . -name *.keep*`
for file in ${files}; do
    rm -f ${file}
done

files=`find . -name *.d`
for file in ${files}; do
    rm -f ${file}
done

files=`find . -name *.*.cmd`
for file in ${files}; do
    rm -f ${file}
done

files=`find . -name *.mod*`
for file in ${files}; do
    rm -f ${file}
done

files=`find . -name *.d`
for file in ${files}; do
    rm -f ${file}
done


if [ "$5" = "clean" ]; then
	echo "*** Done!"
    exit
fi


cd "$LINUX_DIR"


echo "*** Building directory tree..."
mkdir -p "$VERSIONTREE_DIR/SDIO_CCX"
mkdir -p "$VERSIONTREE_DIR/GEM"
mkdir -p "$VERSIONTREE_DIR/SDIO_NOCCX"
mkdir -p "$VERSIONTREE_DIR/Target Host BSP Images"
mkdir -p "$VERSIONTREE_DIR/Sources"
echo "*** Done!"
echo "*** "
echo "*** "

echo "*** Starting to create packages..."

echo "*** Creating Driver CCX package..."
perl scripts/wl61_pkg_linux.pl -ccx

echo "*** Creating Driver GEM  package..."
perl scripts/wl61_pkg_linux.pl -gem

echo "*** Creating Driver No-CCX Non-Open Source package..."
perl scripts/wl61_pkg_linux.pl
echo "*** Creating Driver No-CCX Open Source package..."
perl scripts/wl61_pkg_linux.pl -gpl

echo "*** Processing Driver CCX packages..."
echo "*** Copying packages to your home directory..."
cp WiLink61_Linux_CCX_osa.tar.bz2 ~/
cp WiLink61_Linux_CCX_core.tar.bz2 ~/
echo "*** Extracting WiLink CCX tar file ..."
cd ~/
tar -xvjf WiLink61_Linux_CCX_osa.tar.bz2
tar -xvjf WiLink61_Linux_CCX_core.tar.bz2
echo "****** Importing Supplicant files (for build purpose only)..."
cp -rLf /vobs/WiLink/CUDK/devicescape-dsa-ccx-wps-2.0.1-008/ ~/WiLink/CUDK/
echo "*** Starting to build CCX extracted package ..."
cd ~/WiLink/platforms/os/linux
make CCX=y SUPPL=DEVICESCAPE
echo "*** copying Driver CCX binaries ..."
cp ~/WiLink/platforms/os/linux/omap2430Binaries.tar "$VERSIONTREE_DIR/SDIO_CCX"
cp -rf "$LINUX_DIR"/images/omap2430/* "$VERSIONTREE_DIR/Target Host BSP Images"
cp "$LINUX_DIR"/WiLink61_Linux_CCX_osa.tar.bz2 "$VERSIONTREE_DIR/Sources"
cp "$LINUX_DIR"/WiLink61_Linux_CCX_core.tar.bz2 "$VERSIONTREE_DIR/Sources"
rm -r -f ~/WiLink
echo "*** Done with Driver CCX ..."

echo "*** Processing Driver NO-CCX packages..."
echo "*** Copying packages to your home directory..."
cp "$LINUX_DIR"/WiLink61_Linux_noCCX_osa.tar.bz2 ~/
cp "$LINUX_DIR"/WiLink61_Linux_noCCX_core.tar.bz2 ~/
echo "*** Extracting WiLink NO-CCX tar file ..."
cd ~/
tar -xvjf WiLink61_Linux_noCCX_osa.tar.bz2
tar -xvjf WiLink61_Linux_noCCX_core.tar.bz2
echo "****** Importing Supplicant files (for build purpose only)..."
cp -rLf /vobs/WiLink/CUDK/wpa_suppl/ ~/WiLink/CUDK/
echo "*** Starting to build NO-CCX extracted package ..."
cd ~/WiLink/platforms/os/linux
make CCX=n SUPPL=WPA
echo "*** copying Driver NO-CCX binaries ..."
cp ~/WiLink/platforms/os/linux/omap2430Binaries.tar "$VERSIONTREE_DIR/SDIO_NOCCX"
cp "$LINUX_DIR"/WiLink61_Linux_noCCX_osa.tar.bz2 "$VERSIONTREE_DIR/Sources"
cp "$LINUX_DIR"/WiLink61_Linux_noCCX_core.tar.bz2 "$VERSIONTREE_DIR/Sources"
rm -r -f ~/WiLink
echo "*** Done with Driver NO-CCX ..."

echo "*** Processing Driver GEM packages..."
echo "*** Copying packages to your home directory..."
cp "$LINUX_DIR"/WiLink61_Linux_Gem_osa.tar.bz2 ~/
cp "$LINUX_DIR"/WiLink61_Linux_Gem_core.tar.bz2 ~/
echo "*** Extracting WiLink GEM tar file ..."
cd ~/
tar -xvjf WiLink61_Linux_Gem_osa.tar.bz2
tar -xvjf WiLink61_Linux_Gem_core.tar.bz2
echo "****** Importing Supplicant files (for build purpose only)..."
cp -rLf /vobs/WiLink/CUDK/gem_suppl/ ~/WiLink/CUDK/
echo "*** Starting to build GEM extracted package ..."
cd ~/WiLink/platforms/os/linux
make   GEM=y CCX=n SUPPL=GEM CONFIG_WAPI=y
echo "*** copying Driver GEM binaries ..."
cp ~/WiLink/platforms/os/linux/omap2430Binaries.tar "$VERSIONTREE_DIR/GEM"
cp "$LINUX_DIR"/WiLink61_Linux_Gem_osa.tar.bz2 "$VERSIONTREE_DIR/Sources"
cp "$LINUX_DIR"/WiLink61_Linux_Gem_core.tar.bz2 "$VERSIONTREE_DIR/Sources"
rm -r -f ~/WiLink
echo "*** Done with Driver GEM..."

echo "*** Processing Driver NO-CCX Open Source packages..."
echo "*** Copying packages to your home directory..."
cp "$LINUX_DIR"/WiLink61_Linux_OpenSource.tar.bz2 ~/
echo "*** Extracting WiLink NO-CCX tar file ..."
cd ~/
tar -xvjf WiLink61_Linux_OpenSource.tar.bz2
echo "****** Importing Supplicant files (for build purpose only)..."
cp -rLf /vobs/WiLink/CUDK/wpa_suppl/ ~/WiLink/CUDK/
echo "*** Starting to build NO-CCX Open Source extracted package ..."
cd ~/WiLink/platforms/os/linux
# due to the fact that in Open Source package all CCX switch to XCC we call XCC=n instaed of CCX=n
make XCC=n SUPPL=WPA
echo "NOTE!!:  NO-CCX Open Source package does NOT include images, so IGNORE THE LAST ERROR!!!."
echo "If we got here then the build process is COMPLETED SUCCESSFULLY!!"
cp "$LINUX_DIR"/WiLink61_Linux_OpenSource.tar.bz2 "$VERSIONTREE_DIR/Sources"
rm -r -f ~/WiLink
echo "*** Finished Validating Driver NO-CCX Open Source..."

rm -f ~/WiLink61_Linux_noCCX_osa.tar.bz2
rm -f ~/WiLink61_Linux_noCCX_core.tar.bz2
rm -f ~/WiLink61_Linux_OpenSource.tar.bz2
rm -f ~/WiLink61_Linux_CCX_osa.tar.bz2
rm -f ~/WiLink61_Linux_CCX_core.tar.bz2
rm -f ~/WiLink61_Linux_Gem_osa.tar.bz2
rm -f ~/WiLink61_Linux_Gem_core.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_CCX_core.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_CCX_osa.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_noCCX_core.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_noCCX_osa.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_OpenSource.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_Gem_osa.tar.bz2
rm "$LINUX_DIR"/WiLink61_Linux_Gem_core.tar.bz2

echo ""
echo "****************************************************************************"
echo "* Build process done! "
echo "* "
echo "* Shalom"
echo "****************************************************************************"
echo ""

