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, HAVE_XAW=yes)
49 if test "x$HAVE_XAW" = "xyes"; then
51 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
52 [Define to 1 if you have the Xaw header files.])
55 AC_SUBST(XAW_LD_FLAGS)
57 dnl Checks for typedefs, structures, and compiler characteristics.
63 dnl Checks for endian. This influence the default UTF-16 definition.
66 dnl Checks for library functions.
75 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
76 AC_CHECK_FUNCS(strchr strdup gettimeofday)
78 dnl Checks where the m17n database is installed.
80 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
81 if test "x$HAVE_M17N_DB" = "xyes"; then
84 M17NDIR="${datadir}/m17n"
89 dnl Checks if dlopen exists, and if it's in libc or libdl.
91 AC_SEARCH_LIBS(dlopen, dl,
92 AC_DEFINE(HAVE_DLOPEN, 1,
93 [Define to 1 if you have the funciton dlopen.]))
95 dnl Check several libraries without adding -lxxx to LIBS, without
96 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
97 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
98 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
103 dnl Check for fribidi library.
104 save_CPPFLAGS="$CPPFLAGS"
106 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
107 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
108 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
109 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
110 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
112 FRIBIDI_LD_FLAGS=-lfribidi
114 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
115 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
116 if test "x$HAVE_FRIBIDI" = "xyes"; then
117 AC_DEFINE(HAVE_FRIBIDI, 1,
118 [Define to 1 if you have Fribidi library and header file.])
119 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
121 CPPFLAGS="$save_CPPFLAGS"
125 AC_SUBST(FRIBIDI_LD_FLAGS)
127 dnl Check for otflib usability.
128 save_CPPFLAGS="$CPPFLAGS"
130 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
131 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
132 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
133 OTF_LD_FLAGS="`libotf-config --libs` "
134 LIBS="$LIBS $OTF_LD_FLAGS"
138 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
139 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
140 CPPFLAGS="$save_CPPFLAGS"
141 if test "x$HAVE_OTF" = "xyes"; then
142 AC_DEFINE(HAVE_OTF, 1,
143 [Define to 1 if you have OTF library and header file.])
144 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
146 CPPFLAGS="$save_CPPFLAGS"
150 AC_SUBST(OTF_LD_FLAGS)
152 dnl Check for Freetype2 usability.
153 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
154 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
155 FREETYPE_INC=`freetype-config --cflags`
156 save_CPPFLAGS="$CPPFLAGS"
157 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
158 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
159 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
160 if test "x$HAVE_FREETYPE" = "xyes" ; then
162 LIBS="$LIBS `freetype-config --libs`"
163 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
166 if test "x$HAVE_FREETYPE" = "xyes"; then
167 FREETYPE_LD_FLAGS=`freetype-config --libs`
168 AC_DEFINE(HAVE_FREETYPE, 1,
169 [Define to 1 if you have FreeType library and header file.])
170 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
171 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
172 [#include <ft2build.h>
173 #include FT_FREETYPE_H])
174 if test "x$HAVE_FTBDF_H" = "xyes"; then
175 AC_DEFINE(HAVE_FTBDF_H, 1,
176 [Define to 1 if you have freetype/ftbdf.h.])
181 AC_SUBST(FREETYPE_LD_FLAGS)
183 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
185 dnl Check for Xft2 usability.
186 save_CPPFLAGS="$CPPFLAGS"
188 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
189 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
190 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
191 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
192 XFT2_LD_FLAGS="`xft-config --libs`"
193 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
194 if pkg-config xft ; then
195 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
196 XFT2_LD_FLAGS="`pkg-config --libs xft`"
199 LIBS="$LIBS $XFT2_LD_FLAGS"
200 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
201 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
202 [#include <X11/Xft/Xft.h>
203 #if XftVersion >= 20000
205 Version too old. Compiling this line should fail.
207 if test "x$HAVE_XFT2" = "xyes"; then
208 AC_DEFINE(HAVE_XFT2, 1,
209 [Define to 1 if you have Xft2 library and header file.])
210 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
213 CPPFLAGS="$save_CPPFLAGS"
216 AC_SUBST(XFT2_LD_FLAGS)
218 dnl Check for fontconfig usability.
219 save_CPPFLAGS="$CPPFLAGS"
221 FONTCONFIG_LD_FLAGS=-lfontconfig
222 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
223 if pkg-config --exists fontconfig; then
224 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
225 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
226 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
229 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
230 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
231 if test "x$HAVE_FONTCONFIG" = "xyes"; then
232 AC_DEFINE(HAVE_FONTCONFIG, 1,
233 [Define to 1 if you have fontconfig library and header file.])
234 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
237 CPPFLAGS="$save_CPPFLAGS"
240 AC_SUBST(FONTCONFIG_LD_FLAGS)
242 dnl Check for gdlib usability.
244 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
245 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
246 if test "x$HAVE_GD" = "xyes"; then
247 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
248 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
249 [Define to 1 or 2 if you have gd library and header file.])
250 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
254 AC_SUBST(GD_LD_FLAGS)
256 dnl Check for libxml2 usability.
257 save_CPPFLAGS="$CPPFLAGS"
259 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
260 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
261 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
262 XML2_LD_FLAGS="`xml2-config --libs`"
263 LIBS="$LIBS $XML2_LD_FLAGS"
265 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
266 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
268 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
269 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
270 if test "x$HAVE_XML2" = "xyes"; then
271 AC_DEFINE(HAVE_XML2, 1,
272 [Define to 1 if you have libxml2 library and header file])
273 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
276 CPPFLAGS="$save_CPPFLAGS"
279 AC_SUBST(XML2_LD_FLAGS)
281 dnl Check for Anthy usability.
282 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
283 if test "x$HAVE_ANTHY" = "xyes"; then
284 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
285 if test "x$HAVE_ANTHY" = "xyes"; then
286 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
287 if test "x$HAVE_ANTHY" = "xyes"; then
288 AC_DEFINE(HAVE_ANTHY, 1,
289 [Define to 1 if you have Anthy library and header file])
290 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
291 ANTHY_LD_FLAGS="-lanthy -lanthydic"
295 AC_SUBST(ANTHY_LD_FLAGS)
297 dnl Check for Ispell usability.
298 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
299 if test "x$HAVE_ISPELL" = "xyes"; then
300 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
301 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
304 dnl Check for Thai word-segmentation library.
305 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
306 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
307 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
309 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
310 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
312 if test "x$HAVE_LIBTHAI" == "xyes"; then
314 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
315 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
316 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
317 HAVE_THAI_WORDSEG=yes
319 elif test "x$HAVE_WORDCUT" = "xyes"; then
321 save_CPPFLAGS="$CPPFLAGS"
322 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
323 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
324 if test "x$HAVE_WORDCUT" = "xno"; then
325 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
326 if test "x$HAVE_GLIB_2_0" = "xyes"; then
327 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
328 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
331 if test "x$HAVE_WORDCUT" = "xyes"; then
332 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
333 AC_DEFINE(HAVE_WORDCUT, 1,
334 [Define if you have the wordcut library and header file])
335 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
336 HAVE_THAI_WORDSEG=yes
338 CPPFLAGS="$save_CPPFLAGS"
343 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
344 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
345 if test -f "/usr/share/wordcut/tdict.wcd"; then
346 tdict="/usr/share/wordcut/tdict.wcd"
347 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
348 tdict="/usr/local/share/wordcut/tdict.wcd"
351 if test "x$tdict" != "x"; then
352 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
353 [Define if you have the old version of wordcut library])
354 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
355 THAI_WORDSEG_LD_FLAGS=-lwordcut
356 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
357 HAVE_THAI_WORDSEG=yes
364 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
365 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
366 [Define if you have some Thai word-segmentation library])
368 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
370 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
371 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
372 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
373 dnl CPPFLAGS here directly.
375 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
377 dnl AC_ARG_ENABLE(xom,
378 dnl [ --enable-xom build and install XOM library.],
379 dnl XOM="$enableval")
386 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
387 [Define to loadable module extention])
389 AC_CONFIG_FILES([Makefile
398 dnl if test "x$XOM" = "xyes"; then
399 dnl AC_CONFIG_FILES(omM17N/Makefile)
404 echo "The m17n library is configured with these external libraries."
405 echo " $M17N_EXT_LIBS"
408 dnl comment-start: "dnl "
410 dnl comment-start-skip: "\\bdnl\\b\\s *"