#! /bin/csh -f
#
set flags = ""
set files = ""

if (! $?FWDIR) then 
	setenv FWDIR /etc/fw
endif
set path = ( $FWDIR/bin $path /lib )

if ($#argv == 0) then
	echo "Usage: $0 [-y] [-v] [-dn] [-On] [-o txtfile] [-t tabsfile] [-l logfile] sourcefiles"
	exit(1)
endif

@ do_fwcomp = 1

while ($#argv)
	switch ($1) 
		case "-E":
				@ do_fwcomp = 0
				shift
				breaksw
		case "-v":
		case "-y":
		case "-d*":
		case "-O*":
				set flags = ($flags $1)
				shift
				breaksw
		case "-o":
		case "-t":
		case "-l":
		case "-b":
				set flags = ($flags $1)
				shift
				if ($#argv == 0) then
					echo $0 : bad file option in arg line
					exit(1)
				endif
				set flags = ($flags $1)
				shift
				breaksw
		case "-*":
				echo "Usage: $0 [-y] [-v] [-dn] [-On] [-o txtfile] [-t tabsfile] [-l logfile] [-b [s|b]] [-E] sourcefiles"
				exit(1)
		default: 
				set files = ($files $1)
				shift
				breaksw
	endsw
end

set srcs = ""

foreach fn  ( $files )
	set ofn = `basename $fn`
	if ($do_fwcomp == 1) then
		set ofn = $FWDIR/tmp/$ofn:r.cpp
	else
		set ofn = $ofn:r.cpp
	endif
	if(-f /hp-ux || -f /stand/vmunix) then
		cpp -A -DFWVERSION=300 -I$FWDIR/lib $fn $ofn
		set rc=$status
	else if (-f /kernel/genunix || -f /kernel/unix || -f /usr/lib/drivers/netinet ) then
		fwcpp -undef -DFWVERSION=300 -I$FWDIR/lib $fn $ofn
		set rc=$status
	else
		cpp -undef -DFWVERSION=300 -I$FWDIR/lib $fn $ofn
		set rc=$status
	endif
	if ($rc) exit $rc
	set srcs = ($srcs $ofn)
end

if ($srcs[1] == "") exit(0)
if ($do_fwcomp == 0) exit(0)
fwcomp $flags $srcs
set st = $status
rm -f $srcs
exit($st)
