1 include $(top_srcdir)/common.mk
2 include $(top_srcdir)/Makefile.introspection
18 EXTRA_DIST += $(BASE_GIRSOURCES)
22 # glib with source (to enable documentation)
24 GLib_2_0_gir_DOCSRC = $(GLIBSRC)/glib/*.c
25 GObject_2_0_gir_DOCSRC = $(GLIBSRC)/gobject/*.c
26 GModule_2_0_gir_DOCSRC = $(GLIBSRC)/gmodule/*.c
27 Gio_2_0_gir_DOCSRC = $(GLIBSRC)/gio/*.c
30 GObject_2_0_gir_DOCSRC =
31 GModule_2_0_gir_DOCSRC =
37 GLIB_INCLUDEDIR=$(shell pkg-config --variable=includedir glib-2.0)/glib-2.0
38 GLIB_LIBDIR=$(shell pkg-config --variable=libdir glib-2.0)
43 GLIB_INCLUDEDIR=$(shell pkg-config --variable=includedir glib-2.0)/glib-2.0
44 GLIB_LIBDIR=$(shell pkg-config --variable=libdir glib-2.0)
47 GLIB_LIBRARY=libglib-2.0-0
52 GLib_2_0_gir_LIBS = $(GLIB_LIBRARY)
53 GLib_2_0_gir_SCANNERFLAGS = --noclosure --strip-prefix=g --c-include="glib.h" \
54 $(GLib_2_0_gir_DOCSRC)
55 GLib_2_0_gir_PACKAGES = glib-2.0
56 GLib_2_0_gir_CFLAGS = $(CPPFLAGS) \
57 -I$(GLIB_INCLUDEDIR) \
58 -I$(GLIB_LIBDIR)/glib-2.0/include \
59 -DGETTEXT_PACKAGE=Dummy \
62 GLib_2_0_gir_ASSERTIONS = $(srcdir)/GLib-2.0.xpath
63 GLib_2_0_gir_FILES = \
64 $(GLIB_LIBDIR)/glib-2.0/include/glibconfig.h \
65 $(GLIB_INCLUDEDIR)/glib/*.h \
68 INTROSPECTION_GIRS += GLib-2.0.gir
69 EXTRA_DIST += glib-2.0.c GLib-2.0.xpath
72 GOBJECT_INCLUDEDIR=$(shell pkg-config --variable=includedir gobject-2.0)/glib-2.0
73 GOBJECT_LIBDIR=$(shell pkg-config --variable=libdir gobject-2.0)
76 GOBJECT_LIBRARY=libgobject-2.0-0
78 GOBJECT_LIBRARY=gobject-2.0
81 GObject-2.0.gir: GLib-2.0.gir
83 GObject_2_0_gir_LIBS = $(GOBJECT_LIBRARY)
84 GObject_2_0_gir_SCANNERFLAGS = --noclosure --strip-prefix=g --c-include="glib-object.h"
85 GObject_2_0_gir_PACKAGES = gobject-2.0
86 GObject_2_0_gir_INCLUDES = GLib-2.0
87 GObject_2_0_gir_CFLAGS = \
88 -DGOBJECT_COMPILATION \
89 -I$(GOBJECT_INCLUDEDIR) \
90 -I$(GOBJECT_LIBDIR)/glib-2.0/include
91 GObject_2_0_gir_ASSERTIONS = $(srcdir)/GObject-2.0.xpath
92 GObject_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gobject/*.h $(srcdir)/gobject-2.0.c
94 INTROSPECTION_GIRS += GObject-2.0.gir
95 EXTRA_DIST += gobject-2.0.c GObject-2.0.xpath
98 GMODULE_INCLUDEDIR=$(shell pkg-config --variable=includedir gmodule-2.0)/glib-2.0
99 GMODULE_LIBDIR=$(shell pkg-config --variable=libdir gmodule-2.0)
102 GMODULE_LIBRARY=libgmodule-2.0-0
104 GMODULE_LIBRARY=gmodule-2.0
107 GModule-2.0.gir: GLib-2.0.gir
109 GModule_2_0_gir_LIBS = $(GMODULE_LIBRARY)
110 GModule_2_0_gir_SCANNERFLAGS = --noclosure --strip-prefix=g \
111 --c-include="gmodule.h" \
112 $(GModule_2_0_gir_DOCSRC)
113 GModule_2_0_gir_PACKAGES = gmodule-2.0
114 GModule_2_0_gir_INCLUDES = GLib-2.0
115 GModule_2_0_gir_CFLAGS = \
116 -I$(GMODULE_INCLUDEDIR) \
117 -I$(GMODULE_LIBDIR)/glib-2.0/include
118 GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h
120 INTROSPECTION_GIRS += GModule-2.0.gir
123 GIO_INCLUDEDIR=$(shell pkg-config --variable=includedir gio-2.0)/glib-2.0
124 GIO_LIBDIR=$(shell pkg-config --variable=libdir gio-2.0)
127 GIO_LIBRARY=libgio-2.0-0
133 GIO_UNIX_HDRS=$(shell pkg-config --variable=includedir gio-unix-2.0)/gio-unix-2.0/gio/*.h
134 GIO_UNIX_PACKAGES = gio-unix-2.0
140 Gio-2.0.gir: GObject-2.0.gir
142 Gio_2_0_gir_LIBS = $(GIO_LIBRARY)
143 Gio_2_0_gir_SCANNERFLAGS = --noclosure --strip-prefix=g \
144 --c-include="gio/gio.h"
145 $(Gio_2_0_gir_DOCSRC)
146 Gio_2_0_gir_PACKAGES = gio-2.0 $(GIO_UNIX_PACKAGES)
147 Gio_2_0_gir_INCLUDES = GObject-2.0
148 Gio_2_0_gir_CFLAGS = \
150 -I$(GIO_LIBDIR)/glib-2.0/include
151 Gio_2_0_gir_FILES = \
153 $(GIO_INCLUDEDIR)/gio/*.h \
156 INTROSPECTION_GIRS += Gio-2.0.gir
157 EXTRA_DIST += gio-2.0.c
160 GIRepository-2.0.gir: GObject-2.0.gir $(top_builddir)/girepository/libgirepository-1.0.la
162 GIRepository_2_0_gir_LIBS = girepository-1.0
163 GIRepository_2_0_gir_SCANNERFLAGS = \
166 --c-include="girepository.h" \
167 --pkg-export gobject-introspection-1.0
168 GIRepository_2_0_gir_PACKAGES = gobject-2.0
169 GIRepository_2_0_gir_INCLUDES = GObject-2.0
170 GIRepository_2_0_gir_CFLAGS = -I$(srcdir)/girepository
171 GIRepository_2_0_gir_FILES = \
172 $(top_srcdir)/girepository/girepository.c \
173 $(top_srcdir)/girepository/girepository.h
175 INTROSPECTION_GIRS += GIRepository-2.0.gir
181 LT_VERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
182 TYPELIB_VERSION = $(LT_CURRENT).0
184 lib_LTLIBRARIES = libgirepository-everything-1.0.la
186 libgirepository_everything_1_0_la_SOURCES = $(srcdir)/everything.c $(srcdir)/everything.h
187 libgirepository_everything_1_0_la_CFLAGS = $(GOBJECT_CFLAGS)
188 libgirepository_everything_1_0_la_LDFLAGS = -version-info $(LT_VERSION)
189 libgirepository_everything_1_0_la_LIBADD = $(GOBJECT_LIBS)
192 libgirepository_everything_1_0_la_LDFLAGS += -no-undefined
195 Everything-1.0.gir: Gio-2.0.gir libgirepository-everything-1.0.la
197 Everything_1_0_gir_LIBS = libgirepository-everything-1.0.la
198 Everything_1_0_gir_PACKAGES = gobject-2.0
199 Everything_1_0_gir_INCLUDES = GObject-2.0
200 Everything_1_0_gir_FILES = $(srcdir)/everything.h $(srcdir)/everything.c
202 INTROSPECTION_GIRS += Everything-$(TYPELIB_VERSION).gir
203 EXPECTEDGIRS += Everything-$(TYPELIB_VERSION)-expected.gir
206 CLEANFILES += $(INTROSPECTION_GIRS)
210 $(INTROSPECTION_GIRS)
213 gir_DATA = $(GIRSOURCES)
215 typelibsdir = $(libdir)/girepository-1.0
216 typelibs_DATA = $(GIRSOURCES:.gir=.typelib)
218 CLEANFILES += $(typelibs_DATA)
221 @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo " TEST $*.gir"
223 CHECKGIRS = $(EXPECTEDGIRS:-expected.gir=.gir.check)
224 check-local: $(CHECKGIRS)
226 # Check that typelib -> gir -> typelib transformation is lossless.
227 # Comparing gir files is relatively fragile (whitespace, attribute default
228 # values, etc.) but the typelibs should identical as long as the gir files are
229 # semantically equivalent.
231 %.test.gir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT)
232 $(DEBUG) $(top_builddir)/tools/g-ir-generate$(EXEEXT) --includedir=. $< -o $@
234 testlib-%: %.test.gir $(top_builddir)/tools/g-ir-generate$(EXEEXT)
235 $(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $< -o $*.test.typelib
236 cmp $*.typelib $*.test.typelib && rm $*.test.typelib
238 testgir-%: %.test.gir
239 diff -u $*.gir $< && rm $<
241 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.gir)
242 CLEANFILES += $(typelibs_DATA:%.typelib=%.test.typelib)
244 #check-local: $(typelibs_DATA:%.typelib=testlib-%)
245 check-gir: $(typelibs_DATA:%.typelib=testgir-%)
247 EXTRA_DIST += $(EXPECTEDGIRS)