#!/bin/sh SRCDIR=$1 shift HEAD=$1 shift TAIL=$1 shift rm -f $HEAD $TAIL echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' | while read name; do case $name in FcCacheDir|FcCacheSubdir) ;; *) alias="IA__$name" hattr='FC_ATTRIBUTE_VISIBILITY_HIDDEN' echo "extern __typeof ($name) $alias $hattr;" >> $HEAD echo "#define $name $alias" >> $HEAD ifdef=`grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/'` 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 cattr='__attribute((alias("'$alias'"))) FC_ATTRIBUTE_VISIBILITY_EXPORT' echo "extern __typeof ($name) $name $cattr;" >> $TAIL ;; esac done [ $? -ne 0 ] && exit 1 echo "#endif /* $ifdef */" >> $TAIL echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL