1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005
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.0, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.3.0)
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 funciton 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 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
163 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
164 CPPFLAGS="$save_CPPFLAGS"
165 if test "x$HAVE_OTF" = "xyes"; then
166 AC_DEFINE(HAVE_OTF, 1,
167 [Define to 1 if you have OTF library and header file.])
168 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
170 CPPFLAGS="$save_CPPFLAGS"
175 AC_SUBST(OTF_LD_FLAGS)
177 dnl Check for Freetype2 usability.
178 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
179 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
180 FREETYPE_INC=`freetype-config --cflags`
181 save_CPPFLAGS="$CPPFLAGS"
182 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
183 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
184 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
185 if test "x$HAVE_FREETYPE" = "xyes" ; then
187 LIBS="$LIBS `freetype-config --libs`"
188 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
191 if test "x$HAVE_FREETYPE" = "xyes"; then
192 FREETYPE_LD_FLAGS=`freetype-config --libs`
193 AC_DEFINE(HAVE_FREETYPE, 1,
194 [Define to 1 if you have FreeType library and header file.])
195 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
196 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
197 [#include <ft2build.h>
198 #include FT_FREETYPE_H])
199 if test "x$HAVE_FTBDF_H" = "xyes"; then
200 AC_DEFINE(HAVE_FTBDF_H, 1,
201 [Define to 1 if you have freetype/ftbdf.h.])
203 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
207 AC_SUBST(FREETYPE_LD_FLAGS)
209 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
211 dnl Check for Xft2 usability.
212 save_CPPFLAGS="$CPPFLAGS"
214 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
215 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
216 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
217 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
218 XFT2_LD_FLAGS="`xft-config --libs`"
219 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
220 if pkg-config xft ; then
221 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
222 XFT2_LD_FLAGS="`pkg-config --libs xft`"
225 LIBS="$LIBS $XFT2_LD_FLAGS"
226 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
227 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
228 [#include <X11/Xft/Xft.h>
229 #if XftVersion >= 20000
231 Version too old. Compiling this line should fail.
233 if test "x$HAVE_XFT2" = "xyes"; then
234 AC_DEFINE(HAVE_XFT2, 1,
235 [Define to 1 if you have Xft2 library and header file.])
236 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
239 CPPFLAGS="$save_CPPFLAGS"
242 AC_SUBST(XFT2_LD_FLAGS)
244 dnl Check for fontconfig usability.
245 save_CPPFLAGS="$CPPFLAGS"
247 FONTCONFIG_LD_FLAGS=-lfontconfig
248 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
249 if pkg-config --exists fontconfig; then
250 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
251 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
252 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
255 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
256 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
257 if test "x$HAVE_FONTCONFIG" = "xyes"; then
258 AC_DEFINE(HAVE_FONTCONFIG, 1,
259 [Define to 1 if you have fontconfig library and header file.])
260 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
263 CPPFLAGS="$save_CPPFLAGS"
266 AC_SUBST(FONTCONFIG_LD_FLAGS)
268 dnl Check for gdlib usability.
270 AC_HELP_STRING([--with-gd],
271 [suport graphic device by GD library (default is YES)]))
273 if test "x$with_gd" != "xno"; then
275 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
276 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
277 if test "x$HAVE_GD" = "xyes"; then
278 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
279 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
280 [Define to 1 or 2 if you have gd library and header file.])
281 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
283 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD"
287 AC_SUBST(GD_LD_FLAGS)
291 dnl Check for libxml2 usability.
292 save_CPPFLAGS="$CPPFLAGS"
294 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
295 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
296 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
297 XML2_LD_FLAGS="`xml2-config --libs`"
298 LIBS="$LIBS $XML2_LD_FLAGS"
300 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
301 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
303 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
304 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
305 if test "x$HAVE_XML2" = "xyes"; then
306 AC_DEFINE(HAVE_XML2, 1,
307 [Define to 1 if you have libxml2 library and header file])
308 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
311 CPPFLAGS="$save_CPPFLAGS"
314 AC_SUBST(XML2_LD_FLAGS)
316 dnl Check for Anthy usability.
317 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
318 if test "x$HAVE_ANTHY" = "xyes"; then
319 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
320 if test "x$HAVE_ANTHY" = "xyes"; then
321 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
322 if test "x$HAVE_ANTHY" = "xyes"; then
323 AC_DEFINE(HAVE_ANTHY, 1,
324 [Define to 1 if you have Anthy library and header file])
325 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
326 ANTHY_LD_FLAGS="-lanthy -lanthydic"
327 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
331 AC_SUBST(ANTHY_LD_FLAGS)
333 dnl Check for Ispell usability.
334 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
335 if test "x$HAVE_ISPELL" = "xyes"; then
336 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
337 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
338 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
341 dnl Check for Thai word-segmentation library.
342 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
343 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
344 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
346 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
347 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
349 if test "x$HAVE_LIBTHAI" == "xyes"; then
351 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
352 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
353 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
354 HAVE_THAI_WORDSEG=yes
356 elif test "x$HAVE_WORDCUT" = "xyes"; then
358 save_CPPFLAGS="$CPPFLAGS"
359 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
360 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
361 if test "x$HAVE_WORDCUT" = "xno"; then
362 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
363 if test "x$HAVE_GLIB_2_0" = "xyes"; then
364 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
365 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
368 if test "x$HAVE_WORDCUT" = "xyes"; then
369 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
370 AC_DEFINE(HAVE_WORDCUT, 1,
371 [Define if you have the wordcut library and header file])
372 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
373 HAVE_THAI_WORDSEG=yes
375 CPPFLAGS="$save_CPPFLAGS"
380 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
381 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
382 if test -f "/usr/share/wordcut/tdict.wcd"; then
383 tdict="/usr/share/wordcut/tdict.wcd"
384 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
385 tdict="/usr/local/share/wordcut/tdict.wcd"
388 if test "x$tdict" != "x"; then
389 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
390 [Define if you have the old version of wordcut library])
391 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
392 THAI_WORDSEG_LD_FLAGS=-lwordcut
393 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
394 HAVE_THAI_WORDSEG=yes
401 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
402 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
403 [Define if you have some Thai word-segmentation library])
405 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
407 AC_SUBST(CONFIG_FLAGS)
409 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
410 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
411 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
412 dnl CPPFLAGS here directly.
414 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
416 dnl AC_ARG_ENABLE(xom,
417 dnl [ --enable-xom build and install XOM library.],
418 dnl XOM="$enableval")
425 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
426 [Define to loadable module extention])
428 AC_CONFIG_FILES([Makefile
437 dnl if test "x$XOM" = "xyes"; then
438 dnl AC_CONFIG_FILES(omM17N/Makefile)
443 echo "The m17n library is configured with these external libraries."
444 echo " $M17N_EXT_LIBS"
447 dnl comment-start: "dnl "
449 dnl comment-start-skip: "\\bdnl\\b\\s *"