1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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.6.1],[m17n-lib-bug@m17n.org])
27 AC_CONFIG_MACRO_DIR([m4])
29 AC_CONFIG_HEADERS([src/config.h])
35 # The earliest version that this release has binary compatibility
36 # with. This is used for module locations.
37 M17N_BINARY_VERSION=1.0
39 M17N_MODULE_DIR="m17n/$M17N_BINARY_VERSION"
40 AC_SUBST(M17N_MODULE_DIR)
43 dnl Checks for programs for compiling.
48 AM_GNU_GETTEXT_VERSION([0.17])
49 GETTEXTDIR="$datadir/locale"
53 dnl LT_PREREQ([2.2.4])
56 dnl Checks for X libraries.
59 dnl Checks for standard header files.
63 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
64 string.h strings.h sys/time.h unistd.h])
65 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
67 dnl Checks for typedefs, structures, and compiler characteristics.
73 dnl Checks for endian. This influence the default UTF-16 definition.
76 dnl Checks for library functions.
85 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
86 AC_CHECK_FUNCS(strchr strdup gettimeofday)
88 dnl Checks where the m17n database is installed.
90 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
91 if test "x$HAVE_M17N_DB" = "xyes"; then
94 M17NDIR="${datadir}/m17n"
98 dnl Checks which levels of APIs should be compiled.
101 AS_HELP_STRING([--enable-gui],[enable GUI level APIs (default is YES)]))
103 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
105 if test x$with_gui != xno; then
107 dnl Checks if dlopen exists, and if it's in libc or libdl.
109 AC_SEARCH_LIBS(dlopen, dl,
110 AC_DEFINE(HAVE_DLOPEN, 1,
111 [Define to 1 if you have the function dlopen.]))
113 dnl Check several libraries without adding -lxxx to LIBS, without
114 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
115 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
116 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
121 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
123 if test "x$no_x" != "xyes"; then
124 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
125 X11_LD_FLAGS="-lXt -lX11"
126 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
128 if test "x$HAVE_XAW" = "xyes"; then
129 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
130 [Define to 1 if you have the Xaw header files.])
131 XAW_LD_FLAGS="-lXaw -lXmu"
132 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
133 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
136 AC_SUBST(X11_LD_FLAGS)
137 AC_SUBST(XAW_LD_FLAGS)
139 dnl Check for fribidi library.
140 save_CPPFLAGS="$CPPFLAGS"
142 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
143 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
144 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
145 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
146 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
148 FRIBIDI_LD_FLAGS=-lfribidi
150 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
151 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
152 if test "x$HAVE_FRIBIDI" = "xyes"; then
153 AC_DEFINE(HAVE_FRIBIDI, 1,
154 [Define to 1 if you have Fribidi library and header file.])
155 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
157 CPPFLAGS="$save_CPPFLAGS"
161 AC_SUBST(FRIBIDI_LD_FLAGS)
163 dnl Check for otflib usability.
165 AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)]))
167 if test "x$with_libotf" != "xno"; then
168 save_CPPFLAGS="$CPPFLAGS"
170 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
171 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
172 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
173 OTF_LD_FLAGS="`libotf-config --libs`"
174 LIBS="$LIBS $OTF_LD_FLAGS"
178 ## We check the availability of OTF_check_features
179 ## because we need libotf-0.9.4 or the later.
180 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
181 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
182 if test "x$HAVE_OTF" = "xyes"; then
183 AC_DEFINE(HAVE_OTF, 1,
184 [Define to 1 if you have OTF library and header file.])
185 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
186 AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes,
187 HAVE_OTF_DRIVE_GPOS2=no)
188 if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then
189 AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1,
190 [Define to 1 if the OTF library has OTF_drive_gpos2().])
193 CPPFLAGS="$save_CPPFLAGS"
198 AC_SUBST(OTF_LD_FLAGS)
200 dnl Check for Freetype2 usability.
201 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
202 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
203 FREETYPE_INC=`freetype-config --cflags`
204 save_CPPFLAGS="$CPPFLAGS"
205 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
206 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
207 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
208 if test "x$HAVE_FREETYPE" = "xyes" ; then
210 LIBS="$LIBS `freetype-config --libs`"
211 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
214 if test "x$HAVE_FREETYPE" = "xyes"; then
215 FREETYPE_LD_FLAGS=`freetype-config --libs`
216 AC_DEFINE(HAVE_FREETYPE, 1,
217 [Define to 1 if you have FreeType library and header file.])
218 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
219 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
220 [#include <ft2build.h>
221 #include FT_FREETYPE_H])
222 if test "x$HAVE_FTBDF_H" = "xyes"; then
223 AC_DEFINE(HAVE_FTBDF_H, 1,
224 [Define to 1 if you have freetype/ftbdf.h.])
226 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
230 AC_SUBST(FREETYPE_LD_FLAGS)
232 dnl Check for Xft2 usability.
233 save_CPPFLAGS="$CPPFLAGS"
235 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
236 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
237 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
238 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
239 XFT2_LD_FLAGS="`xft-config --libs`"
240 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
241 if pkg-config xft ; then
242 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
243 XFT2_LD_FLAGS="`pkg-config --libs xft`"
246 LIBS="$LIBS $XFT2_LD_FLAGS"
247 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
248 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
249 [#include <X11/Xft/Xft.h>
250 #if XftVersion >= 20000
252 Version too old. Compiling this line should fail.
254 if test "x$HAVE_XFT2" = "xyes"; then
255 AC_DEFINE(HAVE_XFT2, 1,
256 [Define to 1 if you have Xft2 library and header file.])
257 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
260 CPPFLAGS="$save_CPPFLAGS"
263 AC_SUBST(XFT2_LD_FLAGS)
265 dnl Check for fontconfig usability.
266 AC_ARG_WITH(fontconfig,
267 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
268 if test "x$with_fontconfig" != "xno"; then
269 save_CPPFLAGS="$CPPFLAGS"
271 FONTCONFIG_LD_FLAGS=-lfontconfig
272 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
273 if pkg-config --exists fontconfig; then
274 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
275 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
276 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
279 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
280 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
281 if test "x$HAVE_FONTCONFIG" = "xyes"; then
282 AC_DEFINE(HAVE_FONTCONFIG, 1,
283 [Define to 1 if you have fontconfig library and header file.])
284 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
287 CPPFLAGS="$save_CPPFLAGS"
291 AC_SUBST(FONTCONFIG_LD_FLAGS)
293 dnl Check for gdlib usability.
295 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
297 if test "x$with_gd" != "xno"; then
299 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
300 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
301 if test "x$HAVE_GD" = "xyes"; then
302 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
303 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
304 [Define to 1 or 2 if you have gd library and header file.])
305 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
307 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
311 AC_SUBST(GD_LD_FLAGS)
315 dnl Check for libxml2 usability.
316 save_CPPFLAGS="$CPPFLAGS"
318 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
319 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
320 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
321 XML2_LD_FLAGS="`xml2-config --libs`"
322 LIBS="$LIBS $XML2_LD_FLAGS"
324 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
325 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
327 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
328 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
329 if test "x$HAVE_XML2" = "xyes"; then
330 AC_DEFINE(HAVE_XML2, 1,
331 [Define to 1 if you have libxml2 library and header file])
332 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
335 CPPFLAGS="$save_CPPFLAGS"
338 AC_SUBST(XML2_LD_FLAGS)
340 dnl Check for Anthy usability.
342 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
343 if test "x$HAVE_ANTHY" = "xyes"; then
344 AC_DEFINE(HAVE_ANTHY, 1,
345 [Define to 1 if you have Anthy library and header file])
346 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
347 ANTHY_LD_FLAGS="$ANTHY_LIBS"
348 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
350 AC_SUBST(ANTHY_LD_FLAGS)
352 dnl Check for Ispell usability.
353 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
354 if test "x$HAVE_ISPELL" = "xyes"; then
355 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
356 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
357 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
360 dnl Check for Thai word-segmentation library.
361 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
362 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
363 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
365 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
366 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
368 if test "x$HAVE_LIBTHAI" == "xyes"; then
370 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
371 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
372 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
373 HAVE_THAI_WORDSEG=yes
375 elif test "x$HAVE_WORDCUT" = "xyes"; then
377 save_CPPFLAGS="$CPPFLAGS"
378 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
379 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[],[HAVE_WORDCUT=no])
380 if test "x$HAVE_WORDCUT" = "xno"; then
381 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
382 if test "x$HAVE_GLIB_2_0" = "xyes"; then
383 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
384 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[HAVE_WORDCUT=yes],[])
387 if test "x$HAVE_WORDCUT" = "xyes"; then
388 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
389 AC_DEFINE(HAVE_WORDCUT, 1,
390 [Define if you have the wordcut library and header file])
391 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
392 HAVE_THAI_WORDSEG=yes
394 CPPFLAGS="$save_CPPFLAGS"
399 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
400 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
401 if test -f "/usr/share/wordcut/tdict.wcd"; then
402 tdict="/usr/share/wordcut/tdict.wcd"
403 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
404 tdict="/usr/local/share/wordcut/tdict.wcd"
407 if test "x$tdict" != "x"; then
408 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
409 [Define if you have the old version of wordcut library])
410 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
411 THAI_WORDSEG_LD_FLAGS=-lwordcut
412 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
413 HAVE_THAI_WORDSEG=yes
420 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
421 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
422 [Define if you have some Thai word-segmentation library])
424 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
426 AC_SUBST(CONFIG_FLAGS)
428 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
429 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
430 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
431 dnl CPPFLAGS here directly.
433 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
435 dnl AC_ARG_ENABLE(xom,
436 dnl [ --enable-xom build and install XOM library.],
437 dnl XOM="$enableval")
444 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
445 [Define to loadable module extention])
447 AC_CONFIG_FILES([Makefile intl/Makefile po/Makefile.in
457 dnl if test "x$XOM" = "xyes"; then
458 dnl AC_CONFIG_FILES(omM17N/Makefile)
463 echo "The m17n library is configured with these external libraries."
464 echo " $M17N_EXT_LIBS"
467 dnl comment-start: "dnl "
469 dnl comment-start-skip: "\\bdnl\\b\\s *"