makealias revision a32e9e42
12c393a42Smrg#!/bin/sh
22c393a42SmrgSRCDIR=$1
32c393a42Smrgshift
42c393a42SmrgHEAD=$1
52c393a42Smrgshift
62c393a42SmrgTAIL=$1
72c393a42Smrgshift
82c393a42Smrgrm -f $HEAD $TAIL
92c393a42Smrgecho "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL
102c393a42Smrgcat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' |
112c393a42Smrgwhile read name; do
122c393a42Smrg	case $name in
132c393a42Smrg	FcCacheDir|FcCacheSubdir)
142c393a42Smrg		;;
152c393a42Smrg	*)
162c393a42Smrg		alias="IA__$name"
17a32e9e42Smrg		hattr='FC_ATTRIBUTE_VISIBILITY_HIDDEN'
182c393a42Smrg		echo "extern __typeof ($name) $alias $hattr;" >> $HEAD
192c393a42Smrg		echo "#define $name $alias" >> $HEAD
20ca08ab68Smrg		ifdef=`grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/'`
21ca08ab68Smrg		if [ -z "$ifdef" ] ; then
22ca08ab68Smrg			echo "error: could not locate $name in src/*.c" 1>&2
23ca08ab68Smrg			exit 1
24ca08ab68Smrg		fi
25ca08ab68Smrg		if [ "$ifdef" != "$last" ] ; then
26ca08ab68Smrg			[ -n "$last" ] && echo "#endif /* $last */" >> $TAIL
27ca08ab68Smrg			echo "#ifdef $ifdef" >> $TAIL
28ca08ab68Smrg			last=$ifdef
29ca08ab68Smrg		fi
30ca08ab68Smrg		echo "# undef $name" >> $TAIL
31a32e9e42Smrg		cattr='__attribute((alias("'$alias'"))) FC_ATTRIBUTE_VISIBILITY_EXPORT'
322c393a42Smrg		echo "extern __typeof ($name) $name $cattr;" >> $TAIL
332c393a42Smrg		;;
342c393a42Smrg	esac
352c393a42Smrgdone
36ca08ab68Smrg[ $? -ne 0 ] && exit 1
37ca08ab68Smrgecho "#endif /* $ifdef */" >> $TAIL
38ca08ab68Smrgecho "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL
39