#!/bin/sh

INPUTNAME="!none"
BASENAME=
CTALKBIN=`which ctalk`
GCCBIN=`which gcc`
CTALKFLAGS=-P
KEEPTMPS="no"
NEEDOPTARG="no"
EXTRALIBS=
GCCFLAGS=-g
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] input-file"
    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."
    exit 1;
}

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

for i in $@ ; do 
    case $i in
	-k)
	  KEEPTMPS="yes";
	  ;;
	-m)
	  EXTRALIBS=$EXTRALIBS" -lm"
	  ;;
	-h)
	  help;
	  ;;
	-I)
	  CTALKFLAGS=$CTALKFLAGS" -I "
	  NEEDOPTARG="yes"
	  ;;
	*)
          if [ $NEEDOPTARG = "yes" ]; then
	      CTALKFLAGS=$CTALKFLAGS"$i" ;
	      NEEDOPTARG="no" ;
	  else
	      BASENAME="$BASENAME "`basename $i .c`;
	      INPUTNAME=$i;
	  fi
	  ;;
    esac
done

if [ $INPUTNAME = "!none" ] ; then help; fi

echo "$CTALKBIN $CTALKFLAGS $INPUTNAME -o $BASENAME.i && $GCCBIN $GCCFLAGS $BASENAME.i -o $BASENAME -lctalk $LD_LIBRARY_OPT $EXTRALIBS"
$CTALKBIN $CTALKFLAGS $INPUTNAME -o $BASENAME.i && \
 $GCCBIN $GCCFLAGS $BASENAME.i -o $BASENAME -lctalk $LD_LIBRARY_OPT $EXTRALIBS

if [ $KEEPTMPS = "no" ] ; then
    rm -f $BASENAME.i
fi
