summaryrefslogtreecommitdiff
path: root/src/make-cairo-def.sh
blob: 1a1f366e8b5ba7d6a11f50ab5a0da8294ea12ee5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

LC_ALL=C
export LC_ALL

if [ $# -lt 3 ];
then
    echo "Generate cairo def file"
    echo "Usage: $0 <def-filename> <cairo-features-file> <cairo-headers>..."
    exit 1
fi

def_file="$1"
cairo_features_h="$2"
shift 2

#echo Generating $def_file

(echo EXPORTS; \
 (cat $* || echo 'cairo_ERROR ()' ) | \
     egrep -v '^# *include' | \
     ( cat "$cairo_features_h" - | egrep -v '^#pragma' | cpp -D__cplusplus - || echo 'cairo_ERROR ()' ) | \
     egrep '^cairo_.* \(' | \
     sed -e 's/[ 	].*//' | \
     sort; \
 ) > "$def_file"
grep -q -v cairo_ERROR "$def_file" || (rm "$def_file"; false)