#!/bin/sh

INPUTNAME=""
CTALKBIN=`which ctalk`
GCCBIN=`which gcc`
CTALKFLAGS=-P
KEEPTMPS="no"
EXTRALIBS=
GCCFLAGS=-g
OUTFILENAME="ctalk.out"
CTALKOUTPUT="ctalk.out.i"
INCLUDEFLAGS=""
LD_LIBRARY_OPT=`if [ $LD_LIBRARY_PATH ]; then printf "%s" -L$LD_LIBRARY_PATH; else printf " "; fi;`

help () {
    echo "Usage: ctdb [-h] [-I dir] [-k] [-m] [-o output-file] input-files"
    echo "-h      Print help and exit."
    echo "-I dir  Add directory to Ctalk search path."
    echo "-k      Keep temporary files."
    echo "-m      Add -lm to linker flags."
    echo "-o arg  Name the output file to the argument.  The default output "
    echo "        file name is, \"ctalk.out.\""
    echo "Report bugs to: ctalk@ctalklang.org."
    exit 1;
}

if [ $# -eq 0 ] ; then help; fi

while [ $# -ge 1 ] ; do
    case $1 in
	-k)
	  KEEPTMPS="yes";
	  shift 1;
	  ;;
	-m)
	  EXTRALIBS=$EXTRALIBS" -lm";
	  shift 1;
	  ;;
	-h)
	  help;
	  ;;
	-I)
	  shift 1;
	  INCLUDEFLAGS=$INCLUDEFLAGS" -I $1 ";
	  shift 1;
	  ;;
	-o)
	  shift 1;
	  OUTFILENAME=$1;
	  CTALKOUTPUT=$OUTFILENAME".i";
	  shift 1;
	  ;;
	*)
	  INPUTNAME=$INPUTNAME" $1 ";
	  shift 1;
	  ;;
    esac
done

if [ -z "$INPUTNAME" ] ; then help; fi 

echo "$CTALKBIN $INCLUDEFLAGS $CTALKFLAGS $INPUTNAME -o $CTALKOUTPUT && $GCCBIN $GCCFLAGS $CTALKOUTPUT -o $OUTFILENAME -lctalk $LD_LIBRARY_OPT $EXTRALIBS "
$CTALKBIN $INCLUDEFLAGS $CTALKFLAGS $INPUTNAME -o $CTALKOUTPUT && $GCCBIN $GCCFLAGS $CTALKOUTPUT -o $OUTFILENAME -lctalk $LD_LIBRARY_OPT $EXTRALIBS 

if [ $KEEPTMPS = "no" ] ; then
    rm -f $CTALKOUTPUT
fi
