#! /bin/csh -f
#
# mkdepend - generate header dependencies into a Makefile
#
# Mark Linton, Stanford University
# January, 1987
#

set objs = "$*"
set srcs = ""
set special = ""
set tmp = /tmp/mkdepend$$
set ntmp = /tmp/nmkdepend$$

foreach i ($objs)
    if ($i:e != "o" ) then
	set srcs = "$srcs $i"
    else
	set j = $i:r
	if ($j == "y.tab") then
	    set k = "y.tab"
	else
	    set k = $j:r
	    if ($k == "") then
		set k = $j
	    else if ($j != $k) then
		set special = "$special $j"
	    endif
	endif
	if (! -f $k.c && -f ../$k.c) then
	    set k = ../$k
	endif
	set srcs = "$srcs $k.c"
    endif
end
cc -M $srcs | sort +1 | uniq | awk -F: '/h$/ { \
    if ($2 != hdr) { \
	if (hdr != "") { print dep ":" hdr; } \
	hdr = $2; dep = $1; \
    } else { \
	if (length(dep) + length($1) + length(hdr) > 65) { \
	    print dep ":" hdr; dep = $1; \
	} else { \
	    dep = dep " " $1; \
	} \
    } \
} \
END { print dep ":" hdr }' > $tmp
foreach i ($special)
    sed -e "s/$i:r.o/$i.o/" < $tmp >! $ntmp
    mv $ntmp $tmp
end
echo '/^# DO NOT DELETE THIS LINE/+2,$d' >$ntmp
echo '$r' $tmp >>$ntmp
echo 'w' >>$ntmp
cp Makefile Makefile.bak
ed - Makefile < $ntmp
echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
echo '# see make depend above' >> Makefile
rm $tmp $ntmp Makefile.bak
