1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004
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.2.0, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.2.0)
28 AM_CONFIG_HEADER(src/config.h)
33 dnl Checks for programs for compiling.
36 AC_LIBLTDL_CONVENIENCE
39 dnl Checks for X libraries.
42 dnl Checks for standard header files.
46 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
47 string.h strings.h sys/time.h unistd.h])
49 dnl Checks for typedefs, structures, and compiler characteristics.
55 dnl Checks for endian. This influence the default UTF-16 definition.
58 dnl Checks for library functions.
67 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
68 AC_CHECK_FUNCS(strchr strdup gettimeofday)
70 dnl Checks where the m17n database is installed.
72 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
73 if test "x$HAVE_M17N_DB" = "xyes"; then
76 M17NDIR="${datadir}/m17n"
81 dnl Checks if dlopen exists, and if it's in libc or libdl.
83 AC_SEARCH_LIBS(dlopen, dl,
84 AC_DEFINE(HAVE_DLOPEN, 1,
85 [Define to 1 if you have the funciton dlopen.]))
87 dnl Check several libraries without adding -lxxx to LIBS, without
88 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
89 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
90 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
95 dnl Check for fribidi library.
96 save_CPPFLAGS="$CPPFLAGS"
98 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
99 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
100 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
101 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
102 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
104 FRIBIDI_LD_FLAGS=-lfribidi
106 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
107 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
108 if test "x$HAVE_FRIBIDI" = "xyes"; then
109 AC_DEFINE(HAVE_FRIBIDI, 1,
110 [Define to 1 if you have Fribidi library and header file.])
111 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
113 CPPFLAGS="$save_CPPFLAGS"
117 AC_SUBST(FRIBIDI_LD_FLAGS)
119 dnl Check for otflib usability.
120 save_CPPFLAGS="$CPPFLAGS"
122 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
123 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
124 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
125 OTF_LD_FLAGS="`libotf-config --libs` "
126 LIBS="$LIBS $OTF_LD_FLAGS"
130 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
131 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
132 CPPFLAGS="$save_CPPFLAGS"
133 if test "x$HAVE_OTF" = "xyes"; then
134 AC_DEFINE(HAVE_OTF, 1,
135 [Define to 1 if you have OTF library and header file.])
136 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
138 CPPFLAGS="$save_CPPFLAGS"
142 AC_SUBST(OTF_LD_FLAGS)
144 dnl Check for Freetype2 usability.
145 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
146 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
147 FREETYPE_INC=`freetype-config --cflags`
148 save_CPPFLAGS="$CPPFLAGS"
149 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
150 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
151 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
152 if test "x$HAVE_FREETYPE" = "xyes" ; then
154 LIBS="$LIBS `freetype-config --libs`"
155 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
158 if test "x$HAVE_FREETYPE" = "xyes"; then
159 FREETYPE_LD_FLAGS=`freetype-config --libs`
160 AC_DEFINE(HAVE_FREETYPE, 1,
161 [Define to 1 if you have FreeType library and header file.])
162 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
163 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
164 [#include <ft2build.h>
165 #include FT_FREETYPE_H])
166 if test "x$HAVE_FTBDF_H" = "xyes"; then
167 AC_DEFINE(HAVE_FTBDF_H, 1,
168 [Define to 1 if you have freetype/ftbdf.h.])
173 AC_SUBST(FREETYPE_LD_FLAGS)
175 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
177 dnl Check for Xft2 usability.
178 save_CPPFLAGS="$CPPFLAGS"
180 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
181 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
182 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
183 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
184 XFT2_LD_FLAGS="`xft-config --libs`"
185 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
186 if pkg-config xft ; then
187 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
188 XFT2_LD_FLAGS="`pkg-config --libs xft`"
191 LIBS="$LIBS $XFT2_LD_FLAGS"
192 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
193 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
194 [#include <X11/Xft/Xft.h>
195 #if XftVersion >= 20000
197 Version too old. Compiling this line should fail.
199 if test "x$HAVE_XFT2" = "xyes"; then
200 AC_DEFINE(HAVE_XFT2, 1,
201 [Define to 1 if you have Xft2 library and header file.])
202 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
205 CPPFLAGS="$save_CPPFLAGS"
208 AC_SUBST(XFT2_LD_FLAGS)
210 dnl Check for fontconfig usability.
211 save_CPPFLAGS="$CPPFLAGS"
213 FONTCONFIG_LD_FLAGS=-lfontconfig
214 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
215 if pkg-config --exists fontconfig; then
216 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
217 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
218 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
221 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
222 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
223 if test "x$HAVE_FONTCONFIG" = "xyes"; then
224 AC_DEFINE(HAVE_FONTCONFIG, 1,
225 [Define to 1 if you have fontconfig library and header file.])
226 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
229 CPPFLAGS="$save_CPPFLAGS"
232 AC_SUBST(FONTCONFIG_LD_FLAGS)
234 dnl Check for gdlib usability.
236 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
237 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
238 if test "x$HAVE_GD" = "xyes"; then
239 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
240 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
241 [Define to 1 or 2 if you have gd library and header file.])
242 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
246 AC_SUBST(GD_LD_FLAGS)
248 dnl Check for libxml2 usability.
249 save_CPPFLAGS="$CPPFLAGS"
251 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
252 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
253 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
254 XML2_LD_FLAGS="`xml2-config --libs`"
255 LIBS="$LIBS $XML2_LD_FLAGS"
257 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
258 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
260 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
261 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
262 if test "x$HAVE_XML2" = "xyes"; then
263 AC_DEFINE(HAVE_XML2, 1,
264 [Define to 1 if you have libxml2 library and header file])
265 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
268 CPPFLAGS="$save_CPPFLAGS"
271 AC_SUBST(XML2_LD_FLAGS)
273 dnl Check for Anthy usability.
274 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
275 if test "x$HAVE_ANTHY" = "xyes"; then
276 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
277 if test "x$HAVE_ANTHY" = "xyes"; then
278 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
279 if test "x$HAVE_ANTHY" = "xyes"; then
280 AC_DEFINE(HAVE_ANTHY, 1,
281 [Define to 1 if you have Anthy library and header file])
282 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
283 ANTHY_LD_FLAGS="-lanthy -lanthydic"
287 AC_SUBST(ANTHY_LD_FLAGS)
289 dnl Check for Ispell usability.
290 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
291 if test "x$HAVE_ISPELL" = "xyes"; then
292 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
293 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
296 dnl Check for Thai word-segmentation library.
297 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
298 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
299 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
301 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
302 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
304 if test "x$HAVE_LIBTHAI" == "xyes"; then
306 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
307 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
308 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
309 HAVE_THAI_WORDSEG=yes
311 elif test "x$HAVE_WORDCUT" = "xyes"; then
313 save_CPPFLAGS="$CPPFLAGS"
314 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
315 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
316 if test "x$HAVE_WORDCUT" = "xno"; then
317 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
318 if test "x$HAVE_GLIB_2_0" = "xyes"; then
319 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
320 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
323 if test "x$HAVE_WORDCUT" = "xyes"; then
324 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
325 AC_DEFINE(HAVE_WORDCUT, 1,
326 [Define if you have the wordcut library and header file])
327 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
328 HAVE_THAI_WORDSEG=yes
330 CPPFLAGS="$save_CPPFLAGS"
335 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
336 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
337 if test -f "/usr/share/wordcut/tdict.wcd"; then
338 tdict="/usr/share/wordcut/tdict.wcd"
339 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
340 tdict="/usr/local/share/wordcut/tdict.wcd"
343 if test "x$tdict" != "x"; then
344 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
345 [Define if you have the old version of wordcut library])
346 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
347 THAI_WORDSEG_LD_FLAGS=-lwordcut
348 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
349 HAVE_THAI_WORDSEG=yes
356 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
357 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
358 [Define if you have some Thai word-segmentation library])
360 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
362 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
363 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
364 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
365 dnl CPPFLAGS here directly.
367 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
369 dnl AC_ARG_ENABLE(xom,
370 dnl [ --enable-xom build and install XOM library.],
371 dnl XOM="$enableval")
378 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
379 [Define to loadable module extention])
381 AC_CONFIG_FILES([Makefile
390 dnl if test "x$XOM" = "xyes"; then
391 dnl AC_CONFIG_FILES(omM17N/Makefile)
396 echo "The m17n library is configured with these external libraries."
397 echo " $M17N_EXT_LIBS"
400 dnl comment-start: "dnl "
402 dnl comment-start-skip: "\\bdnl\\b\\s *"