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.
138 save_CPPFLAGS="$CPPFLAGS"
140 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
141 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
142 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
143 OTF_LD_FLAGS="`libotf-config --libs` "
144 LIBS="$LIBS $OTF_LD_FLAGS"
148 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
149 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
150 CPPFLAGS="$save_CPPFLAGS"
151 if test "x$HAVE_OTF" = "xyes"; then
152 AC_DEFINE(HAVE_OTF, 1,
153 [Define to 1 if you have OTF library and header file.])
154 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
156 CPPFLAGS="$save_CPPFLAGS"
160 AC_SUBST(OTF_LD_FLAGS)
162 dnl Check for Freetype2 usability.
163 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
164 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
165 FREETYPE_INC=`freetype-config --cflags`
166 save_CPPFLAGS="$CPPFLAGS"
167 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
168 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
169 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
170 if test "x$HAVE_FREETYPE" = "xyes" ; then
172 LIBS="$LIBS `freetype-config --libs`"
173 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
176 if test "x$HAVE_FREETYPE" = "xyes"; then
177 FREETYPE_LD_FLAGS=`freetype-config --libs`
178 AC_DEFINE(HAVE_FREETYPE, 1,
179 [Define to 1 if you have FreeType library and header file.])
180 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
181 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
182 [#include <ft2build.h>
183 #include FT_FREETYPE_H])
184 if test "x$HAVE_FTBDF_H" = "xyes"; then
185 AC_DEFINE(HAVE_FTBDF_H, 1,
186 [Define to 1 if you have freetype/ftbdf.h.])
188 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
192 AC_SUBST(FREETYPE_LD_FLAGS)
194 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
196 dnl Check for Xft2 usability.
197 save_CPPFLAGS="$CPPFLAGS"
199 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
200 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
201 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
202 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
203 XFT2_LD_FLAGS="`xft-config --libs`"
204 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
205 if pkg-config xft ; then
206 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
207 XFT2_LD_FLAGS="`pkg-config --libs xft`"
210 LIBS="$LIBS $XFT2_LD_FLAGS"
211 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
212 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
213 [#include <X11/Xft/Xft.h>
214 #if XftVersion >= 20000
216 Version too old. Compiling this line should fail.
218 if test "x$HAVE_XFT2" = "xyes"; then
219 AC_DEFINE(HAVE_XFT2, 1,
220 [Define to 1 if you have Xft2 library and header file.])
221 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
224 CPPFLAGS="$save_CPPFLAGS"
227 AC_SUBST(XFT2_LD_FLAGS)
229 dnl Check for fontconfig usability.
230 save_CPPFLAGS="$CPPFLAGS"
232 FONTCONFIG_LD_FLAGS=-lfontconfig
233 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
234 if pkg-config --exists fontconfig; then
235 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
236 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
237 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
240 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
241 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
242 if test "x$HAVE_FONTCONFIG" = "xyes"; then
243 AC_DEFINE(HAVE_FONTCONFIG, 1,
244 [Define to 1 if you have fontconfig library and header file.])
245 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
248 CPPFLAGS="$save_CPPFLAGS"
251 AC_SUBST(FONTCONFIG_LD_FLAGS)
253 dnl Check for gdlib usability.
254 AC_ARG_WITH(gd, [ --with-gd suport graphic device by GD library.])
256 if test "x$with_gd" != "xno"; then
258 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
259 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
260 if test "x$HAVE_GD" = "xyes"; then
261 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
262 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
263 [Define to 1 or 2 if you have gd library and header file.])
264 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
266 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD"
270 AC_SUBST(GD_LD_FLAGS)
272 dnl Check for libxml2 usability.
273 save_CPPFLAGS="$CPPFLAGS"
275 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
276 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
277 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
278 XML2_LD_FLAGS="`xml2-config --libs`"
279 LIBS="$LIBS $XML2_LD_FLAGS"
281 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
282 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
284 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
285 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
286 if test "x$HAVE_XML2" = "xyes"; then
287 AC_DEFINE(HAVE_XML2, 1,
288 [Define to 1 if you have libxml2 library and header file])
289 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
292 CPPFLAGS="$save_CPPFLAGS"
295 AC_SUBST(XML2_LD_FLAGS)
297 dnl Check for Anthy usability.
298 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
299 if test "x$HAVE_ANTHY" = "xyes"; then
300 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
301 if test "x$HAVE_ANTHY" = "xyes"; then
302 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
303 if test "x$HAVE_ANTHY" = "xyes"; then
304 AC_DEFINE(HAVE_ANTHY, 1,
305 [Define to 1 if you have Anthy library and header file])
306 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
307 ANTHY_LD_FLAGS="-lanthy -lanthydic"
308 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
312 AC_SUBST(ANTHY_LD_FLAGS)
314 dnl Check for Ispell usability.
315 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
316 if test "x$HAVE_ISPELL" = "xyes"; then
317 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
318 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
319 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
322 dnl Check for Thai word-segmentation library.
323 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
324 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
325 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
327 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
328 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
330 if test "x$HAVE_LIBTHAI" == "xyes"; then
332 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
333 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
334 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
335 HAVE_THAI_WORDSEG=yes
337 elif test "x$HAVE_WORDCUT" = "xyes"; then
339 save_CPPFLAGS="$CPPFLAGS"
340 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
341 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
342 if test "x$HAVE_WORDCUT" = "xno"; then
343 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
344 if test "x$HAVE_GLIB_2_0" = "xyes"; then
345 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
346 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
349 if test "x$HAVE_WORDCUT" = "xyes"; then
350 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
351 AC_DEFINE(HAVE_WORDCUT, 1,
352 [Define if you have the wordcut library and header file])
353 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
354 HAVE_THAI_WORDSEG=yes
356 CPPFLAGS="$save_CPPFLAGS"
361 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
362 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
363 if test -f "/usr/share/wordcut/tdict.wcd"; then
364 tdict="/usr/share/wordcut/tdict.wcd"
365 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
366 tdict="/usr/local/share/wordcut/tdict.wcd"
369 if test "x$tdict" != "x"; then
370 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
371 [Define if you have the old version of wordcut library])
372 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
373 THAI_WORDSEG_LD_FLAGS=-lwordcut
374 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
375 HAVE_THAI_WORDSEG=yes
382 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
383 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
384 [Define if you have some Thai word-segmentation library])
386 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
388 AC_SUBST(CONFIG_FLAGS)
390 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
391 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
392 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
393 dnl CPPFLAGS here directly.
395 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
397 dnl AC_ARG_ENABLE(xom,
398 dnl [ --enable-xom build and install XOM library.],
399 dnl XOM="$enableval")
406 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
407 [Define to loadable module extention])
409 AC_CONFIG_FILES([Makefile
418 dnl if test "x$XOM" = "xyes"; then
419 dnl AC_CONFIG_FILES(omM17N/Makefile)
424 echo "The m17n library is configured with these external libraries."
425 echo " $M17N_EXT_LIBS"
428 dnl comment-start: "dnl "
430 dnl comment-start-skip: "\\bdnl\\b\\s *"