#!/bin/sh

ECH=0
DEBUG=0
SPACEBALL=0
SPACEWAREPATH="/usr/SpaceWare"

if [ "$MAV_HOME" = "" ] ; then echo Set your MAV_HOME environment variable; exit ; fi

if [ $ECH = "1" ] ; then echo; echo Processing options; echo Options are `echo $* | sed 's/--/:/g'` ; fi

IFS=:
for i in `echo $* --fin | sed 's/--/:/g'`
do
    if [ "$i" != "" ] ; then 
    if [ $ECH = "1" ] ; then echo; echo Processing option $i ; fi

    case $i in
    "fin")
	;;

    "debug ")
	if [ $ECH = "1" ] ; then echo Debug option detected ; fi
	DEBUG=1;
	;;

    "SpaceBall ")
	if [ $ECH = "1" ] ; then echo SpaceBall option detected ; fi
	SPACEBALL=1;
	;;

    SpaceWarePath*)
	if [ $ECH = "1" ] ; then echo SpaceWare path detected ; fi
	SPACEWAREPATH=`echo $i | cut -f2 -d"=" | awk '{print substr($0, 1, length-1)}'`
	if [ $ECH = "1" ] ; then echo SpaceWare path set to "["$SPACEWAREPATH"]" ; fi
	;;

    "help ")
	echo "Usage $0 [options]"
	echo "Where options are:"
	echo "  --debug"
	echo "  --SpaceBall"
	echo "  --SpaceWarePath=<path> (e.g. /usr/SpaceWare)"
	;;

    *)
	echo Unknown option $i
	echo Try $0 --help
	exit 1
	;;
    esac
    fi
done

if [ $ECH = "1" ] ; then echo ; echo Determining machine, ABI etc... ; fi


case `uname -s` in
IRIX|IRIX64)
    if [ $ECH = "1" ] ; then echo An SGI box ... ; fi
    PRO=`hinv | grep CPU | awk '{print $3}'`
    if [ $ECH = "1" ] ; then echo With a $PRO processor ... ; fi

    case `uname -r` in
    6*)
	if [ $ECH = "1" ] ; then echo Running Irix 6.x ... ; fi
	OS="-DTDM_IRIX6"
	if [ "`uname -s`" = "IRIX" ] ; then
	    if [ $ECH = "1" ] ; then echo Using n32 ABI ... ; fi
	    ABI="-n32"
	else
	    if [ $ECH = "1" ] ; then echo Using n32 ABI ... ; fi
	    ABI="-n32" 
        fi
	if [ $PRO = "R10000" ] ; then MIPS="-mips4 -r10000" ; fi
	;;

    5*)
	if [ $ECH = "1" ] ; then echo Running Irix 5.x ... ; fi
	OS="-DTDM_IRIX5"
       	;;
    *)
       	echo Dont know how to configure Irix `uname -r`, exiting
	exit 1
       	;;
    esac

    CC="cc"
    if [ "$DEBUG" = "1" ] ; then 
	OT="-g"
    else
	OT="-O2"
    fi
    CFLAG=`echo $OS $ABI $MIPS $OT`
    LD=`echo ld $ABI -shared`
    ;;

Linux|linux-gnu)
    if [ $ECH = "1" ] ; then echo A Linux box...; fi

    CC="gcc"
    if [ "$DEBUG" = "1" ] ; then 
	OT="-Wall -g"
    else
	OT="-Wall -O2 -finline-functions -fomit-frame-pointer -funroll-loops -ffast-math"
    fi
    OS="-DTDM_LINUX"
    CFLAG=`echo $OS $OT`
    LD="ld -shared"
    ;;

SunOS)
    if [ $ECH = "1" ] ; then echo A SunOS box...; fi

    case `uname -r` in
    5*)
	if [ $ECH = "1" ] ; then echo Running SunOS 5.x ... ; fi

	CC="cc"
	if [ "$DEBUG" = "1" ] ; then
	    OT="-g"
	else
	    OT="-O"
	fi
	OS="-DTDM_SUNOS5"
	CFLAG=`echo $OS $OT`
	LD="ld -G"
	;;

    *)
       	echo Dont know how to configure SunOS `uname -r`, exiting
	exit 1
	;;
    esac
    ;;

*)
    echo Dont know about `uname -s`, exiting
    exit 1
    ;;
esac

cat << EOF >Makefile
all:    plat

libs:
	cd src; make

clean:
	cd src; make clean

plat:
	make libs \\
	"CC= ${CC}" \\
	"CFLAG= ${CFLAG}" \\
	"LD= ${LD}" \\
	"SPACEBALL= ${SPACEBALL}" \\
	"SPACEWAREPATH= ${SPACEWAREPATH}"
EOF
