1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006
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., 59 Temple Place, Suite 330, Boston, MA
24 dnl Process this file with autoconf to produce a configure script.
26 AC_INIT(m17n-lib, 1.3.4, m17n-lib-bug@m17n.org)
28 AM_CONFIG_HEADER(src/config.h)
34 dnl Checks for programs for compiling.
37 AC_LIBLTDL_CONVENIENCE
40 dnl Checks for X libraries.
43 dnl Checks for standard header files.
47 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
48 string.h strings.h sys/time.h unistd.h])
49 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
51 dnl Checks for typedefs, structures, and compiler characteristics.
57 dnl Checks for endian. This influence the default UTF-16 definition.
60 dnl Checks for library functions.
69 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
70 AC_CHECK_FUNCS(strchr strdup gettimeofday)
72 dnl Checks where the m17n database is installed.
74 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
75 if test "x$HAVE_M17N_DB" = "xyes"; then
78 M17NDIR="${datadir}/m17n"
82 dnl Checks which levels of APIs should be compiled.
85 AC_HELP_STRING([--with-gui],
86 [with GUI level APIs (default is YES)]))
88 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
90 if test x$with_gui != xno; then
92 dnl Checks if dlopen exists, and if it's in libc or libdl.
94 AC_SEARCH_LIBS(dlopen, dl,
95 AC_DEFINE(HAVE_DLOPEN, 1,
96 [Define to 1 if you have the function dlopen.]))
98 dnl Check several libraries without adding -lxxx to LIBS, without
99 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
100 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
101 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
106 if test "x$no_x" != "xyes"; then
107 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
108 X11_LD_FLAGS="-lXt -lX11"
109 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
111 if test "x$HAVE_XAW" = "xyes"; then
112 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
113 [Define to 1 if you have the Xaw header files.])
114 XAW_LD_FLAGS="-lXaw -lXmu"
115 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
116 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
119 AC_SUBST(X11_LD_FLAGS)
120 AC_SUBST(XAW_LD_FLAGS)
122 dnl Check for fribidi library.
123 save_CPPFLAGS="$CPPFLAGS"
125 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
126 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
127 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
128 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
129 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
131 FRIBIDI_LD_FLAGS=-lfribidi
133 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
134 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
135 if test "x$HAVE_FRIBIDI" = "xyes"; then
136 AC_DEFINE(HAVE_FRIBIDI, 1,
137 [Define to 1 if you have Fribidi library and header file.])
138 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
140 CPPFLAGS="$save_CPPFLAGS"
144 AC_SUBST(FRIBIDI_LD_FLAGS)
146 dnl Check for otflib usability.
148 AC_HELP_STRING([--with-libotf],
149 [with OpenType font suport (default is YES)]))
151 if test "x$with_libotf" != "xno"; then
152 save_CPPFLAGS="$CPPFLAGS"
154 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
155 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
156 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
157 OTF_LD_FLAGS="`libotf-config --libs`"
158 LIBS="$LIBS $OTF_LD_FLAGS"
162 ## We check the availability of OTF_check_features
163 ## because we need libotf-0.9.4 or the later.
164 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
165 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
166 if test "x$HAVE_OTF" = "xyes"; then
167 AC_DEFINE(HAVE_OTF, 1,
168 [Define to 1 if you have OTF library and header file.])
169 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
171 CPPFLAGS="$save_CPPFLAGS"
176 AC_SUBST(OTF_LD_FLAGS)
178 dnl Check for Freetype2 usability.
179 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
180 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
181 FREETYPE_INC=`freetype-config --cflags`
182 save_CPPFLAGS="$CPPFLAGS"
183 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
184 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
185 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
186 if test "x$HAVE_FREETYPE" = "xyes" ; then
188 LIBS="$LIBS `freetype-config --libs`"
189 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
192 if test "x$HAVE_FREETYPE" = "xyes"; then
193 FREETYPE_LD_FLAGS=`freetype-config --libs`
194 AC_DEFINE(HAVE_FREETYPE, 1,
195 [Define to 1 if you have FreeType library and header file.])
196 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
197 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
198 [#include <ft2build.h>
199 #include FT_FREETYPE_H])
200 if test "x$HAVE_FTBDF_H" = "xyes"; then
201 AC_DEFINE(HAVE_FTBDF_H, 1,
202 [Define to 1 if you have freetype/ftbdf.h.])
204 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
208 AC_SUBST(FREETYPE_LD_FLAGS)
210 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
212 dnl Check for Xft2 usability.
213 save_CPPFLAGS="$CPPFLAGS"
215 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
216 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
217 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
218 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
219 XFT2_LD_FLAGS="`xft-config --libs`"
220 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
221 if pkg-config xft ; then
222 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
223 XFT2_LD_FLAGS="`pkg-config --libs xft`"
226 LIBS="$LIBS $XFT2_LD_FLAGS"
227 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
228 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
229 [#include <X11/Xft/Xft.h>
230 #if XftVersion >= 20000
232 Version too old. Compiling this line should fail.
234 if test "x$HAVE_XFT2" = "xyes"; then
235 AC_DEFINE(HAVE_XFT2, 1,
236 [Define to 1 if you have Xft2 library and header file.])
237 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
240 CPPFLAGS="$save_CPPFLAGS"
243 AC_SUBST(XFT2_LD_FLAGS)
245 dnl Check for fontconfig usability.
246 AC_ARG_WITH(fontconfig,
247 AC_HELP_STRING([--with-fontconfig],
248 [with FontConfig library (default is YES)]))
249 if test "x$with_fontconfig" != "xno"; then
250 save_CPPFLAGS="$CPPFLAGS"
252 FONTCONFIG_LD_FLAGS=-lfontconfig
253 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
254 if pkg-config --exists fontconfig; then
255 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
256 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
257 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
260 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
261 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
262 if test "x$HAVE_FONTCONFIG" = "xyes"; then
263 AC_DEFINE(HAVE_FONTCONFIG, 1,
264 [Define to 1 if you have fontconfig library and header file.])
265 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
268 CPPFLAGS="$save_CPPFLAGS"
272 AC_SUBST(FONTCONFIG_LD_FLAGS)
274 dnl Check for gdlib usability.
276 AC_HELP_STRING([--with-gd],
277 [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.
323 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
324 if test "x$HAVE_ANTHY" = "xyes"; then
325 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
326 if test "x$HAVE_ANTHY" = "xyes"; then
327 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
328 if test "x$HAVE_ANTHY" = "xyes"; then
329 AC_DEFINE(HAVE_ANTHY, 1,
330 [Define to 1 if you have Anthy library and header file])
331 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
332 ANTHY_LD_FLAGS="-lanthy -lanthydic"
333 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
443 dnl if test "x$XOM" = "xyes"; then
444 dnl AC_CONFIG_FILES(omM17N/Makefile)
449 echo "The m17n library is configured with these external libraries."
450 echo " $M17N_EXT_LIBS"
453 dnl comment-start: "dnl "
455 dnl comment-start-skip: "\\bdnl\\b\\s *"