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