[pygobject] Fix girpository build setup
- From: Simon van der Linden <svdlinden src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pygobject] Fix girpository build setup
- Date: Mon, 9 Nov 2009 21:38:38 +0000 (UTC)
commit bfd3100a580b8bea9db25b8bb7443fb8c3dbe1cc
Author: Simon van der Linden <svdlinden src gnome org>
Date: Sat Nov 7 13:23:53 2009 +0100
Fix girpository build setup
configure.ac | 21 ++++++----
girepository/Makefile.am | 13 +++---
m4/introspection.m4 | 92 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+), 15 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 64aeaa5..0bf7610 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,14 +200,19 @@ if test -n "$export_dynamic"; then
GIOUNIX_LIBS=`echo $GIOUNIX_LIBS | sed -e "s/$export_dynamic//"`
fi
-dnl gobject_introspection
-PKG_CHECK_MODULES(GOBJECT_INTROSPECTION, gobject-introspection-1.0 >= gobject_introspection_required_version,
- have_gobject_introspection=true, have_gobject_introspection=false)
-AC_SUBST(GOBJECT_INTROSPECTION_CFLAGS)
-AC_SUBST(GOBJECT_INTROSPECTION_LIBS)
-AM_CONDITIONAL(BUILD_GOBJECT_INTROSPECTION, $have_gobject_introspection)
-if test -n "$export_dynamic"; then
- GOBJECT_INTROSPECTION_LIBS=`echo $GOBJECT_INTROSPECTION_LIBS | sed -e "s/$export_dynamic//"`
+dnl gi
+AC_ARG_ENABLE(introspection,
+ AC_HELP_STRING([--enable-introspection], [Enable gobject-introspection bindings building]),
+ enable_introspection=$enableval,
+ enable_introspection=no)
+AM_CONDITIONAL(BUILD_GIREPOSITORY, test "$enable_introspection" != no)
+if test "$enable_introspection" != no; then
+ PKG_CHECK_MODULES(GOBJECT_INTROSPECTION, gobject-introspection-1.0 >= gobject_introspection_required_version)
+ AC_SUBST(GOBJECT_INTROSPECTION_CFLAGS)
+ AC_SUBST(GOBJECT_INTROSPECTION_LIBS)
+ if test -n "$export_dynamic"; then
+ GOBJECT_INTROSPECTION_LIBS=`echo $GOBJECT_INTROSPECTION_LIBS | sed -e "s/$export_dynamic//"`
+ fi
fi
dnl add required cflags ...
diff --git a/girepository/Makefile.am b/girepository/Makefile.am
index c414652..8bdb462 100644
--- a/girepository/Makefile.am
+++ b/girepository/Makefile.am
@@ -1,17 +1,16 @@
AUTOMAKE_OPTIONS = 1.7
PLATFORM_VERSION = 2.0
+pkgpyexecdir = $(pyexecdir)/gtk-2.0/girepository
+
+if BUILD_GIREPOSITORY
+
INCLUDES = \
-I$(top_srcdir)/gobject \
$(PYTHON_INCLUDES) \
$(PYGOBJECT_CFLAGS) \
$(GOBJECT_INTROSPECTION_CFLAGS)
-pkginclude_HEADERS = bank.h
-
-# girepository extension modules
-pkgpyexecdir = $(pyexecdir)/gtk-2.0/girepository
-
# girepository python scripts
pygirepositorydir = $(pkgpyexecdir)
pygirepository_PYTHON = \
@@ -44,7 +43,6 @@ repo_la_SOURCES = \
bank.c \
bank.h
-if BUILD_GOBJECT_INTROSPECTION
pygirepository_LTLIBRARIES = repo.la
all: $(pygirepository_LTLIBRARIES:.la=.so)
@@ -52,4 +50,5 @@ clean-local:
rm -f $(pygirepository_LTLIBRARIES:.la=.so)
.la.so:
$(LN_S) .libs/$@ $@ || true
-endif
+
+endif # BUILD_GIREPOSITORY
diff --git a/m4/introspection.m4 b/m4/introspection.m4
new file mode 100644
index 0000000..6e2c565
--- /dev/null
+++ b/m4/introspection.m4
@@ -0,0 +1,92 @@
+dnl -*- mode: autoconf -*-
+dnl Copyright 2009 Johan Dahlin
+dnl
+dnl This file is free software; the author(s) gives unlimited
+dnl permission to copy and/or distribute it, with or without
+dnl modifications, as long as this notice is preserved.
+dnl
+
+# serial 1
+
+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+[
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+
+ dnl enable/disable introspection
+ m4_if([$2], [require],
+ [dnl
+ enable_introspection=yes
+ ],[dnl
+ AC_ARG_ENABLE(introspection,
+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+ [Enable introspection for this build]),,
+ [enable_introspection=auto])
+ ])dnl
+
+ AC_MSG_CHECKING([for gobject-introspection])
+
+ dnl presence/version checking
+ AS_CASE([$enable_introspection],
+ [no], [dnl
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ],dnl
+ [yes],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+ found_introspection=yes,
+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+ ],dnl
+ [auto],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+ ],dnl
+ [dnl
+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+ ])dnl
+
+ AC_MSG_RESULT([$found_introspection])
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ fi
+ AC_SUBST(INTROSPECTION_SCANNER)
+ AC_SUBST(INTROSPECTION_COMPILER)
+ AC_SUBST(INTROSPECTION_GENERATE)
+ AC_SUBST(INTROSPECTION_GIRDIR)
+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
+ AC_SUBST(INTROSPECTION_CFLAGS)
+ AC_SUBST(INTROSPECTION_LIBS)
+
+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+])
+
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+
+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+])
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+
+
+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]