1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006
4 dnl National Institute of Advanced Industrial Science and Technology (AIST)
5 dnl Registration Number H15PRO112
7 dnl This file is part of the m17n library.
9 dnl The m17n library is free software; you can redistribute it and/or
10 dnl modify it under the terms of the GNU Lesser General Public License
11 dnl as published by the Free Software Foundation; either version 2.1 of
12 dnl the License, or (at your option) any later version.
14 dnl The m17n library is distributed in the hope that it will be useful,
15 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
16 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 dnl Lesser General Public License for more details.
19 dnl You should have received a copy of the GNU Lesser General Public
20 dnl License along with the m17n library; if not, write to the Free
21 dnl Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 dnl Boston, MA 02110-1301, USA.
24 dnl Process this file with autoconf to produce a configure script.
26 AC_INIT(m17n-lib, 1.3.4, m17n-lib-bug@m17n.org)
28 AM_CONFIG_HEADER(src/config.h)
35 GETTEXTDIR="$datadir/locale"
38 dnl Checks for programs for compiling.
41 AC_LIBLTDL_CONVENIENCE
44 dnl Checks for X libraries.
47 dnl Checks for standard header files.
51 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
52 string.h strings.h sys/time.h unistd.h])
53 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
55 dnl Checks for typedefs, structures, and compiler characteristics.
61 dnl Checks for endian. This influence the default UTF-16 definition.
64 dnl Checks for library functions.
73 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
74 AC_CHECK_FUNCS(strchr strdup gettimeofday)
76 dnl Checks where the m17n database is installed.
78 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
79 if test "x$HAVE_M17N_DB" = "xyes"; then
82 M17NDIR="${datadir}/m17n"
86 dnl Checks which levels of APIs should be compiled.
89 AC_HELP_STRING([--with-gui],
90 [with GUI level APIs (default is YES)]))
92 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
94 if test x$with_gui != xno; then
96 dnl Checks if dlopen exists, and if it's in libc or libdl.
98 AC_SEARCH_LIBS(dlopen, dl,
99 AC_DEFINE(HAVE_DLOPEN, 1,
100 [Define to 1 if you have the function dlopen.]))
102 dnl Check several libraries without adding -lxxx to LIBS, without
103 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
104 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
105 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
110 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
112 if test "x$no_x" != "xyes"; then
113 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
114 X11_LD_FLAGS="-lXt -lX11"
115 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
117 if test "x$HAVE_XAW" = "xyes"; then
118 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
119 [Define to 1 if you have the Xaw header files.])
120 XAW_LD_FLAGS="-lXaw -lXmu"
121 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
122 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
125 AC_SUBST(X11_LD_FLAGS)
126 AC_SUBST(XAW_LD_FLAGS)
128 dnl Check for fribidi library.
129 save_CPPFLAGS="$CPPFLAGS"
131 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
132 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
133 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
134 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
135 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
137 FRIBIDI_LD_FLAGS=-lfribidi
139 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
140 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
141 if test "x$HAVE_FRIBIDI" = "xyes"; then
142 AC_DEFINE(HAVE_FRIBIDI, 1,
143 [Define to 1 if you have Fribidi library and header file.])
144 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
146 CPPFLAGS="$save_CPPFLAGS"
150 AC_SUBST(FRIBIDI_LD_FLAGS)
152 dnl Check for otflib usability.
154 AC_HELP_STRING([--with-libotf],
155 [with OpenType font suport (default is YES)]))
157 if test "x$with_libotf" != "xno"; then
158 save_CPPFLAGS="$CPPFLAGS"
160 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
161 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
162 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
163 OTF_LD_FLAGS="`libotf-config --libs`"
164 LIBS="$LIBS $OTF_LD_FLAGS"
168 ## We check the availability of OTF_check_features
169 ## because we need libotf-0.9.4 or the later.
170 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
171 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
172 if test "x$HAVE_OTF" = "xyes"; then
173 AC_DEFINE(HAVE_OTF, 1,
174 [Define to 1 if you have OTF library and header file.])
175 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
177 CPPFLAGS="$save_CPPFLAGS"
182 AC_SUBST(OTF_LD_FLAGS)
184 dnl Check for Freetype2 usability.
185 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
186 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
187 FREETYPE_INC=`freetype-config --cflags`
188 save_CPPFLAGS="$CPPFLAGS"
189 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
190 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
191 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
192 if test "x$HAVE_FREETYPE" = "xyes" ; then
194 LIBS="$LIBS `freetype-config --libs`"
195 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
198 if test "x$HAVE_FREETYPE" = "xyes"; then
199 FREETYPE_LD_FLAGS=`freetype-config --libs`
200 AC_DEFINE(HAVE_FREETYPE, 1,
201 [Define to 1 if you have FreeType library and header file.])
202 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
203 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
204 [#include <ft2build.h>
205 #include FT_FREETYPE_H])
206 if test "x$HAVE_FTBDF_H" = "xyes"; then
207 AC_DEFINE(HAVE_FTBDF_H, 1,
208 [Define to 1 if you have freetype/ftbdf.h.])
210 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
214 AC_SUBST(FREETYPE_LD_FLAGS)
216 dnl Check for Xft2 usability.
217 save_CPPFLAGS="$CPPFLAGS"
219 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
220 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
221 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
222 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
223 XFT2_LD_FLAGS="`xft-config --libs`"
224 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
225 if pkg-config xft ; then
226 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
227 XFT2_LD_FLAGS="`pkg-config --libs xft`"
230 LIBS="$LIBS $XFT2_LD_FLAGS"
231 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
232 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
233 [#include <X11/Xft/Xft.h>
234 #if XftVersion >= 20000
236 Version too old. Compiling this line should fail.
238 if test "x$HAVE_XFT2" = "xyes"; then
239 AC_DEFINE(HAVE_XFT2, 1,
240 [Define to 1 if you have Xft2 library and header file.])
241 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
244 CPPFLAGS="$save_CPPFLAGS"
247 AC_SUBST(XFT2_LD_FLAGS)
249 dnl Check for fontconfig usability.
250 AC_ARG_WITH(fontconfig,
251 AC_HELP_STRING([--with-fontconfig],
252 [with FontConfig library (default is YES)]))
253 if test "x$with_fontconfig" != "xno"; then
254 save_CPPFLAGS="$CPPFLAGS"
256 FONTCONFIG_LD_FLAGS=-lfontconfig
257 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
258 if pkg-config --exists fontconfig; then
259 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
260 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
261 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
264 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
265 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
266 if test "x$HAVE_FONTCONFIG" = "xyes"; then
267 AC_DEFINE(HAVE_FONTCONFIG, 1,
268 [Define to 1 if you have fontconfig library and header file.])
269 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
272 CPPFLAGS="$save_CPPFLAGS"
276 AC_SUBST(FONTCONFIG_LD_FLAGS)
278 dnl Check for gdlib usability.
280 AC_HELP_STRING([--with-gd],
281 [suport graphic device by GD library (default is YES)]))
283 if test "x$with_gd" != "xno"; then
285 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
286 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
287 if test "x$HAVE_GD" = "xyes"; then
288 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
289 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
290 [Define to 1 or 2 if you have gd library and header file.])
291 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
293 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
297 AC_SUBST(GD_LD_FLAGS)
301 dnl Check for libxml2 usability.
302 save_CPPFLAGS="$CPPFLAGS"
304 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
305 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
306 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
307 XML2_LD_FLAGS="`xml2-config --libs`"
308 LIBS="$LIBS $XML2_LD_FLAGS"
310 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
311 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
313 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
314 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
315 if test "x$HAVE_XML2" = "xyes"; then
316 AC_DEFINE(HAVE_XML2, 1,
317 [Define to 1 if you have libxml2 library and header file])
318 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
321 CPPFLAGS="$save_CPPFLAGS"
324 AC_SUBST(XML2_LD_FLAGS)
326 dnl Check for Anthy usability.
327 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
328 if test "x$HAVE_ANTHY" = "xyes"; then
329 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
330 if test "x$HAVE_ANTHY" = "xyes"; then
331 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
332 if test "x$HAVE_ANTHY" = "xyes"; then
333 AC_DEFINE(HAVE_ANTHY, 1,
334 [Define to 1 if you have Anthy library and header file])
335 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
336 ANTHY_LD_FLAGS="-lanthy -lanthydic"
337 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
341 AC_SUBST(ANTHY_LD_FLAGS)
343 dnl Check for Ispell usability.
344 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
345 if test "x$HAVE_ISPELL" = "xyes"; then
346 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
347 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
348 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
351 dnl Check for Thai word-segmentation library.
352 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
353 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
354 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
356 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
357 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
359 if test "x$HAVE_LIBTHAI" == "xyes"; then
361 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
362 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
363 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
364 HAVE_THAI_WORDSEG=yes
366 elif test "x$HAVE_WORDCUT" = "xyes"; then
368 save_CPPFLAGS="$CPPFLAGS"
369 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
370 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
371 if test "x$HAVE_WORDCUT" = "xno"; then
372 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
373 if test "x$HAVE_GLIB_2_0" = "xyes"; then
374 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
375 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
378 if test "x$HAVE_WORDCUT" = "xyes"; then
379 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
380 AC_DEFINE(HAVE_WORDCUT, 1,
381 [Define if you have the wordcut library and header file])
382 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
383 HAVE_THAI_WORDSEG=yes
385 CPPFLAGS="$save_CPPFLAGS"
390 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
391 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
392 if test -f "/usr/share/wordcut/tdict.wcd"; then
393 tdict="/usr/share/wordcut/tdict.wcd"
394 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
395 tdict="/usr/local/share/wordcut/tdict.wcd"
398 if test "x$tdict" != "x"; then
399 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
400 [Define if you have the old version of wordcut library])
401 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
402 THAI_WORDSEG_LD_FLAGS=-lwordcut
403 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
404 HAVE_THAI_WORDSEG=yes
411 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
412 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
413 [Define if you have some Thai word-segmentation library])
415 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
417 AC_SUBST(CONFIG_FLAGS)
419 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
420 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
421 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
422 dnl CPPFLAGS here directly.
424 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
426 dnl AC_ARG_ENABLE(xom,
427 dnl [ --enable-xom build and install XOM library.],
428 dnl XOM="$enableval")
435 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
436 [Define to loadable module extention])
438 AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile
447 dnl if test "x$XOM" = "xyes"; then
448 dnl AC_CONFIG_FILES(omM17N/Makefile)
453 echo "The m17n library is configured with these external libraries."
454 echo " $M17N_EXT_LIBS"
457 dnl comment-start: "dnl "
459 dnl comment-start-skip: "\\bdnl\\b\\s *"