#!/bin/sh

# Where you store your pandora's projects
export PROJECTS_BASEDIR=${PROJECTS_BASEDIR:-"$HOME/Pandora"}
# Local storage for PNDs
export PND_TARGETDIR=$PROJECTS_BASEDIR/PNDs
# Build target and pnd moint point
export PND_BASEDIR=/mnt/utmp

export CMAKETOOLCHAINFILE="/usr/local/angstrom/arm/toolchain.cmake"

export SDK_PATH=/usr/local/angstrom/arm TARGET_SYS=arm-angstrom-linux-gnueabi
export CONFIG_SITE=$SDK_PATH/site-config
export PATH=$SDK_PATH/bin:$PATH:$SDK_PATH/$TARGET_SYS/usr/bin
export LIBTOOL_SYSROOT_PATH=$SDK_PATH/$TARGET_SYS
export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS
export PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS/usr/lib/pkgconfig
export CPATH="$SDK_PATH/$TARGET_SYS/usr/include:$CPATH" CFLAGS="-DPANDORA -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant" CXXFLAGS="-I$SDK_PATH/$TARGET_SYS/usr/include" LDFLAGS="-L$SDK_PATH/$TARGET_SYS/usr/lib -Wl,-rpath,$SDK_PATH/$TARGET_SYS/usr/lib"
export CPPFLAGS="$CFLAGS"

export CROSSTOOL="$SDK_PATH/bin/$TARGET_SYS"
export CXX=$CROSSTOOL-g++ CC=$CROSSTOOL-gcc AR=$CROSSTOOL-ar AS=$CROSSTOOL-as RANLIB=$CROSSTOOL-ranlib STRIP=$CROSSTOOL-strip
export HOST_CC=gcc HOST_CXX=g++

if [ -z "$LD_LIBRARY_PATH" ];then
	LD_LIBRARY_PATH=/usr/local/angstrom/arm/lib
else
	LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/angstrom/arm/lib
fi
export LD_LIBRARY_PATH

alias opkg="LD_LIBRARY_PATH=$SDK_PATH/lib $SDK_PATH/bin/opkg-cl -f $SDK_PATH//etc/opkg-sdk.conf -o $SDK_PATH"
alias opkg-target="LD_LIBRARY_PATH=$SDK_PATH/lib $SDK_PATH/bin/opkg-cl -f $SDK_PATH/$TARGET_SYS/etc/opkg.conf -o $SDK_PATH/$TARGET_SYS"

unsetSDK() {
        unset SDK_PATH CONFIG_SITE LIBTOOL_SYSROOT_PATH PKG_CONFIG_PATH CPATH CFLAGS CXXFLAGS LDFLAGS CROSSTOOL CXX CC AR AS RANLIB HOST_CC HOST_CXX PRJ
}

setprj() {
        export PRJ=$1;
        export LDFLAGS="$LDFLAGS -L/mnt/utmp/$PRJ/lib" CXXFLAGS="$CXXFLAGS -I/mnt/utmp/$PRJ/include" PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/mnt/utmp/$PRJ/lib/pkgconfig" CPATH="/mnt/utmp/$PRJ/include:$SDK_PATH/$TARGET_SYS/usr/include"
        if [ -d $PROJECTS_BASEDIR/$PRJ ];then
                cd $PROJECTS_BASEDIR/$PRJ
        fi
}

# Help to configure stuff
#-------------------------

pndconfigure() {
        ./configure --host=$TARGET_SYS --prefix=$PND_BASEDIR/$PRJ $@
}

pndcmake() {
        cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKETOOLCHAINFILE -DCMAKE_PREFIX=$PND_BASEDIR/$PRJ -DCMAKE_INSTALL_PREFIX=$PND_BASEDIR/$PRJ $@
}

pndqmake() {
        qmake-qt4 -spec linux-pandora-g++ $@
}

# To build the pnd file
#-----------------------

pndmakeauto(){
        NAME=${1:-$PRJ}
	[ ! -f $PND_BASEDIR/$NAME/PXML.xml ] && PRJ=$NAME genpxml
        pnd_make -c -p $PND_TARGETDIR/$NAME.pnd -d $PND_BASEDIR/$NAME -i $PND_BASEDIR/$NAME/icon.png -x $PND_BASEDIR/$NAME/PXML.xml
}

_setprj ()
{
        local cur
        _get_comp_words_by_ref cur
        COMPREPLY=()
        if ls $PROJECTS_BASEDIR/${cur}* >/dev/null 2>&1;then
                COMPREPLY=( $(ls -1d $PROJECTS_BASEDIR/${cur}*|sed "s#$PROJECTS_BASEDIR/##") )
        fi
        return 0
} 
complete -F _setprj setprj
