00e3acc48d8c0a5d45037d856b961dcecd8b0fe0
[gnome.gobject-introspection] / gir / Makefile.am
1 include $(top_srcdir)/common.mk
2
3 BUILT_GIRSOURCES = 
4 CLEANFILES =
5 EXTRA_DIST = 
6
7 BASE_GIRSOURCES =               \
8         cairo-1.0.gir           \
9         fontconfig-2.0.gir      \
10         freetype2-2.0.gir       \
11         GL-1.0.gir              \
12         libxml2-2.0.gir         \
13         xft-2.0.gir             \
14         xlib-2.0.gir            \
15         xfixes-4.0.gir
16 EXTRA_DIST += $(BASE_GIRSOURCES)
17
18 # glib
19 GLIB_INCLUDEDIR=`pkg-config --variable=includedir glib-2.0`/glib-2.0
20 GLIB_LIBDIR=`pkg-config --variable=libdir glib-2.0`
21
22 if OS_WIN32
23 GLIB_LIBRARY=libglib-2.0-0
24 else
25 GLIB_LIBRARY=glib-2.0
26 endif
27
28 GLib-2.0.gir: $(SCANNER_BIN) $(SCANNER_LIBS) Makefile glib-2.0.c
29         $(SCANNER) \
30             --namespace GLib --nsversion=2.0 \
31             --noclosure \
32             --output $@ \
33             --strip-prefix=g \
34             --libtool="$(SHAVE_SAVED_LIBTOOL)" \
35             --c-include="glib.h" \
36             --library=$(GLIB_LIBRARY) \
37             --pkg glib-2.0 \
38             $(CPPFLAGS) \
39             -I$(GLIB_INCLUDEDIR) \
40             -I$(GLIB_LIBDIR)/glib-2.0/include \
41             -DGETTEXT_PACKAGE=Dummy \
42             -D__G_I18N_LIB_H__ \
43             $(GLIB_LIBDIR)/glib-2.0/include/glibconfig.h \
44             $(srcdir)/glib-2.0.c \
45             $(GLIB_INCLUDEDIR)/glib/*.h
46         $(SCANNER) $(SCANNER_ARGS) \
47             --xpath-assertions=$(srcdir)/GLib-2.0.xpath GLib-2.0.gir
48 BUILT_GIRSOURCES += GLib-2.0.gir
49 EXTRA_DIST += glib-2.0.c GLib-2.0.xpath
50
51 # gobject
52 GOBJECT_INCLUDEDIR=`pkg-config --variable=includedir gobject-2.0`/glib-2.0
53 GOBJECT_LIBDIR=`pkg-config --variable=libdir gobject-2.0`
54
55 if OS_WIN32
56 GOBJECT_LIBRARY=libgobject-2.0-0
57 else
58 GOBJECT_LIBRARY=gobject-2.0
59 endif
60
61 GObject-2.0.gir: GLib-2.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
62         $(SCANNER) \
63             --namespace GObject --nsversion=2.0 \
64             --noclosure \
65             --output $@ \
66             --strip-prefix=g \
67             --libtool="$(SHAVE_SAVED_LIBTOOL)" \
68             --c-include="glib-object.h" \
69             --include=GLib-2.0 \
70             --library=$(GOBJECT_LIBRARY) \
71             -I$(GOBJECT_INCLUDEDIR) \
72             -I$(GOBJECT_LIBDIR)/glib-2.0/include \
73             -DGOBJECT_COMPILATION \
74             --pkg gobject-2.0 \
75             $(GLIB_INCLUDEDIR)/gobject/*.h
76         $(SCANNER) $(SCANNER_ARGS) \
77             --xpath-assertions=$(srcdir)/GObject-2.0.xpath GObject-2.0.gir
78 BUILT_GIRSOURCES += GObject-2.0.gir
79
80 # gmodule
81 GMODULE_INCLUDEDIR=`pkg-config --variable=includedir gmodule-2.0`/glib-2.0
82 GMODULE_LIBDIR=`pkg-config --variable=libdir gmodule-2.0`
83
84 if OS_WIN32
85 GMODULE_LIBRARY=libgmodule-2.0-0
86 else
87 GMODULE_LIBRARY=gmodule-2.0
88 endif
89
90 GModule-2.0.gir: GLib-2.0.gir $(SCANNER_BIN) $(SCANNER_LIBS)
91         $(SCANNER) \
92             --namespace GModule --nsversion=2.0 \
93             --add-include-path=. \
94             --noclosure \
95             --output $@ \
96             --strip-prefix=g \
97             --libtool="$(SHAVE_SAVED_LIBTOOL)" \
98             --c-include="gmodule.h" \
99             --include=GLib-2.0 \
100             --library=$(GMODULE_LIBRARY) \
101             -I$(GMODULE_INCLUDEDIR) \
102             -I$(GMODULE_LIBDIR)/glib-2.0/include \
103             --pkg gmodule-2.0 \
104             $(GLIB_INCLUDEDIR)/gmodule.h
105 BUILT_GIRSOURCES += GModule-2.0.gir
106
107 # gio
108 GIO_INCLUDEDIR=`pkg-config --variable=includedir gio-2.0`/glib-2.0
109 GIO_LIBDIR=`pkg-config --variable=libdir gio-2.0`
110
111 if OS_WIN32
112 GIO_LIBRARY=libgio-2.0-0
113 else
114 GIO_LIBRARY=gio-2.0
115 endif
116
117 if HAVE_GIO_UNIX
118 GIO_UNIX_HDRS=`pkg-config --variable=includedir gio-unix-2.0`/gio-unix-2.0/gio/*.h
119 else
120 GIO_UNIX_HDRS=
121 endif
122
123 Gio-2.0.gir: GObject-2.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) Makefile $(srcdir)/gio-2.0.c
124         $(SCANNER) \
125             --namespace Gio --nsversion=2.0 \
126             --add-include-path=. \
127             --noclosure \
128             --output $@ \
129             --strip-prefix=g \
130                 --libtool="$(SHAVE_SAVED_LIBTOOL)" \
131                 --c-include="gio/gio.h" \
132                 --include=GObject-2.0 \
133             --library=$(GIO_LIBRARY) \
134             -I$(GIO_INCLUDEDIR) \
135             -I$(GIO_LIBDIR)/glib-2.0/include \
136             -DGIO_COMPILATION \
137         --pkg gio-2.0 \
138             $(srcdir)/gio-2.0.c \
139             $(GLIB_INCLUDEDIR)/gio/*.h \
140             $(GIO_UNIX_HDRS)
141 BUILT_GIRSOURCES += Gio-2.0.gir
142 EXTRA_DIST += gio-2.0.c
143
144 # girepository
145 GIREPOSITORY_FILES = \
146         $(top_srcdir)/girepository/girepository.c \
147         $(top_srcdir)/girepository/girepository.h
148
149 GIRepository-2.0.gir: GObject-2.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) $(GIREPOSITORY_FILES)
150         $(SCANNER) \
151             --namespace GIRepository --nsversion=2.0 \
152             --noclosure \
153             --output $@ \
154             --strip-prefix=g \
155                 --libtool="$(SHAVE_SAVED_LIBTOOL)" \
156                 --c-include="girepository.h" \
157                 --include=GObject-2.0 \
158             --library=girepository-1.0 \
159             -I$(srcdir)/girepository \
160                 --pkg glib-2.0 \
161                 --pkg gobject-2.0 \
162             $(GIREPOSITORY_FILES)
163 BUILT_GIRSOURCES += GIRepository-2.0.gir
164
165 # Generic rules
166 CLEANFILES += $(BUILT_GIRSOURCES)
167
168 GIRSOURCES =                    \
169         $(BASE_GIRSOURCES)      \
170         $(BUILT_GIRSOURCES)
171
172 girdir = $(datadir)/gir-1.0
173 dist_gir_DATA = $(GIRSOURCES)
174
175 %.typelib: %.gir $(top_builddir)/tools/g-ir-compiler$(EXEEXT)
176         LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}:$(top_builddir)/girepository/.libs $(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $@
177
178 typelibsdir = $(libdir)/girepository-1.0
179 typelibs_DATA = $(GIRSOURCES:.gir=.typelib) $(GIRSOURCES:.gir=.typelib)
180
181 CLEANFILES += $(typelibs_DATA)
182
183 # Check that typelib -> gir -> typelib transformation is lossless.
184 # Comparing gir files is relatively fragile (whitespace, attribute default
185 # values, etc.) but the typelibs should identical as long as the gir files are
186 # semantically equivalent.
187
188 %.test.gir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT)
189         $(DEBUG) $(top_builddir)/tools/g-ir-generate$(EXEEXT) --includedir=. $< -o $@
190
191 testlib-%: %.test.gir $(top_builddir)/tools/g-ir-generate$(EXEEXT)
192         $(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $*.test.typelib
193         cmp $*.typelib $*.test.typelib && rm $*.test.typelib
194
195 testgir-%: %.test.gir
196         diff -u $*.gir $< && rm $<
197
198 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.gir)
199 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.typelib)
200
201 #check-local: $(typelibs_DATA:%.typelib=testlib-%)
202 check-gir: $(typelibs_DATA:%.typelib=testgir-%)