1#!/bin/sh 2SRCDIR=$1 3shift 4HEAD=$1 5shift 6TAIL=$1 7shift 8rm -f $HEAD $TAIL 9echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL 10cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' | 11while read name; do 12 case $name in 13 FcCacheDir|FcCacheSubdir) 14 ;; 15 *) 16 alias="IA__$name" 17 hattr='FC_ATTRIBUTE_VISIBILITY_HIDDEN' 18 echo "extern __typeof ($name) $alias $hattr;" >> $HEAD 19 echo "#define $name $alias" >> $HEAD 20 ifdef=`grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/'` 21 if [ -z "$ifdef" ] ; then 22 echo "error: could not locate $name in src/*.c" 1>&2 23 exit 1 24 fi 25 if [ "$ifdef" != "$last" ] ; then 26 [ -n "$last" ] && echo "#endif /* $last */" >> $TAIL 27 echo "#ifdef $ifdef" >> $TAIL 28 last=$ifdef 29 fi 30 echo "# undef $name" >> $TAIL 31 cattr='__attribute((alias("'$alias'"))) FC_ATTRIBUTE_VISIBILITY_EXPORT' 32 echo "extern __typeof ($name) $name $cattr;" >> $TAIL 33 ;; 34 esac 35done 36[ $? -ne 0 ] && exit 1 37echo "#endif /* $ifdef */" >> $TAIL 38echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL 39