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.2],[m17n-lib-bug@m17n.org])
27 AC_CONFIG_MACRO_DIR([m4])
29 AC_CONFIG_HEADERS([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)
172 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
173 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
174 OTF_LD_FLAGS="`libotf-config --libs`"
175 LIBS="$LIBS $OTF_LD_FLAGS"
176 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
177 if pkg-config libotf ; then
178 CPPFLAGS="$CPPFLAGS `pkg-config --cflags libotf`"
179 OTF_LD_FLAGS="`pkg-config --libs libotf`"
182 ## We check the availability of OTF_check_features
183 ## because we need libotf-0.9.4 or the later.
184 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
185 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
186 if test "x$HAVE_OTF" = "xyes"; then
187 AC_DEFINE(HAVE_OTF, 1,
188 [Define to 1 if you have OTF library and header file.])
189 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
190 AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes,
191 HAVE_OTF_DRIVE_GPOS2=no)
192 if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then
193 AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1,
194 [Define to 1 if the OTF library has OTF_drive_gpos2().])
197 CPPFLAGS="$save_CPPFLAGS"
202 AC_SUBST(OTF_LD_FLAGS)
204 dnl Check for Freetype2 usability.
205 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
206 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
207 FREETYPE_INC=`freetype-config --cflags`
208 save_CPPFLAGS="$CPPFLAGS"
209 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
210 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
211 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
212 if test "x$HAVE_FREETYPE" = "xyes" ; then
214 LIBS="$LIBS `freetype-config --libs`"
215 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
218 if test "x$HAVE_FREETYPE" = "xyes"; then
219 FREETYPE_LD_FLAGS=`freetype-config --libs`
220 AC_DEFINE(HAVE_FREETYPE, 1,
221 [Define to 1 if you have FreeType library and header file.])
222 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
223 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
224 [#include <ft2build.h>
225 #include FT_FREETYPE_H])
226 if test "x$HAVE_FTBDF_H" = "xyes"; then
227 AC_DEFINE(HAVE_FTBDF_H, 1,
228 [Define to 1 if you have freetype/ftbdf.h.])
230 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
234 AC_SUBST(FREETYPE_LD_FLAGS)
236 dnl Check for Xft2 usability.
237 save_CPPFLAGS="$CPPFLAGS"
239 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
240 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
241 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
242 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
243 XFT2_LD_FLAGS="`xft-config --libs`"
244 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
245 if pkg-config xft ; then
246 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
247 XFT2_LD_FLAGS="`pkg-config --libs xft`"
250 LIBS="$LIBS $XFT2_LD_FLAGS"
251 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
252 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
253 [#include <X11/Xft/Xft.h>
254 #if XftVersion >= 20000
256 Version too old. Compiling this line should fail.
258 if test "x$HAVE_XFT2" = "xyes"; then
259 AC_DEFINE(HAVE_XFT2, 1,
260 [Define to 1 if you have Xft2 library and header file.])
261 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
264 CPPFLAGS="$save_CPPFLAGS"
267 AC_SUBST(XFT2_LD_FLAGS)
269 dnl Check for fontconfig usability.
270 AC_ARG_WITH(fontconfig,
271 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
272 if test "x$with_fontconfig" != "xno"; then
273 save_CPPFLAGS="$CPPFLAGS"
275 FONTCONFIG_LD_FLAGS=-lfontconfig
276 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
277 if pkg-config --exists fontconfig; then
278 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
279 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
280 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
283 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
284 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
285 if test "x$HAVE_FONTCONFIG" = "xyes"; then
286 AC_DEFINE(HAVE_FONTCONFIG, 1,
287 [Define to 1 if you have fontconfig library and header file.])
288 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
291 CPPFLAGS="$save_CPPFLAGS"
295 AC_SUBST(FONTCONFIG_LD_FLAGS)
297 dnl Check for gdlib usability.
299 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
301 if test "x$with_gd" != "xno"; then
303 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
304 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
305 if test "x$HAVE_GD" = "xyes"; then
306 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
307 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
308 [Define to 1 or 2 if you have gd library and header file.])
309 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
311 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
315 AC_SUBST(GD_LD_FLAGS)
319 dnl Check for libxml2 usability.
320 save_CPPFLAGS="$CPPFLAGS"
322 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
323 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
324 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
325 XML2_LD_FLAGS="`xml2-config --libs`"
326 LIBS="$LIBS $XML2_LD_FLAGS"
328 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
329 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
331 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
332 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
333 if test "x$HAVE_XML2" = "xyes"; then
334 AC_DEFINE(HAVE_XML2, 1,
335 [Define to 1 if you have libxml2 library and header file])
336 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
339 CPPFLAGS="$save_CPPFLAGS"
342 AC_SUBST(XML2_LD_FLAGS)
344 dnl Check for Anthy usability.
346 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
347 if test "x$HAVE_ANTHY" = "xyes"; then
348 AC_DEFINE(HAVE_ANTHY, 1,
349 [Define to 1 if you have Anthy library and header file])
350 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
351 ANTHY_LD_FLAGS="$ANTHY_LIBS"
352 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
354 AC_SUBST(ANTHY_LD_FLAGS)
356 dnl Check for Ispell usability.
357 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
358 if test "x$HAVE_ISPELL" = "xyes"; then
359 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
360 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
361 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
364 dnl Check for Thai word-segmentation library.
365 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
366 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
367 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
369 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
370 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
372 if test "x$HAVE_LIBTHAI" == "xyes"; then
374 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
375 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
376 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
377 HAVE_THAI_WORDSEG=yes
379 elif test "x$HAVE_WORDCUT" = "xyes"; then
381 save_CPPFLAGS="$CPPFLAGS"
382 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
383 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[],[HAVE_WORDCUT=no])
384 if test "x$HAVE_WORDCUT" = "xno"; then
385 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
386 if test "x$HAVE_GLIB_2_0" = "xyes"; then
387 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
388 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[HAVE_WORDCUT=yes],[])
391 if test "x$HAVE_WORDCUT" = "xyes"; then
392 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
393 AC_DEFINE(HAVE_WORDCUT, 1,
394 [Define if you have the wordcut library and header file])
395 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
396 HAVE_THAI_WORDSEG=yes
398 CPPFLAGS="$save_CPPFLAGS"
403 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
404 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
405 if test -f "/usr/share/wordcut/tdict.wcd"; then
406 tdict="/usr/share/wordcut/tdict.wcd"
407 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
408 tdict="/usr/local/share/wordcut/tdict.wcd"
411 if test "x$tdict" != "x"; then
412 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
413 [Define if you have the old version of wordcut library])
414 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
415 THAI_WORDSEG_LD_FLAGS=-lwordcut
416 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
417 HAVE_THAI_WORDSEG=yes
424 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
425 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
426 [Define if you have some Thai word-segmentation library])
428 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
430 AC_SUBST(CONFIG_FLAGS)
432 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
433 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
434 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
435 dnl CPPFLAGS here directly.
437 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
439 dnl AC_ARG_ENABLE(xom,
440 dnl [ --enable-xom build and install XOM library.],
441 dnl XOM="$enableval")
448 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
449 [Define to loadable module extention])
451 AC_CONFIG_FILES([Makefile intl/Makefile po/Makefile.in
461 dnl if test "x$XOM" = "xyes"; then
462 dnl AC_CONFIG_FILES(omM17N/Makefile)
467 echo "The m17n library is configured with these external libraries."
468 echo " $M17N_EXT_LIBS"
471 dnl comment-start: "dnl "
473 dnl comment-start-skip: "\\bdnl\\b\\s *"