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.5.5, m17n-lib-bug@m17n.org)
27 AC_CONFIG_MACRO_DIR([m4])
29 AM_CONFIG_HEADER(src/config.h)
36 GETTEXTDIR="$datadir/locale"
39 dnl Checks for programs for compiling.
42 AC_LIBLTDL_CONVENIENCE
45 dnl Checks for X libraries.
48 dnl Checks for standard header files.
52 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
53 string.h strings.h sys/time.h unistd.h])
54 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
56 dnl Checks for typedefs, structures, and compiler characteristics.
62 dnl Checks for endian. This influence the default UTF-16 definition.
65 dnl Checks for library functions.
74 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
75 AC_CHECK_FUNCS(strchr strdup gettimeofday)
77 dnl Checks where the m17n database is installed.
79 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
80 if test "x$HAVE_M17N_DB" = "xyes"; then
83 M17NDIR="${datadir}/m17n"
87 dnl Checks which levels of APIs should be compiled.
90 AC_HELP_STRING([--with-gui],
91 [with GUI level APIs (default is YES)]))
93 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
95 if test x$with_gui != xno; then
97 dnl Checks if dlopen exists, and if it's in libc or libdl.
99 AC_SEARCH_LIBS(dlopen, dl,
100 AC_DEFINE(HAVE_DLOPEN, 1,
101 [Define to 1 if you have the function dlopen.]))
103 dnl Check several libraries without adding -lxxx to LIBS, without
104 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
105 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
106 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
111 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
113 if test "x$no_x" != "xyes"; then
114 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
115 X11_LD_FLAGS="-lXt -lX11"
116 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
118 if test "x$HAVE_XAW" = "xyes"; then
119 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
120 [Define to 1 if you have the Xaw header files.])
121 XAW_LD_FLAGS="-lXaw -lXmu"
122 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
123 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
126 AC_SUBST(X11_LD_FLAGS)
127 AC_SUBST(XAW_LD_FLAGS)
129 dnl Check for fribidi library.
130 save_CPPFLAGS="$CPPFLAGS"
132 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
133 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
134 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
135 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
136 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
138 FRIBIDI_LD_FLAGS=-lfribidi
140 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
141 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
142 if test "x$HAVE_FRIBIDI" = "xyes"; then
143 AC_DEFINE(HAVE_FRIBIDI, 1,
144 [Define to 1 if you have Fribidi library and header file.])
145 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
147 CPPFLAGS="$save_CPPFLAGS"
151 AC_SUBST(FRIBIDI_LD_FLAGS)
153 dnl Check for otflib usability.
155 AC_HELP_STRING([--with-libotf],
156 [with OpenType font suport (default is YES)]))
158 if test "x$with_libotf" != "xno"; then
159 save_CPPFLAGS="$CPPFLAGS"
161 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
162 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
163 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
164 OTF_LD_FLAGS="`libotf-config --libs`"
165 LIBS="$LIBS $OTF_LD_FLAGS"
169 ## We check the availability of OTF_check_features
170 ## because we need libotf-0.9.4 or the later.
171 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
172 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
173 if test "x$HAVE_OTF" = "xyes"; then
174 AC_DEFINE(HAVE_OTF, 1,
175 [Define to 1 if you have OTF library and header file.])
176 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
178 CPPFLAGS="$save_CPPFLAGS"
183 AC_SUBST(OTF_LD_FLAGS)
185 dnl Check for Freetype2 usability.
186 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
187 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
188 FREETYPE_INC=`freetype-config --cflags`
189 save_CPPFLAGS="$CPPFLAGS"
190 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
191 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
192 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
193 if test "x$HAVE_FREETYPE" = "xyes" ; then
195 LIBS="$LIBS `freetype-config --libs`"
196 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
199 if test "x$HAVE_FREETYPE" = "xyes"; then
200 FREETYPE_LD_FLAGS=`freetype-config --libs`
201 AC_DEFINE(HAVE_FREETYPE, 1,
202 [Define to 1 if you have FreeType library and header file.])
203 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
204 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
205 [#include <ft2build.h>
206 #include FT_FREETYPE_H])
207 if test "x$HAVE_FTBDF_H" = "xyes"; then
208 AC_DEFINE(HAVE_FTBDF_H, 1,
209 [Define to 1 if you have freetype/ftbdf.h.])
211 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
215 AC_SUBST(FREETYPE_LD_FLAGS)
217 dnl Check for Xft2 usability.
218 save_CPPFLAGS="$CPPFLAGS"
220 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
221 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
222 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
223 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
224 XFT2_LD_FLAGS="`xft-config --libs`"
225 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
226 if pkg-config xft ; then
227 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
228 XFT2_LD_FLAGS="`pkg-config --libs xft`"
231 LIBS="$LIBS $XFT2_LD_FLAGS"
232 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
233 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
234 [#include <X11/Xft/Xft.h>
235 #if XftVersion >= 20000
237 Version too old. Compiling this line should fail.
239 if test "x$HAVE_XFT2" = "xyes"; then
240 AC_DEFINE(HAVE_XFT2, 1,
241 [Define to 1 if you have Xft2 library and header file.])
242 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
245 CPPFLAGS="$save_CPPFLAGS"
248 AC_SUBST(XFT2_LD_FLAGS)
250 dnl Check for fontconfig usability.
251 AC_ARG_WITH(fontconfig,
252 AC_HELP_STRING([--with-fontconfig],
253 [with FontConfig library (default is YES)]))
254 if test "x$with_fontconfig" != "xno"; then
255 save_CPPFLAGS="$CPPFLAGS"
257 FONTCONFIG_LD_FLAGS=-lfontconfig
258 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
259 if pkg-config --exists fontconfig; then
260 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
261 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
262 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
265 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
266 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
267 if test "x$HAVE_FONTCONFIG" = "xyes"; then
268 AC_DEFINE(HAVE_FONTCONFIG, 1,
269 [Define to 1 if you have fontconfig library and header file.])
270 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
273 CPPFLAGS="$save_CPPFLAGS"
277 AC_SUBST(FONTCONFIG_LD_FLAGS)
279 dnl Check for gdlib usability.
281 AC_HELP_STRING([--with-gd],
282 [suport graphic device by GD library (default is YES)]))
284 if test "x$with_gd" != "xno"; then
286 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
287 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
288 if test "x$HAVE_GD" = "xyes"; then
289 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
290 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
291 [Define to 1 or 2 if you have gd library and header file.])
292 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
294 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
298 AC_SUBST(GD_LD_FLAGS)
302 dnl Check for libxml2 usability.
303 save_CPPFLAGS="$CPPFLAGS"
305 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
306 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
307 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
308 XML2_LD_FLAGS="`xml2-config --libs`"
309 LIBS="$LIBS $XML2_LD_FLAGS"
311 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
312 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
314 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
315 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
316 if test "x$HAVE_XML2" = "xyes"; then
317 AC_DEFINE(HAVE_XML2, 1,
318 [Define to 1 if you have libxml2 library and header file])
319 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
322 CPPFLAGS="$save_CPPFLAGS"
325 AC_SUBST(XML2_LD_FLAGS)
327 dnl Check for Anthy usability.
329 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
330 if test "x$HAVE_ANTHY" = "xyes"; then
331 AC_DEFINE(HAVE_ANTHY, 1,
332 [Define to 1 if you have Anthy library and header file])
333 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
334 ANTHY_LD_FLAGS="$ANTHY_LIBS"
335 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
337 AC_SUBST(ANTHY_LD_FLAGS)
339 dnl Check for Ispell usability.
340 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
341 if test "x$HAVE_ISPELL" = "xyes"; then
342 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
343 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
344 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
347 dnl Check for Thai word-segmentation library.
348 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
349 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
350 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
352 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
353 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
355 if test "x$HAVE_LIBTHAI" == "xyes"; then
357 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
358 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
359 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
360 HAVE_THAI_WORDSEG=yes
362 elif test "x$HAVE_WORDCUT" = "xyes"; then
364 save_CPPFLAGS="$CPPFLAGS"
365 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
366 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
367 if test "x$HAVE_WORDCUT" = "xno"; then
368 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
369 if test "x$HAVE_GLIB_2_0" = "xyes"; then
370 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
371 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
374 if test "x$HAVE_WORDCUT" = "xyes"; then
375 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
376 AC_DEFINE(HAVE_WORDCUT, 1,
377 [Define if you have the wordcut library and header file])
378 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
379 HAVE_THAI_WORDSEG=yes
381 CPPFLAGS="$save_CPPFLAGS"
386 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
387 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
388 if test -f "/usr/share/wordcut/tdict.wcd"; then
389 tdict="/usr/share/wordcut/tdict.wcd"
390 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
391 tdict="/usr/local/share/wordcut/tdict.wcd"
394 if test "x$tdict" != "x"; then
395 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
396 [Define if you have the old version of wordcut library])
397 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
398 THAI_WORDSEG_LD_FLAGS=-lwordcut
399 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
400 HAVE_THAI_WORDSEG=yes
407 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
408 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
409 [Define if you have some Thai word-segmentation library])
411 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
413 AC_SUBST(CONFIG_FLAGS)
415 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
416 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
417 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
418 dnl CPPFLAGS here directly.
420 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
422 dnl AC_ARG_ENABLE(xom,
423 dnl [ --enable-xom build and install XOM library.],
424 dnl XOM="$enableval")
431 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
432 [Define to loadable module extention])
434 AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile
444 dnl if test "x$XOM" = "xyes"; then
445 dnl AC_CONFIG_FILES(omM17N/Makefile)
450 echo "The m17n library is configured with these external libraries."
451 echo " $M17N_EXT_LIBS"
454 dnl comment-start: "dnl "
456 dnl comment-start-skip: "\\bdnl\\b\\s *"