summaryrefslogtreecommitdiffstats
path: root/patches/0002-Fix-girpository-build-setup.patch
blob: 9bff664242795dcdc12341d8001294cbac191d5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
From bfd3100a580b8bea9db25b8bb7443fb8c3dbe1cc Mon Sep 17 00:00:00 2001
From: Simon van der Linden <svdlinden@src.gnome.org>
Date: Sat, 7 Nov 2009 13:23:53 +0100
Subject: [PATCH 2/4] Fix girpository build setup

---
 configure.ac             |   21 ++++++----
 girepository/Makefile.am |   13 +++---
 m4/introspection.m4      |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 111 insertions(+), 15 deletions(-)
 create mode 100644 m4/introspection.m4

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])
+])
-- 
1.6.3.3