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 AC_CONFIG_HEADERS([src/config.h])
36 GETTEXTDIR="$datadir/locale"
39 dnl Checks for programs for compiling.
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 AS_HELP_STRING([--with-gui],[with GUI level APIs (default is YES)]))
91 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
93 if test x$with_gui != xno; then
95 dnl Checks if dlopen exists, and if it's in libc or libdl.
97 AC_SEARCH_LIBS(dlopen, dl,
98 AC_DEFINE(HAVE_DLOPEN, 1,
99 [Define to 1 if you have the function dlopen.]))
101 dnl Check several libraries without adding -lxxx to LIBS, without
102 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
103 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
104 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
109 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
111 if test "x$no_x" != "xyes"; then
112 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
113 X11_LD_FLAGS="-lXt -lX11"
114 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
116 if test "x$HAVE_XAW" = "xyes"; then
117 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
118 [Define to 1 if you have the Xaw header files.])
119 XAW_LD_FLAGS="-lXaw -lXmu"
120 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
121 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
124 AC_SUBST(X11_LD_FLAGS)
125 AC_SUBST(XAW_LD_FLAGS)
127 dnl Check for fribidi library.
128 save_CPPFLAGS="$CPPFLAGS"
130 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
131 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
132 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
133 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
134 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
136 FRIBIDI_LD_FLAGS=-lfribidi
138 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
139 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
140 if test "x$HAVE_FRIBIDI" = "xyes"; then
141 AC_DEFINE(HAVE_FRIBIDI, 1,
142 [Define to 1 if you have Fribidi library and header file.])
143 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
145 CPPFLAGS="$save_CPPFLAGS"
149 AC_SUBST(FRIBIDI_LD_FLAGS)
151 dnl Check for otflib usability.
153 AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)]))
155 if test "x$with_libotf" != "xno"; then
156 save_CPPFLAGS="$CPPFLAGS"
158 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
159 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
160 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
161 OTF_LD_FLAGS="`libotf-config --libs`"
162 LIBS="$LIBS $OTF_LD_FLAGS"
166 ## We check the availability of OTF_check_features
167 ## because we need libotf-0.9.4 or the later.
168 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
169 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
170 if test "x$HAVE_OTF" = "xyes"; then
171 AC_DEFINE(HAVE_OTF, 1,
172 [Define to 1 if you have OTF library and header file.])
173 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
175 CPPFLAGS="$save_CPPFLAGS"
180 AC_SUBST(OTF_LD_FLAGS)
182 dnl Check for Freetype2 usability.
183 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
184 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
185 FREETYPE_INC=`freetype-config --cflags`
186 save_CPPFLAGS="$CPPFLAGS"
187 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
188 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
189 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
190 if test "x$HAVE_FREETYPE" = "xyes" ; then
192 LIBS="$LIBS `freetype-config --libs`"
193 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
196 if test "x$HAVE_FREETYPE" = "xyes"; then
197 FREETYPE_LD_FLAGS=`freetype-config --libs`
198 AC_DEFINE(HAVE_FREETYPE, 1,
199 [Define to 1 if you have FreeType library and header file.])
200 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
201 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
202 [#include <ft2build.h>
203 #include FT_FREETYPE_H])
204 if test "x$HAVE_FTBDF_H" = "xyes"; then
205 AC_DEFINE(HAVE_FTBDF_H, 1,
206 [Define to 1 if you have freetype/ftbdf.h.])
208 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
212 AC_SUBST(FREETYPE_LD_FLAGS)
214 dnl Check for Xft2 usability.
215 save_CPPFLAGS="$CPPFLAGS"
217 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
218 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
219 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
220 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
221 XFT2_LD_FLAGS="`xft-config --libs`"
222 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
223 if pkg-config xft ; then
224 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
225 XFT2_LD_FLAGS="`pkg-config --libs xft`"
228 LIBS="$LIBS $XFT2_LD_FLAGS"
229 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
230 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
231 [#include <X11/Xft/Xft.h>
232 #if XftVersion >= 20000
234 Version too old. Compiling this line should fail.
236 if test "x$HAVE_XFT2" = "xyes"; then
237 AC_DEFINE(HAVE_XFT2, 1,
238 [Define to 1 if you have Xft2 library and header file.])
239 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
242 CPPFLAGS="$save_CPPFLAGS"
245 AC_SUBST(XFT2_LD_FLAGS)
247 dnl Check for fontconfig usability.
248 AC_ARG_WITH(fontconfig,
249 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
250 if test "x$with_fontconfig" != "xno"; then
251 save_CPPFLAGS="$CPPFLAGS"
253 FONTCONFIG_LD_FLAGS=-lfontconfig
254 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
255 if pkg-config --exists fontconfig; then
256 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
257 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
258 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
261 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
262 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
263 if test "x$HAVE_FONTCONFIG" = "xyes"; then
264 AC_DEFINE(HAVE_FONTCONFIG, 1,
265 [Define to 1 if you have fontconfig library and header file.])
266 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
269 CPPFLAGS="$save_CPPFLAGS"
273 AC_SUBST(FONTCONFIG_LD_FLAGS)
275 dnl Check for gdlib usability.
277 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
279 if test "x$with_gd" != "xno"; then
281 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
282 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
283 if test "x$HAVE_GD" = "xyes"; then
284 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
285 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
286 [Define to 1 or 2 if you have gd library and header file.])
287 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
289 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
293 AC_SUBST(GD_LD_FLAGS)
297 dnl Check for libxml2 usability.
298 save_CPPFLAGS="$CPPFLAGS"
300 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
301 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
302 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
303 XML2_LD_FLAGS="`xml2-config --libs`"
304 LIBS="$LIBS $XML2_LD_FLAGS"
306 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
307 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
309 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
310 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
311 if test "x$HAVE_XML2" = "xyes"; then
312 AC_DEFINE(HAVE_XML2, 1,
313 [Define to 1 if you have libxml2 library and header file])
314 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
317 CPPFLAGS="$save_CPPFLAGS"
320 AC_SUBST(XML2_LD_FLAGS)
322 dnl Check for Anthy usability.
324 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
325 if test "x$HAVE_ANTHY" = "xyes"; then
326 AC_DEFINE(HAVE_ANTHY, 1,
327 [Define to 1 if you have Anthy library and header file])
328 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
329 ANTHY_LD_FLAGS="$ANTHY_LIBS"
330 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
332 AC_SUBST(ANTHY_LD_FLAGS)
334 dnl Check for Ispell usability.
335 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
336 if test "x$HAVE_ISPELL" = "xyes"; then
337 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
338 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
339 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
342 dnl Check for Thai word-segmentation library.
343 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
344 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
345 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
347 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
348 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
350 if test "x$HAVE_LIBTHAI" == "xyes"; then
352 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
353 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
354 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
355 HAVE_THAI_WORDSEG=yes
357 elif test "x$HAVE_WORDCUT" = "xyes"; then
359 save_CPPFLAGS="$CPPFLAGS"
360 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
361 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[],[HAVE_WORDCUT=no])
362 if test "x$HAVE_WORDCUT" = "xno"; then
363 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
364 if test "x$HAVE_GLIB_2_0" = "xyes"; then
365 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
366 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[HAVE_WORDCUT=yes],[])
369 if test "x$HAVE_WORDCUT" = "xyes"; then
370 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
371 AC_DEFINE(HAVE_WORDCUT, 1,
372 [Define if you have the wordcut library and header file])
373 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
374 HAVE_THAI_WORDSEG=yes
376 CPPFLAGS="$save_CPPFLAGS"
381 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
382 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
383 if test -f "/usr/share/wordcut/tdict.wcd"; then
384 tdict="/usr/share/wordcut/tdict.wcd"
385 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
386 tdict="/usr/local/share/wordcut/tdict.wcd"
389 if test "x$tdict" != "x"; then
390 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
391 [Define if you have the old version of wordcut library])
392 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
393 THAI_WORDSEG_LD_FLAGS=-lwordcut
394 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
395 HAVE_THAI_WORDSEG=yes
402 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
403 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
404 [Define if you have some Thai word-segmentation library])
406 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
408 AC_SUBST(CONFIG_FLAGS)
410 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
411 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
412 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
413 dnl CPPFLAGS here directly.
415 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
417 dnl AC_ARG_ENABLE(xom,
418 dnl [ --enable-xom build and install XOM library.],
419 dnl XOM="$enableval")
426 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
427 [Define to loadable module extention])
429 AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile
439 dnl if test "x$XOM" = "xyes"; then
440 dnl AC_CONFIG_FILES(omM17N/Makefile)
445 echo "The m17n library is configured with these external libraries."
446 echo " $M17N_EXT_LIBS"
449 dnl comment-start: "dnl "
451 dnl comment-start-skip: "\\bdnl\\b\\s *"