]> git.wh0rd.org - fontconfig.git/blame - src/makealias
makealias: handle missing funcs better
[fontconfig.git] / src / makealias
CommitLineData
23816bf9
KP
1#!/bin/sh
2SRCDIR=$1
3shift
dbd065ad
KP
4HEAD=$1
5shift
6TAIL=$1
7shift
23816bf9 8rm -f $HEAD $TAIL
f6cfbe16 9echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL
6cff1dca 10cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' |
23816bf9
KP
11while read name; do
12 case $name in
13 FcCacheDir|FcCacheSubdir)
14 ;;
15 *)
16 alias="IA__$name"
17 hattr='__attribute((visibility("hidden")))'
18 echo "extern __typeof ($name) $alias $hattr;" >> $HEAD
19 echo "#define $name $alias" >> $HEAD
18b8be36
MF
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
23816bf9
KP
31 cattr='__attribute((alias("'$alias'"), visibility("default")))'
32 echo "extern __typeof ($name) $name $cattr;" >> $TAIL
23816bf9
KP
33 ;;
34 esac
35done
18b8be36
MF
36[ $? -ne 0 ] && exit 1
37echo "#endif /* $ifdef */" >> $TAIL
38echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL