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