Fix issue http://code.google.com/p/ibus/issues/detail?id=241.
[platform/upstream/ibus.git] / configure.ac
1 # vim:set et ts=4:
2 #
3 # ibus - The Input Bus
4 #
5 # Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
6 #
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2 of the License, or (at your option) any later version.
11 #
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Lesser General Public License for more details.
16 #
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this program; if not, write to the
19 # Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 # Boston, MA  02111-1307  USA
21
22 # if not 1, append datestamp to the version number.
23 m4_define([ibus_released], [0])
24 m4_define([ibus_major_version], [1])
25 m4_define([ibus_minor_version], [1])
26 m4_define([ibus_micro_version], [0])
27 m4_define(ibus_maybe_datestamp,
28     m4_esyscmd([if test x]ibus_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi]))
29
30 m4_define([ibus_version],
31     ibus_major_version.ibus_minor_version.ibus_micro_version[]ibus_maybe_datestamp)
32
33 AC_INIT([ibus], [ibus_version], [http://code.google.com/p/ibus/issues/entry],[ibus])
34 AM_INIT_AUTOMAKE([1.10])
35 AC_GNU_SOURCE
36
37 AC_CONFIG_HEADERS([config.h])
38 AC_CONFIG_MACRO_DIR([m4])
39
40 # define PACKAGE_VERSION_* variables
41 AS_VERSION
42 AS_NANO
43 AM_MAINTAINER_MODE
44 AM_DISABLE_STATIC
45 AC_PROG_CC
46 AM_PROG_CC_C_O
47 AC_PROG_CXX
48 AC_ISC_POSIX
49 AC_HEADER_STDC
50 AM_PROG_LIBTOOL
51
52 # If only source code changed, lt_revision + 1
53 # If any interface added, lt_age + 1
54 # If any interfaces changed or removed, lt_current + 1
55 m4_define([lt_current], [0])
56 m4_define([lt_revision], [0])
57 m4_define([lt_age], [0])
58 LT_VERSION_INFO="lt_current:lt_revision:lt_age"
59 AC_SUBST(LT_VERSION_INFO)
60
61 # check inotify
62 AC_CHECK_HEADERS([sys/inotify.h])
63
64 # check glib2
65 AM_PATH_GLIB_2_0
66 PKG_CHECK_MODULES(GLIB2, [
67     glib-2.0 >= 2.18
68 ])
69 PKG_CHECK_MODULES(GOBJECT2, [
70     gobject-2.0 >= 2.18
71 ])
72 PKG_CHECK_MODULES(GIO2, [
73     gio-2.0 >= 2.18
74 ])
75 PKG_CHECK_MODULES(PYGOBJECT2, [
76     pygobject-2.0 >= 2.15
77 ])
78
79 # check for gtk, gdk & pygtk
80 PKG_CHECK_MODULES(GTK2, [
81     gtk+-2.0
82 ])
83
84 gtk_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
85 GTK_IM_MODULEDIR="$libdir"/gtk-2.0/$gtk_binary_version/immodules
86
87 PKG_CHECK_MODULES(GDK2, [
88     gdk-2.0
89 ])
90
91 # check for gtk-doc
92 GTK_DOC_CHECK(1.9)
93 # check for dbus-glib
94 PKG_CHECK_MODULES(DBUS, [
95     dbus-1
96 ])
97
98 # Check for Qt4
99 PKG_CHECK_MODULES(QT,
100     [QtCore >= 4.4.0 QtDBus >= 4.4.0],
101     [IBUS_HAS_QT4=yes],
102     [IBUS_HAS_QT4=no]
103 )
104
105 if test x"$IBUS_HAS_QT4" == x"yes"; then
106     QMAKE=`$PKG_CONFIG --variable=qmake Qt`
107     if test x"$QMAKE" == x""; then
108         AC_PATH_PROG(QMAKE, qmake-qt4)
109     fi
110     if test x"$QMAKE" == x""; then
111         AC_PATH_PROG(QMAKE, qmake)
112     fi
113     if test x"$QMAKE" == x""; then
114         IBUS_HAS_QT4=no
115         AC_MSG_WARN([Can not find qmake.])
116     fi
117     AC_SUBST(QMAKE)
118 fi
119
120 # Check for x11
121 PKG_CHECK_MODULES(X11, [
122     x11
123 ])
124
125 AC_CHECK_HEADERS([X11/XKBlib.h])
126
127 # check env
128 AC_PATH_PROG(ENV, env)
129 AC_SUBST(ENV)
130
131
132 # check python
133 AM_PATH_PYTHON([2.5])
134 AC_PATH_PROG(PYTHON_CONFIG, python$PYTHON_VERSION-config)
135 if test x"$PYTHON_CONFIG" == x""; then
136     AC_PATH_PROG(PYTHON_CONFIG, python-config)
137 fi
138 if test x"$PYTHON_CONFIG" != x""; then
139     PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
140     PYTHON_LIBS=`$PYTHON_CONFIG --libs`
141 else
142     PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
143     PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
144 fi
145 PYTHON_INCLUDES="$PYTHON_CFLAGS"
146 AC_SUBST(PYTHON_CFLAGS)
147 AC_SUBST(PYTHON_INCLUDES)
148 AC_SUBST(PYTHON_LIBS)
149
150 #
151 REBUILD = #
152 AC_SUBST(REBUILD)
153
154 # define GETTEXT_* variables
155 GETTEXT_PACKAGE=ibus
156 AC_SUBST(GETTEXT_PACKAGE)
157 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only architecture-independent data directory.])
158
159 AM_GNU_GETTEXT([external])
160 AM_GNU_GETTEXT_VERSION(0.16.1)
161
162
163 # define configure arguments
164 AC_ARG_WITH(gtk-im-module-dir,
165     AS_HELP_STRING([--with-gtk-im-module-dir[=DIR]],
166         [Select gtk immodule dir]),
167     GTK_IM_MODULEDIR=$with_gtk_im_module_dir
168 )
169 AC_SUBST(GTK_IM_MODULEDIR)
170
171 AC_ARG_ENABLE(qt4-immodule,
172     AS_HELP_STRING([--disable-qt4-immodule],
173         [do not build qt4 immodule]),
174     [enable_qt4=$enableval],
175     [enable_qt4=yes],
176 )
177 if test x"$IBUS_HAS_QT4" != x"yes"; then
178     enable_qt4=no
179 fi
180 enable_qt=no
181 AM_CONDITIONAL(IBUS_BUILD_QT4, [test x"$enable_qt4" = x"yes" ])
182
183 PKG_CHECK_MODULES(GCONF,
184     [gconf-2.0 >= 2.11.1],
185     [IBUS_HAS_GCONF=yes],
186     [IBUS_HAS_GCONF=no]
187 )
188 AC_SUBST(GCONF_CFLAGS)
189 AC_SUBST(GCONF_LIBS)
190
191 # check iso-codes
192 AC_ARG_ENABLE(iso-codes-check,
193     AS_HELP_STRING([--disable-iso-codes-check],
194         [Do not check iso-codes]),
195     [enable_iso_codes_check=$enableval],
196     [enable_iso_codes_check=yes],
197 )
198 PKG_CHECK_MODULES(ISOCODES,
199     iso-codes,
200     [IBUS_HAS_ISOCODES=yes],
201     [IBUS_HAS_ISOCODES=no],
202 )
203 if test x"$IBUS_HAS_ISOCODES" != x"yes"; then
204     if test x"$enable_iso_codes_check" != x"no"; then
205         AC_MSG_ERROR([can not find iso-codes. Please install iso-codes or configure with --disable-iso-codes-check])
206     else
207         AC_MSG_WARN([can not find iso-codes. It is required.])
208     fi
209 fi
210
211 # OUTPUT files
212 AC_CONFIG_FILES([ po/Makefile.in
213 Makefile
214 ibus-1.0.pc
215 ibus.spec
216 ibus/_config.py
217 ibus/Makefile
218 ibus/interface/Makefile
219 ui/Makefile
220 ui/gtk/Makefile
221 ui/gtk/ibus-ui-gtk
222 ui/gtk/gtkpanel.xml.in
223 gconf/Makefile
224 gconf/gconf.xml.in
225 client/Makefile
226 client/gtk2/Makefile
227 client/qt4/Makefile
228 client/x11/Makefile
229 setup/Makefile
230 setup/ibus-setup
231 setup/ibus-setup.desktop
232 src/Makefile
233 bus/Makefile
234 bindings/Makefile
235 bindings/python/Makefile
236 util/Makefile
237 util/IMdkit/Makefile
238 icons/Makefile
239 docs/Makefile
240 docs/reference/Makefile
241 docs/reference/ibus/Makefile
242 m4/Makefile
243 ])
244
245 AC_OUTPUT
246 AC_MSG_RESULT([
247 Build options:
248   Version                  $VERSION
249   Install prefix           $prefix
250   Build shared libs        $enable_shared
251   Build static libs        $enable_static
252   Gtk immodule dir         $GTK_IM_MODULEDIR
253   Enable Qt4 IM module     $enable_qt4
254   Build document           $enable_gtk_doc
255 ])
256