1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006
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.3, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.3.3)
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"
82 dnl Checks which levels of APIs should be compiled.
85 AC_HELP_STRING([--with-gui],
86 [with GUI level APIs (default is YES)]))
88 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
90 if test x$with_gui != xno; then
92 dnl Checks if dlopen exists, and if it's in libc or libdl.
94 AC_SEARCH_LIBS(dlopen, dl,
95 AC_DEFINE(HAVE_DLOPEN, 1,
96 [Define to 1 if you have the function dlopen.]))
98 dnl Check several libraries without adding -lxxx to LIBS, without
99 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
100 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
101 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
106 if test "x$no_x" != "xyes"; then
107 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
108 X11_LD_FLAGS="-lXt -lX11"
109 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
111 if test "x$HAVE_XAW" = "xyes"; then
112 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
113 [Define to 1 if you have the Xaw header files.])
114 XAW_LD_FLAGS="-lXaw -lXmu"
115 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
116 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
119 AC_SUBST(X11_LD_FLAGS)
120 AC_SUBST(XAW_LD_FLAGS)
122 dnl Check for fribidi library.
123 save_CPPFLAGS="$CPPFLAGS"
125 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
126 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
127 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
128 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
129 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
131 FRIBIDI_LD_FLAGS=-lfribidi
133 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
134 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
135 if test "x$HAVE_FRIBIDI" = "xyes"; then
136 AC_DEFINE(HAVE_FRIBIDI, 1,
137 [Define to 1 if you have Fribidi library and header file.])
138 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
140 CPPFLAGS="$save_CPPFLAGS"
144 AC_SUBST(FRIBIDI_LD_FLAGS)
146 dnl Check for otflib usability.
148 AC_HELP_STRING([--with-libotf],
149 [with OpenType font suport (default is YES)]))
151 if test "x$with_libotf" != "xno"; then
152 save_CPPFLAGS="$CPPFLAGS"
154 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
155 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
156 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
157 OTF_LD_FLAGS="`libotf-config --libs` "
158 LIBS="$LIBS $OTF_LD_FLAGS"
162 ## We check the availability of OTF_check_features
163 ## because we need libotf-0.9.4 or the later.
164 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
165 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
166 CPPFLAGS="$save_CPPFLAGS"
167 if test "x$HAVE_OTF" = "xyes"; then
168 AC_DEFINE(HAVE_OTF, 1,
169 [Define to 1 if you have OTF library and header file.])
170 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
172 CPPFLAGS="$save_CPPFLAGS"
177 AC_SUBST(OTF_LD_FLAGS)
179 dnl Check for Freetype2 usability.
180 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
181 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
182 FREETYPE_INC=`freetype-config --cflags`
183 save_CPPFLAGS="$CPPFLAGS"
184 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
185 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
186 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
187 if test "x$HAVE_FREETYPE" = "xyes" ; then
189 LIBS="$LIBS `freetype-config --libs`"
190 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
193 if test "x$HAVE_FREETYPE" = "xyes"; then
194 FREETYPE_LD_FLAGS=`freetype-config --libs`
195 AC_DEFINE(HAVE_FREETYPE, 1,
196 [Define to 1 if you have FreeType library and header file.])
197 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
198 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
199 [#include <ft2build.h>
200 #include FT_FREETYPE_H])
201 if test "x$HAVE_FTBDF_H" = "xyes"; then
202 AC_DEFINE(HAVE_FTBDF_H, 1,
203 [Define to 1 if you have freetype/ftbdf.h.])
205 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
209 AC_SUBST(FREETYPE_LD_FLAGS)
211 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
213 dnl Check for Xft2 usability.
214 save_CPPFLAGS="$CPPFLAGS"
216 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
217 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
218 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
219 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
220 XFT2_LD_FLAGS="`xft-config --libs`"
221 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
222 if pkg-config xft ; then
223 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
224 XFT2_LD_FLAGS="`pkg-config --libs xft`"
227 LIBS="$LIBS $XFT2_LD_FLAGS"
228 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
229 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
230 [#include <X11/Xft/Xft.h>
231 #if XftVersion >= 20000
233 Version too old. Compiling this line should fail.
235 if test "x$HAVE_XFT2" = "xyes"; then
236 AC_DEFINE(HAVE_XFT2, 1,
237 [Define to 1 if you have Xft2 library and header file.])
238 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
241 CPPFLAGS="$save_CPPFLAGS"
244 AC_SUBST(XFT2_LD_FLAGS)
246 dnl Check for fontconfig usability.
247 AC_ARG_WITH(fontconfig,
248 AC_HELP_STRING([--with-fontconfig],
249 [with FontConfig library (default is YES)]))
250 if test "x$with_fontconfig" != "xno"; then
251 save_CPPFLAGS="$CPPFLAGS"
253 FONTCONFIG_LD_FLAGS=-lfontconfig
254 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
255 if pkg-config --exists fontconfig; then
256 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
257 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
258 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
261 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
262 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
263 if test "x$HAVE_FONTCONFIG" = "xyes"; then
264 AC_DEFINE(HAVE_FONTCONFIG, 1,
265 [Define to 1 if you have fontconfig library and header file.])
266 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
269 CPPFLAGS="$save_CPPFLAGS"
273 AC_SUBST(FONTCONFIG_LD_FLAGS)
275 dnl Check for gdlib usability.
277 AC_HELP_STRING([--with-gd],
278 [suport graphic device by GD library (default is YES)]))
280 if test "x$with_gd" != "xno"; then
282 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
283 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
284 if test "x$HAVE_GD" = "xyes"; then
285 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
286 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
287 [Define to 1 or 2 if you have gd library and header file.])
288 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
290 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
294 AC_SUBST(GD_LD_FLAGS)
298 dnl Check for libxml2 usability.
299 save_CPPFLAGS="$CPPFLAGS"
301 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
302 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
303 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
304 XML2_LD_FLAGS="`xml2-config --libs`"
305 LIBS="$LIBS $XML2_LD_FLAGS"
307 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
308 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
310 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
311 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
312 if test "x$HAVE_XML2" = "xyes"; then
313 AC_DEFINE(HAVE_XML2, 1,
314 [Define to 1 if you have libxml2 library and header file])
315 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
318 CPPFLAGS="$save_CPPFLAGS"
321 AC_SUBST(XML2_LD_FLAGS)
323 dnl Check for Anthy usability.
324 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
325 if test "x$HAVE_ANTHY" = "xyes"; then
326 AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
327 if test "x$HAVE_ANTHY" = "xyes"; then
328 AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
329 if test "x$HAVE_ANTHY" = "xyes"; then
330 AC_DEFINE(HAVE_ANTHY, 1,
331 [Define to 1 if you have Anthy library and header file])
332 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
333 ANTHY_LD_FLAGS="-lanthy -lanthydic"
334 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
338 AC_SUBST(ANTHY_LD_FLAGS)
340 dnl Check for Ispell usability.
341 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
342 if test "x$HAVE_ISPELL" = "xyes"; then
343 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
344 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
345 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
348 dnl Check for Thai word-segmentation library.
349 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
350 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
351 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
353 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
354 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
356 if test "x$HAVE_LIBTHAI" == "xyes"; then
358 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
359 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
360 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
361 HAVE_THAI_WORDSEG=yes
363 elif test "x$HAVE_WORDCUT" = "xyes"; then
365 save_CPPFLAGS="$CPPFLAGS"
366 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
367 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], , HAVE_WORDCUT=no)
368 if test "x$HAVE_WORDCUT" = "xno"; then
369 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
370 if test "x$HAVE_GLIB_2_0" = "xyes"; then
371 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
372 AC_TRY_CPP([#include <wordcut/wcwordcut.h>], HAVE_WORDCUT=yes)
375 if test "x$HAVE_WORDCUT" = "xyes"; then
376 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
377 AC_DEFINE(HAVE_WORDCUT, 1,
378 [Define if you have the wordcut library and header file])
379 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
380 HAVE_THAI_WORDSEG=yes
382 CPPFLAGS="$save_CPPFLAGS"
387 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
388 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
389 if test -f "/usr/share/wordcut/tdict.wcd"; then
390 tdict="/usr/share/wordcut/tdict.wcd"
391 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
392 tdict="/usr/local/share/wordcut/tdict.wcd"
395 if test "x$tdict" != "x"; then
396 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
397 [Define if you have the old version of wordcut library])
398 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
399 THAI_WORDSEG_LD_FLAGS=-lwordcut
400 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
401 HAVE_THAI_WORDSEG=yes
408 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
409 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
410 [Define if you have some Thai word-segmentation library])
412 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
414 AC_SUBST(CONFIG_FLAGS)
416 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
417 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
418 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
419 dnl CPPFLAGS here directly.
421 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
423 dnl AC_ARG_ENABLE(xom,
424 dnl [ --enable-xom build and install XOM library.],
425 dnl XOM="$enableval")
432 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
433 [Define to loadable module extention])
435 AC_CONFIG_FILES([Makefile
444 dnl if test "x$XOM" = "xyes"; then
445 dnl AC_CONFIG_FILES(omM17N/Makefile)
450 echo "The m17n library is configured with these external libraries."
451 echo " $M17N_EXT_LIBS"
454 dnl comment-start: "dnl "
456 dnl comment-start-skip: "\\bdnl\\b\\s *"