diff options
| author | Tom Yu <tlyu@mit.edu> | 1995-06-20 16:34:51 +0000 |
|---|---|---|
| committer | Tom Yu <tlyu@mit.edu> | 1995-06-20 16:34:51 +0000 |
| commit | 377e3b18c135dcc526d9d05fa2e3018619056483 (patch) | |
| tree | d91129f04da6cb8cb3b5a764bfdb9941d1095796 /src/util/getsyms | |
| parent | 08da9430ab586bb20058d3ecced36587fb1634f6 (diff) | |
| download | krb5-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/getsyms | 39 |
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 |
