pdp11v/usr/src/cmd/cflow/cflow.sh
# @(#)cflow.sh 1.3
# 3.0 SID # 1.2
INVFLG=
DFLAG=
IFLAG=
DIR=/usr/lib
LINT1=/usr/lib/lint1
TMP=/usr/tmp/cf.$$
TMPG=$TMP.g
trap "rm -f $TMP.?; kill $$" 1 2 3
echo "" >$TMP.g
while [ "$1" != "" ]
do
case "$1" in
-r)
INVFLG=1
;;
-d*)
DFLAG=$1
;;
-i*)
IFLAG="$IFLAG $1"
;;
-f)
cat $2 </dev/null >>$TMPG
shift
;;
-g)
TMPG=$2
if [ "$TMPG" = "" ]
then
TMPG=$TMP.g
fi
shift
;;
-[IDU]*)
o="$o $1"
;;
*.y)
yacc $1
sed -e "/^# line/d" y.tab.c > $1.c
/lib/cpp $o $1.c | $LINT1 -H$TMP.j 2>/dev/null \
| $DIR/lpfx $IFLAG >>$TMPG
rm y.tab.c $1.c
;;
*.l)
lex $1
sed -e "/^# line/d" lex.yy.c > $1.c
/lib/cpp $o $1.c | $LINT1 -H$TMP.j 2>/dev/null \
| $DIR/lpfx $IFLAG >>$TMPG
rm lex.yy.c $1.c
;;
*.c)
/lib/cpp $o $1 | $LINT1 -H$TMP.j 2>/dev/null \
| $DIR/lpfx $IFLAG >>$TMPG
;;
*.i)
$LINT1 -H$TMP.j 2>/dev/null | $DIR/lpfx >>$TMPG
;;
*.s)
a=`basename $1 .s`
as -o $TMP.o $1
nm -pg $TMP.o | $DIR/nmf $a $1 >>$TMPG
;;
*.o)
a=`basename $1 .o`
nm -pg $1 | $DIR/nmf $a $1 >>$TMPG
;;
*)
echo $1 "-- cflow can't process - file skipped"
;;
esac
shift
done
if [ "$INVFLG" != "" ]
then
grep "=" $TMPG >$TMP.q
grep ":" $TMPG | $DIR/flip >>$TMP.q
sort <$TMP.q >$TMPG
rm $TMP.q
fi
$DIR/dag $DFLAG <$TMPG
rm -f $TMP.?