#!/bin/ksh
#
#	xlint driver script	Aug 11 1990 Eric Hill
#

usage () {
cat <<EOF
usage: $1 [args ...] input_file
	args are:
	-l<file>	specifies lexical extensions file
	-I<path>	include directory for cpp
	-D<define>	definition for cpp
	-p		just produce .ppout file
	Any number of -I and -D can be given
EOF
; }

if test $# -lt 1 ; then
	usage ${0##*/}
	exit 2
fi

xlintbin=/net/xanadu/usr/local/lib/xlint
cpp=/usr/lib/cpp

####lexex=${0%/*}/Stubble.lexex
lexex=/dev/null
incldir=-I/net/xanadu/files5/nat2.0/`arch`/incl
defs=''
keepppout=0

for arg in $*; do
	case $arg in
	    -l*) lexex=${arg#-l}
		;;
	    -I*) incls="$incls $arg"
	        ;;
	    -D*) defs="$defs $arg"
	        ;;
	    -o*) output=${arg#-o}
		;;
	    -p)  keepppout=1
		;;
	    -*)  echo "Do not understand $arg"
		 usage ${0##*/}
		 exit 2
		;;
	    *)   fname=$arg
	        ;;
	esac
done

incldir="$incldir $incls"

fnroot=${fname%.*}

ppout=$fnroot.ppout
touch $ppout
cfile=$fname

if test $keepppout -eq 0; then
	trap 'rm -f $ppout' 2;
else
	$cpp -B -DXLINT $defs $incldir $cfile > $ppout
	exit 0
fi

if $cpp -B -DXLINT $defs $incldir $cfile > $ppout ; then

        $xlintbin -a $lexex $ppout

	rm -f $ppout

else
        echo $0: preprocessor failed
        exit 1
fi

trap  2
exit 0
