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