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"
83 dnl Checks if dlopen exists, and if it's in libc or libdl.
85 AC_SEARCH_LIBS(dlopen, dl,
86 AC_DEFINE(HAVE_DLOPEN, 1,
87 [Define to 1 if you have the funciton dlopen.]))
89 dnl Check several libraries without adding -lxxx to LIBS, without
90 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
91 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
92 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
97 if test "x$no_x" != "xyes"; then
98 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
99 X11_LD_FLAGS="-lXt -lX11"
100 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
102 if test "x$HAVE_XAW" = "xyes"; then
103 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
104 [Define to 1 if you have the Xaw header files.])
105 XAW_LD_FLAGS="-lXaw -lXmu"
106 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
107 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
110 AC_SUBST(X11_LD_FLAGS)
111 AC_SUBST(XAW_LD_FLAGS)
113 dnl Check for fribidi library.
114 save_CPPFLAGS="$CPPFLAGS"
116 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
117 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
118 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
119 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
120 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
122 FRIBIDI_LD_FLAGS=-lfribidi
124 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
125 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
126 if test "x$HAVE_FRIBIDI" = "xyes"; then
127 AC_DEFINE(HAVE_FRIBIDI, 1,
128 [Define to 1 if you have Fribidi library and header file.])
129 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
131 CPPFLAGS="$save_CPPFLAGS"
135 AC_SUBST(FRIBIDI_LD_FLAGS)
137 dnl Check for otflib usability.
139 AC_HELP_STRING([--with-libotf],
140 [with OpenType font suport (default is YES)]))
142 if test "x$with_libotf" != "xno"; then
143 save_CPPFLAGS="$CPPFLAGS"
145 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
146 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
147 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
148 OTF_LD_FLAGS="`libotf-config --libs` "
149 LIBS="$LIBS $OTF_LD_FLAGS"
153 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
154 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
155 CPPFLAGS="$save_CPPFLAGS"
156 if test "x$HAVE_OTF" = "xyes"; then
157 AC_DEFINE(HAVE_OTF, 1,
158 [Define to 1 if you have OTF library and header file.])
159 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
161 CPPFLAGS="$save_CPPFLAGS"
166 AC_SUBST(OTF_LD_FLAGS)
168 dnl Check for Freetype2 usability.
169 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
170 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
171 FREETYPE_INC=`freetype-config --cflags`
172 save_CPPFLAGS="$CPPFLAGS"
173 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
174 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
175 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
176 if test "x$HAVE_FREETYPE" = "xyes" ; then
178 LIBS="$LIBS `freetype-config --libs`"
179 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
182 if test "x$HAVE_FREETYPE" = "xyes"; then
183 FREETYPE_LD_FLAGS=`freetype-config --libs`
184 AC_DEFINE(HAVE_FREETYPE, 1,
185 [Define to 1 if you have FreeType library and header file.])
186 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
187 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
188 [#include <ft2build.h>
189 #include FT_FREETYPE_H])
190 if test "x$HAVE_FTBDF_H" = "xyes"; then
191 AC_DEFINE(HAVE_FTBDF_H, 1,
192 [Define to 1 if you have freetype/ftbdf.h.])
194 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
198 AC_SUBST(FREETYPE_LD_FLAGS)
200 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
202 dnl Check for Xft2 usability.
203 save_CPPFLAGS="$CPPFLAGS"
205 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
206 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
207 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
208 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
209 XFT2_LD_FLAGS="`xft-config --libs`"
210 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
211 if pkg-config xft ; then
212 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
213 XFT2_LD_FLAGS="`pkg-config --libs xft`"
216 LIBS="$LIBS $XFT2_LD_FLAGS"
217 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
218 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
219 [#include <X11/Xft/Xft.h>
220 #if XftVersion >= 20000
222 Version too old. Compiling this line should fail.
224 if test "x$HAVE_XFT2" = "xyes"; then
225 AC_DEFINE(HAVE_XFT2, 1,
226 [Define to 1 if you have Xft2 library and header file.])
227 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
230 CPPFLAGS="$save_CPPFLAGS"
233 AC_SUBST(XFT2_LD_FLAGS)
235 dnl Check for fontconfig usability.
236 save_CPPFLAGS="$CPPFLAGS"
238 FONTCONFIG_LD_FLAGS=-lfontconfig
239 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
240 if pkg-config --exists fontconfig; then
241 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
242 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
243 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
246 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
247 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
248 if test "x$HAVE_FONTCONFIG" = "xyes"; then
249 AC_DEFINE(HAVE_FONTCONFIG, 1,
250 [Define to 1 if you have fontconfig library and header file.])
251 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
254 CPPFLAGS="$save_CPPFLAGS"
257 AC_SUBST(FONTCONFIG_LD_FLAGS)
259 dnl Check for gdlib usability.
261 AC_HELP_STRING([--with-gd],
262 [suport graphic device by GD library (default is YES)]))
264 if test "x$with_gd" != "xno"; then
266 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
267 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
268 if test "x$HAVE_GD" = "xyes"; then
269 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
270 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
271 [Define to 1 or 2 if you have gd library and header file.])
272 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
274 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD"
278 AC_SUBST(GD_LD_FLAGS)
280 dnl Check for libxml2 usability.
281 save_CPPFLAGS="$CPPFLAGS"
283 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
284 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
285 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
286 XML2_LD_FLAGS="`xml2-config --libs`"
287 LIBS="$LIBS $XML2_LD_FLAGS"
289 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
290 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
292 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
293 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
294 if test "x$HAVE_XML2" = "xyes"; then
295 AC_DEFINE(HAVE_XML2, 1,
296 [Define to 1 if you have libxml2 library and header file])
297 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
300 CPPFLAGS="$save_CPPFLAGS"
303 AC_SUBST(XML2_LD_FLAGS)
305 dnl Check for Anthy usability.
306 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
307 if test "x$HAVE_ANTHY" = "xyes"; then
308 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
309 if test "x$HAVE_ANTHY" = "xyes"; then
310 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
311 if test "x$HAVE_ANTHY" = "xyes"; then
312 AC_DEFINE(HAVE_ANTHY, 1,
313 [Define to 1 if you have Anthy library and header file])
314 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
315 ANTHY_LD_FLAGS="-lanthy -lanthydic"
316 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
320 AC_SUBST(ANTHY_LD_FLAGS)
322 dnl Check for Ispell usability.
323 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
324 if test "x$HAVE_ISPELL" = "xyes"; then
325 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
326 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
327 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
330 dnl Check for Thai word-segmentation library.
331 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
332 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
333 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
335 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
336 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
338 if test "x$HAVE_LIBTHAI" == "xyes"; then
340 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
341 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
342 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
343 HAVE_THAI_WORDSEG=yes
345 elif test "x$HAVE_WORDCUT" = "xyes"; then
347 save_CPPFLAGS="$CPPFLAGS"
348 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
349 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
350 if test "x$HAVE_WORDCUT" = "xno"; then
351 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
352 if test "x$HAVE_GLIB_2_0" = "xyes"; then
353 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
354 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
357 if test "x$HAVE_WORDCUT" = "xyes"; then
358 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
359 AC_DEFINE(HAVE_WORDCUT, 1,
360 [Define if you have the wordcut library and header file])
361 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
362 HAVE_THAI_WORDSEG=yes
364 CPPFLAGS="$save_CPPFLAGS"
369 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
370 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
371 if test -f "/usr/share/wordcut/tdict.wcd"; then
372 tdict="/usr/share/wordcut/tdict.wcd"
373 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
374 tdict="/usr/local/share/wordcut/tdict.wcd"
377 if test "x$tdict" != "x"; then
378 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
379 [Define if you have the old version of wordcut library])
380 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
381 THAI_WORDSEG_LD_FLAGS=-lwordcut
382 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
383 HAVE_THAI_WORDSEG=yes
390 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
391 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
392 [Define if you have some Thai word-segmentation library])
394 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
396 AC_SUBST(CONFIG_FLAGS)
398 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
399 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
400 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
401 dnl CPPFLAGS here directly.
403 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
405 dnl AC_ARG_ENABLE(xom,
406 dnl [ --enable-xom build and install XOM library.],
407 dnl XOM="$enableval")
414 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
415 [Define to loadable module extention])
417 AC_CONFIG_FILES([Makefile
426 dnl if test "x$XOM" = "xyes"; then
427 dnl AC_CONFIG_FILES(omM17N/Makefile)
432 echo "The m17n library is configured with these external libraries."
433 echo " $M17N_EXT_LIBS"
436 dnl comment-start: "dnl "
438 dnl comment-start-skip: "\\bdnl\\b\\s *"