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.3.0, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.3.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.])
53 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
56 AC_SUBST(XAW_LD_FLAGS)
58 dnl Checks for typedefs, structures, and compiler characteristics.
64 dnl Checks for endian. This influence the default UTF-16 definition.
67 dnl Checks for library functions.
76 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
77 AC_CHECK_FUNCS(strchr strdup gettimeofday)
79 dnl Checks where the m17n database is installed.
81 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
82 if test "x$HAVE_M17N_DB" = "xyes"; then
85 M17NDIR="${datadir}/m17n"
90 dnl Checks if dlopen exists, and if it's in libc or libdl.
92 AC_SEARCH_LIBS(dlopen, dl,
93 AC_DEFINE(HAVE_DLOPEN, 1,
94 [Define to 1 if you have the funciton dlopen.]))
96 dnl Check several libraries without adding -lxxx to LIBS, without
97 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
98 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
99 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
104 dnl Check for fribidi library.
105 save_CPPFLAGS="$CPPFLAGS"
107 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
108 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
109 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
110 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
111 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
113 FRIBIDI_LD_FLAGS=-lfribidi
115 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
116 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
117 if test "x$HAVE_FRIBIDI" = "xyes"; then
118 AC_DEFINE(HAVE_FRIBIDI, 1,
119 [Define to 1 if you have Fribidi library and header file.])
120 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
122 CPPFLAGS="$save_CPPFLAGS"
126 AC_SUBST(FRIBIDI_LD_FLAGS)
128 dnl Check for otflib usability.
129 save_CPPFLAGS="$CPPFLAGS"
131 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
132 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
133 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
134 OTF_LD_FLAGS="`libotf-config --libs` "
135 LIBS="$LIBS $OTF_LD_FLAGS"
139 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
140 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
141 CPPFLAGS="$save_CPPFLAGS"
142 if test "x$HAVE_OTF" = "xyes"; then
143 AC_DEFINE(HAVE_OTF, 1,
144 [Define to 1 if you have OTF library and header file.])
145 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
147 CPPFLAGS="$save_CPPFLAGS"
151 AC_SUBST(OTF_LD_FLAGS)
153 dnl Check for Freetype2 usability.
154 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
155 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
156 FREETYPE_INC=`freetype-config --cflags`
157 save_CPPFLAGS="$CPPFLAGS"
158 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
159 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
160 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
161 if test "x$HAVE_FREETYPE" = "xyes" ; then
163 LIBS="$LIBS `freetype-config --libs`"
164 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
167 if test "x$HAVE_FREETYPE" = "xyes"; then
168 FREETYPE_LD_FLAGS=`freetype-config --libs`
169 AC_DEFINE(HAVE_FREETYPE, 1,
170 [Define to 1 if you have FreeType library and header file.])
171 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
172 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
173 [#include <ft2build.h>
174 #include FT_FREETYPE_H])
175 if test "x$HAVE_FTBDF_H" = "xyes"; then
176 AC_DEFINE(HAVE_FTBDF_H, 1,
177 [Define to 1 if you have freetype/ftbdf.h.])
179 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
183 AC_SUBST(FREETYPE_LD_FLAGS)
185 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
187 dnl Check for Xft2 usability.
188 save_CPPFLAGS="$CPPFLAGS"
190 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
191 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
192 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
193 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
194 XFT2_LD_FLAGS="`xft-config --libs`"
195 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
196 if pkg-config xft ; then
197 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
198 XFT2_LD_FLAGS="`pkg-config --libs xft`"
201 LIBS="$LIBS $XFT2_LD_FLAGS"
202 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
203 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
204 [#include <X11/Xft/Xft.h>
205 #if XftVersion >= 20000
207 Version too old. Compiling this line should fail.
209 if test "x$HAVE_XFT2" = "xyes"; then
210 AC_DEFINE(HAVE_XFT2, 1,
211 [Define to 1 if you have Xft2 library and header file.])
212 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
215 CPPFLAGS="$save_CPPFLAGS"
218 AC_SUBST(XFT2_LD_FLAGS)
220 dnl Check for fontconfig usability.
221 save_CPPFLAGS="$CPPFLAGS"
223 FONTCONFIG_LD_FLAGS=-lfontconfig
224 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
225 if pkg-config --exists fontconfig; then
226 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
227 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
228 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
231 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
232 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
233 if test "x$HAVE_FONTCONFIG" = "xyes"; then
234 AC_DEFINE(HAVE_FONTCONFIG, 1,
235 [Define to 1 if you have fontconfig library and header file.])
236 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
239 CPPFLAGS="$save_CPPFLAGS"
242 AC_SUBST(FONTCONFIG_LD_FLAGS)
244 dnl Check for gdlib usability.
246 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
247 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
248 if test "x$HAVE_GD" = "xyes"; then
249 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
250 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
251 [Define to 1 or 2 if you have gd library and header file.])
252 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
254 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD"
257 AC_SUBST(GD_LD_FLAGS)
259 dnl Check for libxml2 usability.
260 save_CPPFLAGS="$CPPFLAGS"
262 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
263 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
264 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
265 XML2_LD_FLAGS="`xml2-config --libs`"
266 LIBS="$LIBS $XML2_LD_FLAGS"
268 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
269 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
271 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
272 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
273 if test "x$HAVE_XML2" = "xyes"; then
274 AC_DEFINE(HAVE_XML2, 1,
275 [Define to 1 if you have libxml2 library and header file])
276 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
279 CPPFLAGS="$save_CPPFLAGS"
282 AC_SUBST(XML2_LD_FLAGS)
284 dnl Check for Anthy usability.
285 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
286 if test "x$HAVE_ANTHY" = "xyes"; then
287 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
288 if test "x$HAVE_ANTHY" = "xyes"; then
289 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
290 if test "x$HAVE_ANTHY" = "xyes"; then
291 AC_DEFINE(HAVE_ANTHY, 1,
292 [Define to 1 if you have Anthy library and header file])
293 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
294 ANTHY_LD_FLAGS="-lanthy -lanthydic"
295 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
299 AC_SUBST(ANTHY_LD_FLAGS)
301 dnl Check for Ispell usability.
302 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
303 if test "x$HAVE_ISPELL" = "xyes"; then
304 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
305 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
306 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
309 dnl Check for Thai word-segmentation library.
310 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
311 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
312 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
314 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
315 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
317 if test "x$HAVE_LIBTHAI" == "xyes"; then
319 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
320 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
321 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
322 HAVE_THAI_WORDSEG=yes
324 elif test "x$HAVE_WORDCUT" = "xyes"; then
326 save_CPPFLAGS="$CPPFLAGS"
327 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
328 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
329 if test "x$HAVE_WORDCUT" = "xno"; then
330 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
331 if test "x$HAVE_GLIB_2_0" = "xyes"; then
332 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
333 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
336 if test "x$HAVE_WORDCUT" = "xyes"; then
337 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
338 AC_DEFINE(HAVE_WORDCUT, 1,
339 [Define if you have the wordcut library and header file])
340 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
341 HAVE_THAI_WORDSEG=yes
343 CPPFLAGS="$save_CPPFLAGS"
348 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
349 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
350 if test -f "/usr/share/wordcut/tdict.wcd"; then
351 tdict="/usr/share/wordcut/tdict.wcd"
352 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
353 tdict="/usr/local/share/wordcut/tdict.wcd"
356 if test "x$tdict" != "x"; then
357 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
358 [Define if you have the old version of wordcut library])
359 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
360 THAI_WORDSEG_LD_FLAGS=-lwordcut
361 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
362 HAVE_THAI_WORDSEG=yes
369 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
370 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
371 [Define if you have some Thai word-segmentation library])
373 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
375 AC_SUBST(CONFIG_FLAGS)
377 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
378 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
379 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
380 dnl CPPFLAGS here directly.
382 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
384 dnl AC_ARG_ENABLE(xom,
385 dnl [ --enable-xom build and install XOM library.],
386 dnl XOM="$enableval")
393 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
394 [Define to loadable module extention])
396 AC_CONFIG_FILES([Makefile
405 dnl if test "x$XOM" = "xyes"; then
406 dnl AC_CONFIG_FILES(omM17N/Makefile)
411 echo "The m17n library is configured with these external libraries."
412 echo " $M17N_EXT_LIBS"
415 dnl comment-start: "dnl "
417 dnl comment-start-skip: "\\bdnl\\b\\s *"