Home | History | Annotate | Line # | Download | only in src
      1 #!/bin/sh
      2 SRCDIR=$1
      3 shift
      4 HEAD=$1
      5 shift
      6 TAIL=$1
      7 shift
      8 rm -f $HEAD $TAIL
      9 echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL
     10 cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' |
     11 while 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
     35 done
     36 [ $? -ne 0 ] && exit 1
     37 echo "#endif /* $ifdef */" >> $TAIL
     38 echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL
     39