summaryrefslogtreecommitdiffstats
path: root/src/util/getsyms
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1995-06-20 16:34:51 +0000
committerTom Yu <tlyu@mit.edu>1995-06-20 16:34:51 +0000
commit377e3b18c135dcc526d9d05fa2e3018619056483 (patch)
treed91129f04da6cb8cb3b5a764bfdb9941d1095796 /src/util/getsyms
parent08da9430ab586bb20058d3ecced36587fb1634f6 (diff)
downloadkrb5-377e3b18c135dcc526d9d05fa2e3018619056483.tar.gz
krb5-377e3b18c135dcc526d9d05fa2e3018619056483.tar.xz
krb5-377e3b18c135dcc526d9d05fa2e3018619056483.zip
* getsyms, getsyms.sed: fix a few random bugs
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6096 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util/getsyms')
-rw-r--r--src/util/getsyms39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/util/getsyms b/src/util/getsyms
index cecdb5263..d21f16cb7 100644
--- a/src/util/getsyms
+++ b/src/util/getsyms
@@ -3,6 +3,11 @@
M4=gm4
configs=`find $1 -name configure.in -print|sed -e 's@/configure.in@@`
for dir in $configs; do
+ syms=""
+ libs=""
+ headers=""
+ types=""
+ funcs=""
AC_MACRODIR=./util/autoconf
# The following bits shamelessly stolen from autoheader.sh
eval "`$M4 -I$AC_MACRODIR autoheader.m4 $dir/configure.in|
@@ -15,22 +20,42 @@ for dir in $configs; do
s/^/@@@/
b again
}'`"
- syms="`for sym in $syms; do echo $sym; done | sort | uniq`"
- echo $dir/configure.in: $syms
+ allsyms="`for sym in $syms; do echo $sym; done | sort | uniq`"
+ if test -n "$funcs"; then
+ funcs="`for func in $funcs; do echo $func; done | sort | uniq`"
+ funcs="`for func in $funcs; do echo $func
+ done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_/'`"
+ allsyms="$allsyms $funcs"
+ fi
+ if test -n "$headers"; then
+ headers="`for header in $headers; do echo $header
+ done | sort | uniq`"
+ headers="`for header in $headers; do echo $header
+ done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_/'`"
+ allsyms="$allsyms $headers"
+ fi
+ if test -n "$libs"; then
+ libs="`for lib in $libs; do echo $lib
+ done | sort | uniq`"
+ libs="`for lib in $libs; do echo $lib
+ done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_LIB/'`"
+ allsyms="$allsyms $libs"
+ fi
+ echo $dir/configure.in: $allsyms
+ allsyms="`echo $allsyms|tr ' ' '|'`"
files="$dir/*.[ch]"
+ if test ! "`echo $files`" = "$dir/"'*.[ch]'; then
for file in $files; do
badsyms=""
fsyms=`sed -f ./util/getsyms.sed $file`
fsyms="`for sym in $fsyms; do echo $sym; done | sort | uniq`"
for sym in $fsyms; do
- isbad=yes
- for tsym in $syms; do
- if [ $tsym = $sym ]; then isbad=no; fi
- done
- if [ $isbad = yes ]; then
+ if echo $sym|egrep -s "$allsyms">/dev/null; then :
+ else
badsyms="$badsyms $sym"
fi
done
echo $file:$badsyms
done
+ fi
done