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])
48 AC_CHECK_HEADER(X11/Xaw/Command.h, XAW_LD_FLAGS=-lXaw)
49 AC_SUBST(XAW_LD_FLAGS)
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 dnl Check for fribidi library.
98 save_CPPFLAGS="$CPPFLAGS"
100 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
101 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
102 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
103 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
104 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
106 FRIBIDI_LD_FLAGS=-lfribidi
108 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
109 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
110 if test "x$HAVE_FRIBIDI" = "xyes"; then
111 AC_DEFINE(HAVE_FRIBIDI, 1,
112 [Define to 1 if you have Fribidi library and header file.])
113 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
115 CPPFLAGS="$save_CPPFLAGS"
119 AC_SUBST(FRIBIDI_LD_FLAGS)
121 dnl Check for otflib usability.
122 save_CPPFLAGS="$CPPFLAGS"
124 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
125 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
126 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
127 OTF_LD_FLAGS="`libotf-config --libs` "
128 LIBS="$LIBS $OTF_LD_FLAGS"
132 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
133 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
134 CPPFLAGS="$save_CPPFLAGS"
135 if test "x$HAVE_OTF" = "xyes"; then
136 AC_DEFINE(HAVE_OTF, 1,
137 [Define to 1 if you have OTF library and header file.])
138 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
140 CPPFLAGS="$save_CPPFLAGS"
144 AC_SUBST(OTF_LD_FLAGS)
146 dnl Check for Freetype2 usability.
147 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
148 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
149 FREETYPE_INC=`freetype-config --cflags`
150 save_CPPFLAGS="$CPPFLAGS"
151 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
152 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
153 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
154 if test "x$HAVE_FREETYPE" = "xyes" ; then
156 LIBS="$LIBS `freetype-config --libs`"
157 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
160 if test "x$HAVE_FREETYPE" = "xyes"; then
161 FREETYPE_LD_FLAGS=`freetype-config --libs`
162 AC_DEFINE(HAVE_FREETYPE, 1,
163 [Define to 1 if you have FreeType library and header file.])
164 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
165 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
166 [#include <ft2build.h>
167 #include FT_FREETYPE_H])
168 if test "x$HAVE_FTBDF_H" = "xyes"; then
169 AC_DEFINE(HAVE_FTBDF_H, 1,
170 [Define to 1 if you have freetype/ftbdf.h.])
175 AC_SUBST(FREETYPE_LD_FLAGS)
177 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
179 dnl Check for Xft2 usability.
180 save_CPPFLAGS="$CPPFLAGS"
182 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
183 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
184 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
185 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
186 XFT2_LD_FLAGS="`xft-config --libs`"
187 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
188 if pkg-config xft ; then
189 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
190 XFT2_LD_FLAGS="`pkg-config --libs xft`"
193 LIBS="$LIBS $XFT2_LD_FLAGS"
194 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
195 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
196 [#include <X11/Xft/Xft.h>
197 #if XftVersion >= 20000
199 Version too old. Compiling this line should fail.
201 if test "x$HAVE_XFT2" = "xyes"; then
202 AC_DEFINE(HAVE_XFT2, 1,
203 [Define to 1 if you have Xft2 library and header file.])
204 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
207 CPPFLAGS="$save_CPPFLAGS"
210 AC_SUBST(XFT2_LD_FLAGS)
212 dnl Check for fontconfig usability.
213 save_CPPFLAGS="$CPPFLAGS"
215 FONTCONFIG_LD_FLAGS=-lfontconfig
216 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
217 if pkg-config --exists fontconfig; then
218 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
219 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
220 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
223 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
224 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
225 if test "x$HAVE_FONTCONFIG" = "xyes"; then
226 AC_DEFINE(HAVE_FONTCONFIG, 1,
227 [Define to 1 if you have fontconfig library and header file.])
228 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
231 CPPFLAGS="$save_CPPFLAGS"
234 AC_SUBST(FONTCONFIG_LD_FLAGS)
236 dnl Check for gdlib usability.
238 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
239 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
240 if test "x$HAVE_GD" = "xyes"; then
241 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
242 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
243 [Define to 1 or 2 if you have gd library and header file.])
244 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
248 AC_SUBST(GD_LD_FLAGS)
250 dnl Check for libxml2 usability.
251 save_CPPFLAGS="$CPPFLAGS"
253 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
254 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
255 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
256 XML2_LD_FLAGS="`xml2-config --libs`"
257 LIBS="$LIBS $XML2_LD_FLAGS"
259 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
260 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
262 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
263 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
264 if test "x$HAVE_XML2" = "xyes"; then
265 AC_DEFINE(HAVE_XML2, 1,
266 [Define to 1 if you have libxml2 library and header file])
267 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
270 CPPFLAGS="$save_CPPFLAGS"
273 AC_SUBST(XML2_LD_FLAGS)
275 dnl Check for Anthy usability.
276 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
277 if test "x$HAVE_ANTHY" = "xyes"; then
278 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
279 if test "x$HAVE_ANTHY" = "xyes"; then
280 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
281 if test "x$HAVE_ANTHY" = "xyes"; then
282 AC_DEFINE(HAVE_ANTHY, 1,
283 [Define to 1 if you have Anthy library and header file])
284 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
285 ANTHY_LD_FLAGS="-lanthy -lanthydic"
289 AC_SUBST(ANTHY_LD_FLAGS)
291 dnl Check for Ispell usability.
292 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
293 if test "x$HAVE_ISPELL" = "xyes"; then
294 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
295 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
298 dnl Check for Thai word-segmentation library.
299 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
300 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
301 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
303 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
304 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
306 if test "x$HAVE_LIBTHAI" == "xyes"; then
308 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
309 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
310 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
311 HAVE_THAI_WORDSEG=yes
313 elif test "x$HAVE_WORDCUT" = "xyes"; then
315 save_CPPFLAGS="$CPPFLAGS"
316 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
317 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
318 if test "x$HAVE_WORDCUT" = "xno"; then
319 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
320 if test "x$HAVE_GLIB_2_0" = "xyes"; then
321 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
322 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
325 if test "x$HAVE_WORDCUT" = "xyes"; then
326 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
327 AC_DEFINE(HAVE_WORDCUT, 1,
328 [Define if you have the wordcut library and header file])
329 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
330 HAVE_THAI_WORDSEG=yes
332 CPPFLAGS="$save_CPPFLAGS"
337 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
338 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
339 if test -f "/usr/share/wordcut/tdict.wcd"; then
340 tdict="/usr/share/wordcut/tdict.wcd"
341 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
342 tdict="/usr/local/share/wordcut/tdict.wcd"
345 if test "x$tdict" != "x"; then
346 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
347 [Define if you have the old version of wordcut library])
348 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
349 THAI_WORDSEG_LD_FLAGS=-lwordcut
350 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
351 HAVE_THAI_WORDSEG=yes
358 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
359 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
360 [Define if you have some Thai word-segmentation library])
362 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
364 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
365 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
366 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
367 dnl CPPFLAGS here directly.
369 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
371 dnl AC_ARG_ENABLE(xom,
372 dnl [ --enable-xom build and install XOM library.],
373 dnl XOM="$enableval")
380 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
381 [Define to loadable module extention])
383 AC_CONFIG_FILES([Makefile
392 dnl if test "x$XOM" = "xyes"; then
393 dnl AC_CONFIG_FILES(omM17N/Makefile)
398 echo "The m17n library is configured with these external libraries."
399 echo " $M17N_EXT_LIBS"
402 dnl comment-start: "dnl "
404 dnl comment-start-skip: "\\bdnl\\b\\s *"