Output warn message if iso-codes can not be found.
[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], [0])
25 m4_define([ibus_minor_version], [1])
26 m4_define([ibus_micro_version], [1])
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 # check inotify
53 AC_CHECK_HEADERS([sys/inotify.h])
54
55 # check glib2
56 AM_PATH_GLIB_2_0
57 PKG_CHECK_MODULES(GLIB2, [
58     glib-2.0
59 ])
60 PKG_CHECK_MODULES(GOBJECT2, [
61     gobject-2.0
62 ])
63
64
65 # check gtk, gdk & pygtk
66 PKG_CHECK_MODULES(GTK2, [
67     gtk+-2.0
68 ])
69
70 GTK_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
71 GTK_IM_MODULEDIR="$libdir"/gtk-2.0/immodules
72
73 PKG_CHECK_MODULES(GDK2, [
74     gdk-2.0
75 ])
76
77 # check dbus-glib
78 PKG_CHECK_MODULES(DBUS, [
79     dbus-glib-1
80 ])
81
82
83 # Check for Qt4
84 PKG_CHECK_MODULES(QT,
85     [QtCore >= 4.4.0 QtDBus >= 4.4.0],
86     [IBUS_HAS_QT4=yes],
87     [IBUS_HAS_QT4=no]
88 )
89
90 if test x"$IBUS_HAS_QT4" == x"yes"; then
91     QMAKE=`$PKG_CONFIG --variable=qmake Qt`
92     if test x"$QMAKE" == x""; then
93         AC_PATH_PROG(QMAKE, qmake-qt4)
94     fi
95     if test x"$QMAKE" == x""; then
96         AC_PATH_PROG(QMAKE, qmake)
97     fi
98     if test x"$QMAKE" == x""; then
99         IBUS_HAS_QT4=no
100         AC_MSG_WARN([Can not find qmake.])
101     fi
102     AC_SUBST(QMAKE)
103 fi
104
105 # Check for x11
106 PKG_CHECK_MODULES(X11, [
107     x11
108 ])
109
110 AC_CHECK_HEADERS([X11/XKBlib.h])
111
112 # check env
113 AC_PATH_PROG(ENV, env)
114 AC_SUBST(ENV)
115
116
117 # check python
118 AM_PATH_PYTHON([2.5])
119 AC_PATH_PROG(PYTHON_CONFIG, python$PYTHON_VERSION-config)
120 if test x"$PYTHON_CONFIG" == x""; then
121     AC_PATH_PROG(PYTHON_CONFIG, python-config)
122 fi
123 if test x"$PYTHON_CONFIG" != x""; then
124     PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
125     PYTHON_LIBS=`$PYTHON_CONFIG --libs`
126 else
127     PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
128     PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
129 fi
130 PYTHON_INCLUDES="$PYTHON_CFLAGS"
131 AC_SUBST(PYTHON_CFLAGS)
132 AC_SUBST(PYTHON_INCLUDES)
133 AC_SUBST(PYTHON_LIBS)
134
135
136 # define GETTEXT_* variables
137 GETTEXT_PACKAGE=ibus
138 AC_SUBST(GETTEXT_PACKAGE)
139 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only architecture-independent data directory.])
140
141 AM_GNU_GETTEXT([external])
142 AM_GNU_GETTEXT_VERSION(0.16.1)
143
144
145 # define configure arguments
146 AC_ARG_WITH(gtk-im-module-dir,
147     AS_HELP_STRING([--with-gtk-im-module-dir[=DIR]],
148         [Select gtk immodule dir]),
149     GTK_IM_MODULEDIR=$with_gtk_im_module_dir
150 )
151 AC_SUBST(GTK_IM_MODULEDIR)
152
153 AC_ARG_ENABLE(qt4-immodule,
154     AS_HELP_STRING([--disable-qt4-immodule],
155         [do not build qt4 immodule]),
156     [enable_qt4=$enableval],
157     [enable_qt4=yes],
158 )
159 if test x"$IBUS_HAS_QT4" != x"yes"; then
160     enable_qt4=no
161 fi
162 AM_CONDITIONAL(IBUS_BUILD_QT4, [test x"$enable_qt4" = x"yes" ])
163
164 # check pygtk gconf for pygconf
165 AC_ARG_ENABLE(pygconf,
166     AS_HELP_STRING([--enable-pygconf],
167         [Build python gconf binding, with it ibus will not depend on gnome-python]),
168     [enable_pygconf=$enableval],
169     [enable_pygconf=no],
170 )
171
172 PKG_CHECK_MODULES(PYGTK,
173     pygtk-2.0 >= 2.10.3,
174     [IBUS_HAS_PYGTK=yes],
175     [IBUS_HAS_PYGTK=no]
176 )
177 AC_SUBST(PYGTK_CFLAGS)
178 AC_SUBST(PYGTK_LIBS)
179 if test x"$IBUS_HAS_PYGTK" != x"yes" -a x"$enable_pygconf" = x"yes"; then
180   AC_MSG_ERROR(can not build python gconf binding without pygtk-2.0)
181 fi
182
183 AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
184 if test x"$PYGTK_CODEGEN" = x"no" -a x"$enable_pygconf" = x"yes"; then
185   AC_MSG_ERROR(can not build python gconf binding without pygtk-codegen-2.0)
186 fi
187
188 PKG_CHECK_MODULES(GCONF,
189     [gconf-2.0 >= 2.11.1],
190     [IBUS_HAS_GCONF=yes],
191     [IBUS_HAS_GCONF=no]
192 )
193 AC_SUBST(GCONF_CFLAGS)
194 AC_SUBST(GCONF_LIBS)
195 if test x"$IBUS_HAS_GCONF" != x"yes" -a x"$enable_pygconf" = x"yes"; then
196   AC_MSG_ERROR(can not build python gconf binding without gconf-2.0)
197 fi
198
199 AM_CONDITIONAL(IBUS_BUILD_PYGCONF, [test x"$enable_pygconf" = x"yes" ])
200
201 # check iso-codes
202 AC_ARG_ENABLE(iso-codes-check,
203     AS_HELP_STRING([--disable-iso-codes-check],
204         [Do not check iso-codes]),
205     [enable_iso_codes_check=$enableval],
206     [enable_iso_codes_check=yes],
207 )
208 PKG_CHECK_MODULES(ISOCODES,
209     iso-codes,
210     [IBUS_HAS_ISOCODES=yes],
211     [IBUS_HAS_ISOCODES=no],
212 )
213 if test x"$IBUS_HAS_ISOCODES" != x"yes"; then
214     if test x"$enable_iso_codes_check" != x"no"; then
215         AC_MSG_ERROR([can not find iso-codes. Please install iso-codes or configure with --disable-iso-codes-check])
216     else
217         AC_MSG_WARN([can not find iso-codes. It is required.])
218     fi
219 fi
220
221 # OUTPUT files
222 AC_CONFIG_FILES([ po/Makefile.in
223 Makefile
224 ibus.spec
225 ibus/config.py
226 ibus/Makefile
227 ibus/interface/Makefile
228 daemon/Makefile
229 daemon/ibus-daemon
230 launcher/ibus
231 launcher/ibus.desktop
232 launcher/Makefile
233 panel/Makefile
234 panel/ibus-panel
235 gconf/Makefile
236 gconf/ibus-gconf
237 lib/Makefile
238 lib/gtk2/Makefile
239 client/Makefile
240 client/gtk2/Makefile
241 client/qt4/Makefile
242 client/x11/Makefile
243 setup/Makefile
244 setup/ibus-setup
245 setup/ibus-setup.desktop
246 util/Makefile
247 util/IMdkit/Makefile
248 util/gconf/Makefile
249 icons/Makefile
250 m4/Makefile
251 ])
252
253 AC_OUTPUT
254 AC_MSG_RESULT([
255 Build options:
256   Version                  $VERSION
257   Install prefix           $prefix
258   Build shared libs        $enable_shared
259   Build static libs        $enable_static
260   Gtk immodule dir         $GTK_IM_MODULEDIR
261   Enable Qt4 IM module     $enable_qt4
262   Build pygconf            $enable_pygconf
263 ])
264