1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
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.0],[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 GETTEXTDIR="$datadir/locale"
46 dnl Checks for programs for compiling.
51 dnl Checks for X libraries.
54 dnl Checks for standard header files.
58 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
59 string.h strings.h sys/time.h unistd.h])
60 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
62 dnl Checks for typedefs, structures, and compiler characteristics.
68 dnl Checks for endian. This influence the default UTF-16 definition.
71 dnl Checks for library functions.
80 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
81 AC_CHECK_FUNCS(strchr strdup gettimeofday)
83 dnl Checks where the m17n database is installed.
85 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
86 if test "x$HAVE_M17N_DB" = "xyes"; then
89 M17NDIR="${datadir}/m17n"
93 dnl Checks which levels of APIs should be compiled.
96 AS_HELP_STRING([--with-gui],[with GUI level APIs (default is YES)]))
98 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
100 if test x$with_gui != xno; then
102 dnl Checks if dlopen exists, and if it's in libc or libdl.
104 AC_SEARCH_LIBS(dlopen, dl,
105 AC_DEFINE(HAVE_DLOPEN, 1,
106 [Define to 1 if you have the function dlopen.]))
108 dnl Check several libraries without adding -lxxx to LIBS, without
109 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
110 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
111 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
116 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
118 if test "x$no_x" != "xyes"; then
119 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
120 X11_LD_FLAGS="-lXt -lX11"
121 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
123 if test "x$HAVE_XAW" = "xyes"; then
124 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
125 [Define to 1 if you have the Xaw header files.])
126 XAW_LD_FLAGS="-lXaw -lXmu"
127 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
128 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
131 AC_SUBST(X11_LD_FLAGS)
132 AC_SUBST(XAW_LD_FLAGS)
134 dnl Check for fribidi library.
135 save_CPPFLAGS="$CPPFLAGS"
137 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
138 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
139 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
140 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
141 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
143 FRIBIDI_LD_FLAGS=-lfribidi
145 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
146 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
147 if test "x$HAVE_FRIBIDI" = "xyes"; then
148 AC_DEFINE(HAVE_FRIBIDI, 1,
149 [Define to 1 if you have Fribidi library and header file.])
150 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
152 CPPFLAGS="$save_CPPFLAGS"
156 AC_SUBST(FRIBIDI_LD_FLAGS)
158 dnl Check for otflib usability.
160 AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)]))
162 if test "x$with_libotf" != "xno"; then
163 save_CPPFLAGS="$CPPFLAGS"
165 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
166 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
167 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
168 OTF_LD_FLAGS="`libotf-config --libs`"
169 LIBS="$LIBS $OTF_LD_FLAGS"
173 ## We check the availability of OTF_check_features
174 ## because we need libotf-0.9.4 or the later.
175 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
176 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
177 if test "x$HAVE_OTF" = "xyes"; then
178 AC_DEFINE(HAVE_OTF, 1,
179 [Define to 1 if you have OTF library and header file.])
180 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
181 AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes,
182 HAVE_OTF_DRIVE_GPOS2=no)
183 if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then
184 AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1,
185 [Define to 1 if the OTF library has OTF_drive_gpos2().])
188 CPPFLAGS="$save_CPPFLAGS"
193 AC_SUBST(OTF_LD_FLAGS)
195 dnl Check for Freetype2 usability.
196 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
197 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
198 FREETYPE_INC=`freetype-config --cflags`
199 save_CPPFLAGS="$CPPFLAGS"
200 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
201 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
202 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
203 if test "x$HAVE_FREETYPE" = "xyes" ; then
205 LIBS="$LIBS `freetype-config --libs`"
206 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
209 if test "x$HAVE_FREETYPE" = "xyes"; then
210 FREETYPE_LD_FLAGS=`freetype-config --libs`
211 AC_DEFINE(HAVE_FREETYPE, 1,
212 [Define to 1 if you have FreeType library and header file.])
213 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
214 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
215 [#include <ft2build.h>
216 #include FT_FREETYPE_H])
217 if test "x$HAVE_FTBDF_H" = "xyes"; then
218 AC_DEFINE(HAVE_FTBDF_H, 1,
219 [Define to 1 if you have freetype/ftbdf.h.])
221 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
225 AC_SUBST(FREETYPE_LD_FLAGS)
227 dnl Check for Xft2 usability.
228 save_CPPFLAGS="$CPPFLAGS"
230 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
231 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
232 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
233 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
234 XFT2_LD_FLAGS="`xft-config --libs`"
235 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
236 if pkg-config xft ; then
237 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
238 XFT2_LD_FLAGS="`pkg-config --libs xft`"
241 LIBS="$LIBS $XFT2_LD_FLAGS"
242 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
243 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
244 [#include <X11/Xft/Xft.h>
245 #if XftVersion >= 20000
247 Version too old. Compiling this line should fail.
249 if test "x$HAVE_XFT2" = "xyes"; then
250 AC_DEFINE(HAVE_XFT2, 1,
251 [Define to 1 if you have Xft2 library and header file.])
252 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
255 CPPFLAGS="$save_CPPFLAGS"
258 AC_SUBST(XFT2_LD_FLAGS)
260 dnl Check for fontconfig usability.
261 AC_ARG_WITH(fontconfig,
262 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
263 if test "x$with_fontconfig" != "xno"; then
264 save_CPPFLAGS="$CPPFLAGS"
266 FONTCONFIG_LD_FLAGS=-lfontconfig
267 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
268 if pkg-config --exists fontconfig; then
269 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
270 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
271 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
274 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
275 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
276 if test "x$HAVE_FONTCONFIG" = "xyes"; then
277 AC_DEFINE(HAVE_FONTCONFIG, 1,
278 [Define to 1 if you have fontconfig library and header file.])
279 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
282 CPPFLAGS="$save_CPPFLAGS"
286 AC_SUBST(FONTCONFIG_LD_FLAGS)
288 dnl Check for gdlib usability.
290 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
292 if test "x$with_gd" != "xno"; then
294 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
295 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
296 if test "x$HAVE_GD" = "xyes"; then
297 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
298 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
299 [Define to 1 or 2 if you have gd library and header file.])
300 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
302 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
306 AC_SUBST(GD_LD_FLAGS)
310 dnl Check for libxml2 usability.
311 save_CPPFLAGS="$CPPFLAGS"
313 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
314 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
315 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
316 XML2_LD_FLAGS="`xml2-config --libs`"
317 LIBS="$LIBS $XML2_LD_FLAGS"
319 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
320 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
322 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
323 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
324 if test "x$HAVE_XML2" = "xyes"; then
325 AC_DEFINE(HAVE_XML2, 1,
326 [Define to 1 if you have libxml2 library and header file])
327 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
330 CPPFLAGS="$save_CPPFLAGS"
333 AC_SUBST(XML2_LD_FLAGS)
335 dnl Check for Anthy usability.
337 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
338 if test "x$HAVE_ANTHY" = "xyes"; then
339 AC_DEFINE(HAVE_ANTHY, 1,
340 [Define to 1 if you have Anthy library and header file])
341 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
342 ANTHY_LD_FLAGS="$ANTHY_LIBS"
343 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
345 AC_SUBST(ANTHY_LD_FLAGS)
347 dnl Check for Ispell usability.
348 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
349 if test "x$HAVE_ISPELL" = "xyes"; then
350 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
351 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
352 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
355 dnl Check for Thai word-segmentation library.
356 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
357 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
358 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
360 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
361 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
363 if test "x$HAVE_LIBTHAI" == "xyes"; then
365 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
366 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
367 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
368 HAVE_THAI_WORDSEG=yes
370 elif test "x$HAVE_WORDCUT" = "xyes"; then
372 save_CPPFLAGS="$CPPFLAGS"
373 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
374 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[],[HAVE_WORDCUT=no])
375 if test "x$HAVE_WORDCUT" = "xno"; then
376 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
377 if test "x$HAVE_GLIB_2_0" = "xyes"; then
378 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
379 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[HAVE_WORDCUT=yes],[])
382 if test "x$HAVE_WORDCUT" = "xyes"; then
383 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
384 AC_DEFINE(HAVE_WORDCUT, 1,
385 [Define if you have the wordcut library and header file])
386 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
387 HAVE_THAI_WORDSEG=yes
389 CPPFLAGS="$save_CPPFLAGS"
394 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
395 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
396 if test -f "/usr/share/wordcut/tdict.wcd"; then
397 tdict="/usr/share/wordcut/tdict.wcd"
398 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
399 tdict="/usr/local/share/wordcut/tdict.wcd"
402 if test "x$tdict" != "x"; then
403 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
404 [Define if you have the old version of wordcut library])
405 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
406 THAI_WORDSEG_LD_FLAGS=-lwordcut
407 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
408 HAVE_THAI_WORDSEG=yes
415 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
416 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
417 [Define if you have some Thai word-segmentation library])
419 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
421 AC_SUBST(CONFIG_FLAGS)
423 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
424 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
425 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
426 dnl CPPFLAGS here directly.
428 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
430 dnl AC_ARG_ENABLE(xom,
431 dnl [ --enable-xom build and install XOM library.],
432 dnl XOM="$enableval")
439 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
440 [Define to loadable module extention])
442 AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile
452 dnl if test "x$XOM" = "xyes"; then
453 dnl AC_CONFIG_FILES(omM17N/Makefile)
458 echo "The m17n library is configured with these external libraries."
459 echo " $M17N_EXT_LIBS"
462 dnl comment-start: "dnl "
464 dnl comment-start-skip: "\\bdnl\\b\\s *"