|
Packit |
fd8b60 |
#!/bin/sh
|
|
Packit |
fd8b60 |
# Run this from the TOP of the source tree!
|
|
Packit |
fd8b60 |
M4=gm4
|
|
Packit |
fd8b60 |
configs=`find $1 -name configure.ac -print|sort|sed -e 's@/configure.ac@@'`
|
|
Packit |
fd8b60 |
for dir in $configs; do
|
|
Packit |
fd8b60 |
syms=""
|
|
Packit |
fd8b60 |
libs=""
|
|
Packit |
fd8b60 |
headers=""
|
|
Packit |
fd8b60 |
types=""
|
|
Packit |
fd8b60 |
funcs=""
|
|
Packit |
fd8b60 |
AC_MACRODIR=./util/autoconf
|
|
Packit |
fd8b60 |
# The following bits shamelessly stolen from autoheader.sh
|
|
Packit |
fd8b60 |
eval "`$M4 -I$AC_MACRODIR autoheader.m4 $dir/configure.ac|
|
|
Packit |
fd8b60 |
sed -n -e '
|
|
Packit |
fd8b60 |
: again
|
|
Packit |
fd8b60 |
/^@@@.*@@@$/s/^@@@\(.*\)@@@$/\1/p
|
|
Packit |
fd8b60 |
/^@@@/{
|
|
Packit |
fd8b60 |
s/^@@@//p
|
|
Packit |
fd8b60 |
n
|
|
Packit |
fd8b60 |
s/^/@@@/
|
|
Packit |
fd8b60 |
b again
|
|
Packit |
fd8b60 |
}'`"
|
|
Packit |
fd8b60 |
allsyms="`for sym in $syms; do echo $sym; done | sort | uniq`"
|
|
Packit |
fd8b60 |
if test -n "$funcs"; then
|
|
Packit |
fd8b60 |
funcs="`for func in $funcs; do echo $func; done | sort | uniq`"
|
|
Packit |
fd8b60 |
funcs="`for func in $funcs; do echo $func
|
|
Packit |
fd8b60 |
done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_/'`"
|
|
Packit |
fd8b60 |
allsyms="$allsyms $funcs"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test -n "$headers"; then
|
|
Packit |
fd8b60 |
headers="`for header in $headers; do echo $header
|
|
Packit |
fd8b60 |
done | sort | uniq`"
|
|
Packit |
fd8b60 |
headers="`for header in $headers; do echo $header
|
|
Packit |
fd8b60 |
done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_/'`"
|
|
Packit |
fd8b60 |
allsyms="$allsyms $headers"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test -n "$libs"; then
|
|
Packit |
fd8b60 |
libs="`for lib in $libs; do echo $lib
|
|
Packit |
fd8b60 |
done | sort | uniq`"
|
|
Packit |
fd8b60 |
libs="`for lib in $libs; do echo $lib
|
|
Packit |
fd8b60 |
done | sed 's/[^a-zA-Z0-9_]/_/g' | tr '[a-z]' '[A-Z]' | sed 's/^/HAVE_LIB/'`"
|
|
Packit |
fd8b60 |
allsyms="$allsyms $libs"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
echo $dir/configure.ac: $allsyms
|
|
Packit |
fd8b60 |
allsyms="`echo $allsyms|tr ' ' '|'`"
|
|
Packit |
fd8b60 |
files="$dir/*.[ch]"
|
|
Packit |
fd8b60 |
if test ! "`echo $files`" = "$dir/"'*.[ch]'; then
|
|
Packit |
fd8b60 |
for file in $files; do
|
|
Packit |
fd8b60 |
badsyms=""
|
|
Packit |
fd8b60 |
fsyms=`sed -f ./util/getsyms.sed $file`
|
|
Packit |
fd8b60 |
fsyms="`for sym in $fsyms; do echo $sym; done | sort | uniq`"
|
|
Packit |
fd8b60 |
for sym in $fsyms; do
|
|
Packit |
fd8b60 |
if echo $sym|egrep -s "$allsyms">/dev/null; then :
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
badsyms="$badsyms $sym"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
if test -n "$badsyms"; then
|
|
Packit |
fd8b60 |
echo $file:$badsyms
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|