59caad7588c2f2c671d3ef58676a99aeae68ae4e
[gnome.gobject-introspection] / gir / Makefile.am
1 BUILT_SOURCES =
2
3 G_IR_SCANNER = $(top_srcdir)/tools/g-ir-scanner
4 G_IR_SCANNER_FILES = $(top_srcdir)/giscanner/*.py \
5         $(top_builddir)/giscanner/libgiscanner.la
6
7 # glib
8 GLIB_INCLUDEDIR=`pkg-config --variable=includedir glib-2.0`/glib-2.0
9 GLIB_LIBDIR=`pkg-config --variable=libdir glib-2.0`
10
11 if OS_WIN32
12 GLIB_LIBRARY=libglib-2.0-0
13 else
14 GLIB_LIBRARY=glib-2.0
15 endif
16
17 GLib-2.0.gir: $(G_IR_SCANNER) $(G_IR_SCANNER_FILES) Makefile
18         PYTHONPATH=$(top_builddir):$$PYTHONPATH $(G_IR_SCANNER) \
19             -v --namespace GLib --nsversion=2.0 \
20             --add-include-path=. \
21             --noclosure \
22             --output $@ \
23             --strip-prefix=g \
24             --library=$(GLIB_LIBRARY) \
25             $(CPPFLAGS) \
26             -I$(GLIB_INCLUDEDIR) \
27             -I$(GLIB_LIBDIR)/glib-2.0/include \
28             -DGETTEXT_PACKAGE=Dummy \
29             -D__G_I18N_LIB_H__ \
30             $(GLIB_LIBDIR)/glib-2.0/include/glibconfig.h \
31             $(GLIB_INCLUDEDIR)/glib/*.h
32         PYTHONPATH=$(top_builddir):$$PYTHONPATH $(G_IR_SCANNER) \
33             --xpath-assertions=GLib-assertions.txt GLib-2.0.gir 
34 BUILT_SOURCES += GLib-2.0.gir
35
36 # gobject
37 GOBJECT_INCLUDEDIR=`pkg-config --variable=includedir gobject-2.0`/glib-2.0
38 GOBJECT_LIBDIR=`pkg-config --variable=libdir gobject-2.0`
39
40 if OS_WIN32
41 GOBJECT_LIBRARY=libgobject-2.0-0
42 else
43 GOBJECT_LIBRARY=gobject-2.0
44 endif
45
46 GObject-2.0.gir: GLib-2.0.gir $(G_IR_SCANNER) $(G_IR_SCANNER_FILES) Makefile
47         PYTHONPATH=$(top_builddir):$$PYTHONPATH $(G_IR_SCANNER) \
48             -v --namespace GObject --nsversion=2.0 \
49             --add-include-path=. \
50             --noclosure \
51             --output $@ \
52             --strip-prefix=g \
53             --include=GLib-2.0 \
54             --library=$(GOBJECT_LIBRARY) \
55             -I$(GOBJECT_INCLUDEDIR) \
56             -I$(GOBJECT_LIBDIR)/glib-2.0/include \
57             -DGOBJECT_COMPILATION \
58             --pkg glib-2.0 \
59             $(GLIB_INCLUDEDIR)/gobject/*.h
60 BUILT_SOURCES += GObject-2.0.gir
61
62 # gmodule
63 GMODULE_INCLUDEDIR=`pkg-config --variable=includedir gmodule-2.0`/glib-2.0
64 GMODULE_LIBDIR=`pkg-config --variable=libdir gmodule-2.0`
65
66 if OS_WIN32
67 GMODULE_LIBRARY=libgmodule-2.0-0
68 else
69 GMODULE_LIBRARY=gmodule-2.0
70 endif
71
72 GModule-2.0.gir: GLib-2.0.gir $(G_IR_SCANNER) $(G_IR_SCANNER_FILES)
73         PYTHONPATH=$(top_builddir):$$PYTHONPATH $(G_IR_SCANNER) \
74             -v --namespace GModule --nsversion=2.0 \
75             --add-include-path=. \
76             --noclosure \
77             --output $@ \
78             --strip-prefix=g \
79             --include=GLib-2.0 \
80             --library=$(GMODULE_LIBRARY) \
81             -I$(GMODULE_INCLUDEDIR) \
82             -I$(GMODULE_LIBDIR)/glib-2.0/include \
83             --pkg glib-2.0 \
84             $(GLIB_INCLUDEDIR)/gmodule.h
85 BUILT_SOURCES += GModule-2.0.gir
86
87 # gio
88 GIO_INCLUDEDIR=`pkg-config --variable=includedir gio-2.0`/glib-2.0
89 GIO_LIBDIR=`pkg-config --variable=libdir gio-2.0`
90
91 if OS_WIN32
92 GIO_LIBRARY=libgio-2.0-0
93 else
94 GIO_LIBRARY=gio-2.0
95 endif
96
97 Gio-2.0.gir: GObject-2.0.gir $(G_IR_SCANNER) $(G_IR_SCANNER_FILES) Makefile
98         PYTHONPATH=$(top_builddir):$$PYTHONPATH $(G_IR_SCANNER) \
99             -v --namespace Gio --nsversion=2.0 \
100             --add-include-path=. \
101             --noclosure \
102             --output $@ \
103             --strip-prefix=g \
104             --include=GObject-2.0 \
105             --library=$(GIO_LIBRARY) \
106             -I$(GIO_INCLUDEDIR) \
107             -I$(GIO_LIBDIR)/glib-2.0/include \
108             -DGIO_COMPILATION \
109             --pkg glib-2.0 \
110             --pkg gobject-2.0 \
111             $(GLIB_INCLUDEDIR)/gio/*.h
112 BUILT_SOURCES += Gio-2.0.gir
113 CLEANFILES = $(BUILT_SOURCES)
114
115 girdir=$(datadir)/gir
116 dist_gir_DATA = $(BUILT_SOURCES)
117
118 %.typelib: %.gir $(top_builddir)/tools/g-ir-compiler$(EXEEXT) Makefile
119         $(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $@
120
121 typelibsdir = $(datadir)/girepository
122 typelibs_DATA = GLib-2.0.typelib GModule-2.0.typelib GObject-2.0.typelib Gio-2.0.typelib
123 CLEANFILES += $(typelibs_DATA)
124
125 # Check that typelib -> gir -> typelib transformation is lossless.
126 # Comparing gir files is relatively fragile (whitespace, attribute default
127 # values, etc.) but the typelibs should identical as long as the gir files are
128 # semantically equivalent.
129
130 %.test.gir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT) Makefile
131         $(DEBUG) $(top_builddir)/tools/g-ir-generate$(EXEEXT) --includedir=. $< -o $@
132
133 testlib-%: %.test.gir $(top_builddir)/tools/g-ir-generate$(EXEEXT) Makefile
134         $(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $*.test.typelib
135         cmp $*.typelib $*.test.typelib && rm $*.test.typelib
136
137 testgir-%: %.test.gir
138         diff -u $*.gir $< && rm $<
139
140 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.gir)
141 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.typelib)
142
143 #check-local: $(typelibs_DATA:%.typelib=testlib-%)
144 check-gir: $(typelibs_DATA:%.typelib=testgir-%)