1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-15 23:50:44 +00:00
freebsd-ports/devel/cflow/files/patch-ac
Steve Price aea0dc1683 Remove dependency on bash2 and support GNU C __attribute__ syntax.
PR:		1416
Submitted by:	Andrew L. Moore <alm@slewsys.org>
1998-07-26 23:56:30 +00:00

199 lines
3.2 KiB
Plaintext

--- cflow.sh.orig Sun Feb 19 12:59:18 1995
+++ cflow.sh Wed Jun 3 16:03:01 1998
@@ -1,41 +1,38 @@
-#! @CFLOW_SHELL@
+#!/bin/sh -
# cflow - print a function call hierarchy
# This script is contributed to the public domain by Andrew Moore
# of Talke Studio.
-# exit on errors..
+: ${F2C:=f2c}
+: ${LEX:=flex}
+: ${YACC:="bison -y"}
+: ${CC:=gcc}
+: ${CPP:="$CC -E"}
+: ${PRCC:=/usr/local/bin/prcc}
+: ${PRCG:=/usr/local/bin/prcg}
+: ${RM:=/bin/rm}
-# this values can be overriden by devining them in the
-# enviornment
-F2C=${F2C:=f2c}
-LEX=${LEX:=flex}
-YACC={YACC:="bison -y"}
-CC=${CC:=gcc}
-CPP=${CPP:="$CC -E"}
-PRCC=${PRCC:=@PRCC@}
-PRCG=${PRCG:=@PRCG@}
TMPFILE=/tmp/cflow.$$
-function prcc {
+prcc () {
if [ $verbose ]; then
echo $PRCC $* >/dev/tty
fi
-
- command $PRCC $*
+ $PRCC $*
}
-function prcg {
+prcg () {
if [ $verbose ]; then
echo $PRCG $* >/dev/tty
fi
- command $PRCG $*
+ $PRCG $*
}
-function echo {
- builtin echo -e "$*"
+echo () {
+ printf "$*\n"
}
@@ -50,8 +47,7 @@
progname=$0
-function usage
-{
+usage () {
echo $progname [-AaginPXVvxh] [-d n] [-w n] [-r name] [cpp-opts] files
echo "\t-a\tprint a seperate cal graph for each function"
echo "\t-A\teliminate ansi keywords"
@@ -86,8 +82,7 @@
exclude_directory="$exclude_directory".$$
fi
-function do_mkdir
-{
+do_mkdir () {
for i in $*
do
mkdir -p $i
@@ -98,27 +93,24 @@
done
}
-function remove_exclude_files
-{
+remove_exclude_files () {
if [ -d $exclude_directory ]; then
- rm -rf $exclude_directory
+ $RM -rf $exclude_directory
fi
}
-function remove_tmp_file
-{
+remove_tmp_file () {
if [ "$save_temps" ] ; then
echo temp file in $TMPFILE
else
- rm $TMPFILE
+ $RM $TMPFILE
fi
}
-# call this once when we get are include files
+# call this once when we get our include files
# called only if we want to exclude files
-function exclude
-{
+exclude () {
if [ "$exclude_files" ]; then
do_mkdir $exclude_directory
fi
@@ -136,12 +128,9 @@
done
}
-#builtin -d echo # use gnu echo
# echo command line is $* >& 2
while getopts aghsAPD:I:X:nU:d:ir:Vvw:x c; do
-# echo option is $c
-# echo OPTARG = $OPTARG
case $c in
D)
CPP="$CPP -D$OPTARG"
@@ -202,44 +191,48 @@
esac
done
+shift $(expr $OPTIND - 1)
+
+if [ $# -eq 0 ]; then
+ usage
+fi
+
if [ "$exclude_files" ]; then
exclude
CPP="$CPP -I$exclude_directory"
fi
-
-
-
-let count=$OPTIND-1
-shift $count
-unset count
-
-if [ $# -eq 0 ]; then
- usage
+cat >${TMPFILE}.c <<\EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if ${CPP} ${TMPFILE}.c | egrep yes >/dev/null 2>&1; then
+ CPP="${CPP} -D__attribute__(x)="
fi
+$RM -f ${TMPFILE}.c
-for c in $*
-do
+for c in $*; do
case $c in
*.c|*.cc|*.C)
cname=$c
;;
*.f)
- cname=`basename $c .f`.c
+ cname=$(basename $c .f).c
cat $c | $F2C >$cname
;;
*.F)
- cname=`basename $c .F`.C
+ cname=$(basename $c .F).C
cat $c | $F2C >$cname
;;
*.l)
- cname=`basename $c .l`.c
+ cname=$(basename $c .l).c
$LEX $c
sed '/# line/d' lex.yy.c >$cname
;;
*.y)
- cname=`basename $c .y`.c
+ cname=$(basename $c .y).c
$YACC $c
sed '/# line/d' y.tab.c >$cname
;;
@@ -267,6 +260,7 @@
$CPP $cname >>$TMPFILE
done
+
if [ "$no_prcg" ]; then
PRCG=cat