#!/bin/ksh

LOG() {
	echo "[$SCRIPT_NAME]: $1"
}

LOGERR() {
	echo "[$SCRIPT_NAME]: BUILD ERROR: $1"
}


unixtime() {
	echo 1388477291
}

#--------------------------------------------------------------
# Determine the platform on which we are building
#--------------------------------------------------------------
C_COMP=
CXX_COMP=

OSPLAT=`uname -s`

case $OSPLAT in
    Linux*)
	C_COMP=`which gcc`
	CXX_COMP=`which g++`
        LOG "Platform is Linux"

        # ensure that MAKE env var is defined
        if [ -z "$MAKE" ]
        then
            MAKE=/usr/bin/gmake
        else
            LOG "Overriding MAKE env var to '$MAKE'..."
        fi

        ARCH=`uname -p`
        PACK_MACHTYPE="i686"
        ISA=32
        user_login_id=$LOGNAME

        if [ -f "/etc/redhat-release" ]; then
            redhat_release=$(rpm -q --queryformat "%{VERSION}" -f /etc/redhat-release)
            if [ `echo ${redhat_release} | grep "3.*AS"` ]; then
                OSREL="RHAS3.0"
                LINUX_DIST="LINUX_RHEL30"
            elif [ `echo ${redhat_release} | grep "4.*AS"` ]; then
                OSREL="RHEL4.0"
                LINUX_DIST="LINUX_RHEL40"
            elif [ `echo ${redhat_release} | grep "5Server"` ]; then
                OSREL="RHEL5.0"
                LINUX_DIST="LINUX_RHEL50"
            elif `grep -qis "XenServer release" \
                /etc/redhat-release` ; then
            OSREL="RHEL5.0"
            LINUX_DIST="LINUX_RHEL50"
        elif [ `echo ${redhat_release} | grep "6Server"` ]; then
            OSREL="RHEL6.0"
            LINUX_DIST="LINUX_RHEL60"
            ARCH=i686
        else
            LOGERR "Unable to determine RedHat release.  Exiting..."
            exit 1
        fi
    elif [ -f "/etc/SuSE-release" ]; then
        if [ ${ARCH} = "i386" -o ${ARCH} = "i686" ]; then
            ARCH=i586
        fi
        sles_release=$(rpm -q --queryformat "%{VERSION}" sles-release)
        if [ `echo ${sles_release} | grep "9"` ]; then
            OSREL="SLES9"
            LINUX_DIST="LINUX_SLES9"
        elif [ `echo ${sles_release} | grep "10"` ]; then
            OSREL="SLES10"
            LINUX_DIST="LINUX_SLES10"
        elif [ `echo ${sles_release} | grep "11"` ]; then
            ARCH=i686
            OSREL="SLES11"
            LINUX_DIST="LINUX_SLES11"
        else
            LOGERR "Unable to determine SuSE release.  Exiting..."
            exit 1
        fi
    else
        LOGERR "Unable to determine Linux distribution.  Exiting..."
        exit 1
    fi

    ;;
*)
    LOGERR "Unable to determine OS platform.  Exiting..."
    exit 1
esac

export OSPLAT OSREL ARCH ISA MAKE LINUX_DIST


if [ -z "$PKGINFO_VERSION" ]
then 
    PKGINFO_VERSION="$user_login_id@`hostname`_private_build"
    export PKGINFO_VERSION
else
    LOG "Overriding value for PKGINFO_VERSION with '$PKGINFO_VERSION'"
	PKG_VER=`echo $PKGINFO_VERSION | sed 's/\-.*$//'`
	PRODUCT_MAJOR_VERSION=`echo $PKG_VER | cut -d "-" -f1 | cut -d "." -f1 | sed 's/^0*\([0-9]\)/\1/'`
	PRODUCT_MINOR_VERSION=`echo $PKG_VER | cut -d "-" -f1 | cut -d "." -f2 | sed 's/^0*\([0-9]\)/\1/'`
	PRODUCT_MAINTPACK_VERSION=`echo $PKG_VER | cut -d "-" -f1 | cut -d "." -f3 | sed 's/^0*\([0-9]\)/\1/'`
	PRODUCT_POINTPATCH_VERSION=`echo $PKG_VER | cut -d "-" -f1 | cut -d "." -f4 | sed 's/^0*\([0-9]\)/\1/'`
	export PRODUCT_MAJOR_VERSION PRODUCT_POINTPATCH_VERSION PRODUCT_MINOR_VERSION PRODUCT_MAINTPACK_VERSION
fi

if [ -z "$PKGINFO_BUILD_DATE" ] || [ -z "$PKGINFO_PSTAMP" ]
then
    PKGINFO_BUILD_DATE=`unixtime`
    PKGINFO_PSTAMP="$user_login_id@`hostname`_private_build_`date "+%m/%d/%y-%H:%M:%S"`"
    export PKGINFO_BUILD_DATE PKGINFO_PSTAMP
else
    LOG "Overriding value for PKGINFO_BUILD_DATE with $PKGINFO_BUILD_DATE"
    LOG "Overriding value for PKGINFO_PSTAMP with $PKGINFO_PSTAMP"
fi

export CC=${C_COMP}
export CXX=${CXX_COMP}

cmake_dir=${SRC_BUILD_DIR}/cmake_build/${OSPLAT}/${OSREL}/${ARCH}/${ISA}
mkdir -p $cmake_dir

# if [ ! -d "$cmake_dir" ]; then
# fi

cd ${cmake_dir} && cmake ${SRC_BUILD_DIR}/src && make $@


