#!/bin/sh

# wrap around ocamldebug for Coq

# a local which command for sh
which () {
for i in `echo $PATH | tr ':' ' '` ; do
  if test -z "$i"; then $i=.; fi
  if [ -f $i/$1 ] ; then
	echo $i/$1
	break
  fi
done
}

export COQTOP=`coqtop -where`
export COQLIB=$COQTOP
export COQTH=$COQLIB/theories
export CAMLP4LIB=`camlp4 -where`

OCAMLDEBUG=`which ocamldebug`

if test -z $OCAMLDEBUG; \
then echo "I can't find ocamldebug in $OCAMLBIN"; exit 1; \
else echo "running $OCAMLDEBUG $*"; \
fi

coqdebug="no"
for op in $*
    do case `basename $op` in
	coq*.out) coqdebug="yes";;
       esac
done

case $coqdebug in
    yes)
	exec $OCAMLDEBUG -I . \
	-I $CAMLP4LIB \
	-I $COQTOP/src/lib/util -I $COQTOP/src/meta \
	-I $COQTOP/src/constr -I $COQTOP/src/typing -I $COQTOP/src/proofs \
        -I $COQTOP/src/parsing -I $COQTOP/src/env \
	-I $COQTOP/src/tactics -I $COQTOP/src/link \
	-I $COQTOP/tactics -I $COQTOP/tactics/programs \
	-I $COQTOP/tactics/tcc \
	-I $COQTOP/tactics/contrib/linear \
	-I $COQTOP/tactics/contrib/extraction \
	-I $COQTOP/tactics/contrib/acdsimpl \
	-I $COQTOP/tactics/contrib/reflexion \
	-I $COQTOP/tactics/contrib/natural \
	-I $COQTOP/tactics/contrib/omega \
	$*;;
    *) exec $OCAMLDEBUG $*;;
esac
