2006-09-05 11:24:01 +02:00
|
|
|
#!/bin/sh
|
|
|
|
SRCDIR=$1
|
|
|
|
shift
|
2008-01-02 17:47:14 +01:00
|
|
|
HEAD=$1
|
|
|
|
shift
|
|
|
|
TAIL=$1
|
|
|
|
shift
|
2006-09-05 11:24:01 +02:00
|
|
|
rm -f $HEAD $TAIL
|
2006-09-08 00:17:10 +02:00
|
|
|
echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL
|
2006-09-07 23:37:52 +02:00
|
|
|
cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' |
|
2006-09-05 11:24:01 +02:00
|
|
|
while read name; do
|
|
|
|
case $name in
|
|
|
|
FcCacheDir|FcCacheSubdir)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
alias="IA__$name"
|
|
|
|
hattr='__attribute((visibility("hidden")))'
|
|
|
|
echo "extern __typeof ($name) $alias $hattr;" >> $HEAD
|
|
|
|
echo "#define $name $alias" >> $HEAD
|
2012-03-29 08:43:11 +02:00
|
|
|
ifdef=`grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/'`
|
2011-11-08 20:19:57 +01:00
|
|
|
if [ -z "$ifdef" ] ; then
|
|
|
|
echo "error: could not locate $name in src/*.c" 1>&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ "$ifdef" != "$last" ] ; then
|
|
|
|
[ -n "$last" ] && echo "#endif /* $last */" >> $TAIL
|
|
|
|
echo "#ifdef $ifdef" >> $TAIL
|
|
|
|
last=$ifdef
|
|
|
|
fi
|
|
|
|
echo "# undef $name" >> $TAIL
|
2006-09-05 11:24:01 +02:00
|
|
|
cattr='__attribute((alias("'$alias'"), visibility("default")))'
|
|
|
|
echo "extern __typeof ($name) $name $cattr;" >> $TAIL
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
2011-11-08 20:19:57 +01:00
|
|
|
[ $? -ne 0 ] && exit 1
|
|
|
|
echo "#endif /* $ifdef */" >> $TAIL
|
|
|
|
echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL
|