Workaround mysterious dlopen bug on Python import
[projects/chimara/chimara.git] / libchimara / Makefile.am
index 65b84bb23e6b7ed9da2eecd4dce610d17dcb4418..b39c8f1455ae088b01caca7ab1294a33f0433369 100644 (file)
@@ -4,12 +4,6 @@ AM_CFLAGS = -Wall
 
 lib_LTLIBRARIES = libchimara.la
 
-if TARGET_ILIAD
-pluginpath = "../interpreters"
-else
-pluginpath = $(pkglibdir)
-endif
-
 libchimara_la_SOURCES = \
        abort.c abort.h \
        case.c \
@@ -42,10 +36,10 @@ libchimara_la_SOURCES = \
        style.c style.h \
        timer.c timer.h \
        window.c window.h
-libchimara_la_CPPFLAGS = \
+libchimara_la_CPPFLAGS = $(AM_CPPFLAGS) \
        -DG_LOG_DOMAIN=\"Chimara\" \
        -DLOCALEDIR=\""$(datadir)/locale"\" \
-       -DPLUGINDIR=\""$(pluginpath)"\" \
+       -DPLUGINDIR=\""$(pkglibdir)"\" \
        -DPLUGINSOURCEDIR=\""$(abs_builddir)/../interpreters"\" \
        -I$(top_srcdir)
 libchimara_la_CFLAGS = @CHIMARA_CFLAGS@ $(AM_CFLAGS)
@@ -71,3 +65,54 @@ chimara-marshallers.h: chimara-marshallers.txt
        $(AM_V_GEN)glib-genmarshal --header --prefix=_chimara_marshal $< > $@
 
 EXTRA_DIST = doc.c glkstart.c chimara-marshallers.txt
+CLEANFILES =
+
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
+# The '--shared-library' incantation is because, for some reason, the typelib
+# only stores the filename without a pathname (see, in gobject-introspection,
+# _g_typelib_do_dlopen() in gitypelib.c around line 2100.) This is a regression
+# in either gobject-introspection or g-ir-compiler, but I can't pinpoint it.
+INTROSPECTION_COMPILER_ARGS = \
+       --includedir=$(srcdir) \
+       --shared-library=$(libdir)/libchimara.so.0
+
+if HAVE_INTROSPECTION
+introspection_sources = \
+       chimara-glk.c chimara-glk.h \
+       chimara-if.c chimara-if.h
+
+Chimara-1.0.gir: libchimara.la
+Chimara_1_0_gir_INCLUDES = GObject-2.0 GLib-2.0 Gtk-3.0
+Chimara_1_0_gir_CFLAGS = @CHIMARA_CFLAGS@ -I$(top_srcdir)
+Chimara_1_0_gir_LIBS = libchimara.la
+Chimara_1_0_gir_FILES = $(introspection_sources)
+Chimara_1_0_gir_SCANNERFLAGS = \
+       --warn-all \
+       --c-include='libchimara/chimara-glk.h' \
+       --c-include='libchimara/chimara-if.h'
+Chimara_1_0_gir_EXPORT_PACKAGES = chimara
+INTROSPECTION_GIRS += Chimara-1.0.gir
+
+girdir = @INTROSPECTION_GIRDIR@
+gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = @INTROSPECTION_TYPELIBDIR@
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(gir_DATA) $(typelib_DATA)
+endif
+GITIGNOREFILES = Chimara-1.0.gir Chimara-1.0.typelib
+
+vapidir = $(datadir)/vala/vapi
+dist_vapi_DATA = chimara.vapi
+
+if BUILDING_VAPI
+chimara.vapi: $(INTROSPECTION_GIRS)
+       $(AM_V_GEN)$(VAPIGEN) --library=chimara --pkg gtk+-3.0 Chimara-1.0.gir && \
+       touch $@
+endif
+
+MAINTAINERCLEANFILES = chimara.vapi
+-include $(top_srcdir)/git.mk