1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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., 51 Franklin Street, Fifth Floor,
22 dnl Boston, MA 02110-1301, USA.
24 dnl Process this file with autoconf to produce a configure script.
26 AC_INIT([m17n-lib],[1.6.1],[m17n-lib-bug@m17n.org])
27 AC_CONFIG_MACRO_DIR([m4])
30 AC_CONFIG_HEADERS([src/config.h])
36 # The earliest version that this release has binary compatibility
37 # with. This is used for module locations.
38 M17N_BINARY_VERSION=1.0
40 M17N_MODULE_DIR="m17n/$M17N_BINARY_VERSION"
41 AC_SUBST(M17N_MODULE_DIR)
44 GETTEXTDIR="$datadir/locale"
47 dnl Checks for programs for compiling.
49 dnl LT_PREREQ([2.2.4])
52 dnl Checks for X libraries.
55 dnl Checks for standard header files.
59 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
60 string.h strings.h sys/time.h unistd.h])
61 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
63 dnl Checks for typedefs, structures, and compiler characteristics.
69 dnl Checks for endian. This influence the default UTF-16 definition.
72 dnl Checks for library functions.
81 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
82 AC_CHECK_FUNCS(strchr strdup gettimeofday)
84 dnl Checks where the m17n database is installed.
86 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
87 if test "x$HAVE_M17N_DB" = "xyes"; then
90 M17NDIR="${datadir}/m17n"
94 dnl Checks which levels of APIs should be compiled.
97 AS_HELP_STRING([--with-gui],[with GUI level APIs (default is YES)]))
99 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
101 if test x$with_gui != xno; then
103 dnl Checks if dlopen exists, and if it's in libc or libdl.
105 AC_SEARCH_LIBS(dlopen, dl,
106 AC_DEFINE(HAVE_DLOPEN, 1,
107 [Define to 1 if you have the function dlopen.]))
109 dnl Check several libraries without adding -lxxx to LIBS, without
110 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
111 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
112 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
117 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
119 if test "x$no_x" != "xyes"; then
120 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
121 X11_LD_FLAGS="-lXt -lX11"
122 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
124 if test "x$HAVE_XAW" = "xyes"; then
125 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
126 [Define to 1 if you have the Xaw header files.])
127 XAW_LD_FLAGS="-lXaw -lXmu"
128 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
129 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
132 AC_SUBST(X11_LD_FLAGS)
133 AC_SUBST(XAW_LD_FLAGS)
135 dnl Check for fribidi library.
136 save_CPPFLAGS="$CPPFLAGS"
138 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
139 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
140 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
141 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
142 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
144 FRIBIDI_LD_FLAGS=-lfribidi
146 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
147 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
148 if test "x$HAVE_FRIBIDI" = "xyes"; then
149 AC_DEFINE(HAVE_FRIBIDI, 1,
150 [Define to 1 if you have Fribidi library and header file.])
151 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
153 CPPFLAGS="$save_CPPFLAGS"
157 AC_SUBST(FRIBIDI_LD_FLAGS)
159 dnl Check for otflib usability.
161 AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)]))
163 if test "x$with_libotf" != "xno"; then
164 save_CPPFLAGS="$CPPFLAGS"
166 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
167 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
168 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
169 OTF_LD_FLAGS="`libotf-config --libs`"
170 LIBS="$LIBS $OTF_LD_FLAGS"
174 ## We check the availability of OTF_check_features
175 ## because we need libotf-0.9.4 or the later.
176 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
177 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
178 if test "x$HAVE_OTF" = "xyes"; then
179 AC_DEFINE(HAVE_OTF, 1,
180 [Define to 1 if you have OTF library and header file.])
181 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
182 AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes,
183 HAVE_OTF_DRIVE_GPOS2=no)
184 if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then
185 AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1,
186 [Define to 1 if the OTF library has OTF_drive_gpos2().])
189 CPPFLAGS="$save_CPPFLAGS"
194 AC_SUBST(OTF_LD_FLAGS)
196 dnl Check for Freetype2 usability.
197 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
198 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
199 FREETYPE_INC=`freetype-config --cflags`
200 save_CPPFLAGS="$CPPFLAGS"
201 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
202 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
203 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
204 if test "x$HAVE_FREETYPE" = "xyes" ; then
206 LIBS="$LIBS `freetype-config --libs`"
207 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
210 if test "x$HAVE_FREETYPE" = "xyes"; then
211 FREETYPE_LD_FLAGS=`freetype-config --libs`
212 AC_DEFINE(HAVE_FREETYPE, 1,
213 [Define to 1 if you have FreeType library and header file.])
214 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
215 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
216 [#include <ft2build.h>
217 #include FT_FREETYPE_H])
218 if test "x$HAVE_FTBDF_H" = "xyes"; then
219 AC_DEFINE(HAVE_FTBDF_H, 1,
220 [Define to 1 if you have freetype/ftbdf.h.])
222 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
226 AC_SUBST(FREETYPE_LD_FLAGS)
228 dnl Check for Xft2 usability.
229 save_CPPFLAGS="$CPPFLAGS"
231 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
232 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
233 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
234 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
235 XFT2_LD_FLAGS="`xft-config --libs`"
236 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
237 if pkg-config xft ; then
238 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
239 XFT2_LD_FLAGS="`pkg-config --libs xft`"
242 LIBS="$LIBS $XFT2_LD_FLAGS"
243 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
244 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
245 [#include <X11/Xft/Xft.h>
246 #if XftVersion >= 20000
248 Version too old. Compiling this line should fail.
250 if test "x$HAVE_XFT2" = "xyes"; then
251 AC_DEFINE(HAVE_XFT2, 1,
252 [Define to 1 if you have Xft2 library and header file.])
253 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
256 CPPFLAGS="$save_CPPFLAGS"
259 AC_SUBST(XFT2_LD_FLAGS)
261 dnl Check for fontconfig usability.
262 AC_ARG_WITH(fontconfig,
263 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
264 if test "x$with_fontconfig" != "xno"; then
265 save_CPPFLAGS="$CPPFLAGS"
267 FONTCONFIG_LD_FLAGS=-lfontconfig
268 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
269 if pkg-config --exists fontconfig; then
270 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
271 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
272 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
275 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
276 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
277 if test "x$HAVE_FONTCONFIG" = "xyes"; then
278 AC_DEFINE(HAVE_FONTCONFIG, 1,
279 [Define to 1 if you have fontconfig library and header file.])
280 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
283 CPPFLAGS="$save_CPPFLAGS"
287 AC_SUBST(FONTCONFIG_LD_FLAGS)
289 dnl Check for gdlib usability.
291 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
293 if test "x$with_gd" != "xno"; then
295 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
296 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
297 if test "x$HAVE_GD" = "xyes"; then
298 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
299 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
300 [Define to 1 or 2 if you have gd library and header file.])
301 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
303 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
307 AC_SUBST(GD_LD_FLAGS)
311 dnl Check for libxml2 usability.
312 save_CPPFLAGS="$CPPFLAGS"
314 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
315 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
316 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
317 XML2_LD_FLAGS="`xml2-config --libs`"
318 LIBS="$LIBS $XML2_LD_FLAGS"
320 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
321 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
323 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
324 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
325 if test "x$HAVE_XML2" = "xyes"; then
326 AC_DEFINE(HAVE_XML2, 1,
327 [Define to 1 if you have libxml2 library and header file])
328 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
331 CPPFLAGS="$save_CPPFLAGS"
334 AC_SUBST(XML2_LD_FLAGS)
336 dnl Check for Anthy usability.
338 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
339 if test "x$HAVE_ANTHY" = "xyes"; then
340 AC_DEFINE(HAVE_ANTHY, 1,
341 [Define to 1 if you have Anthy library and header file])
342 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
343 ANTHY_LD_FLAGS="$ANTHY_LIBS"
344 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ANTHY"
346 AC_SUBST(ANTHY_LD_FLAGS)
348 dnl Check for Ispell usability.
349 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
350 if test "x$HAVE_ISPELL" = "xyes"; then
351 AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
352 M17N_EXT_LIBS="$M17N_EXT_LIBS ispell"
353 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_ISPELL"
356 dnl Check for Thai word-segmentation library.
357 dnl If we have one, define HAVE_THAI_WORDSEG and one of these:
358 dnl HAVE_LIBTHAI, HAVE_WORDCUT, or HAVE_WORDCUT_OLD
359 dnl In addition, set THAI_WORDSEG_LD_FLAGS to a proper value.
361 PKG_CHECK_MODULES(LIBTHAI, libthai, HAVE_LIBTHAI=yes, HAVE_LIBTHAI=no)
362 PKG_CHECK_MODULES(WORDCUT, wordcut, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
364 if test "x$HAVE_LIBTHAI" == "xyes"; then
366 AC_DEFINE(HAVE_LIBTHAI, 1, [Define if you have libthai])
367 THAI_WORDSEG_LD_FLAGS="$LIBTHAI_LIBS"
368 M17N_EXT_LIBS="$M17N_EXT_LIBS libthai"
369 HAVE_THAI_WORDSEG=yes
371 elif test "x$HAVE_WORDCUT" = "xyes"; then
373 save_CPPFLAGS="$CPPFLAGS"
374 CPPFLAGS="$CPPFLAGS $WORDCUT_CFLAGS"
375 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[],[HAVE_WORDCUT=no])
376 if test "x$HAVE_WORDCUT" = "xno"; then
377 PKG_CHECK_MODULES(GLIB_2_0, glib-2.0, HAVE_GLIB_2_0=yes, HAVE_GLIB_2_0=no)
378 if test "x$HAVE_GLIB_2_0" = "xyes"; then
379 CPPFLAGS="$CPPFLAGS $GLIB_2_0_CFLAGS"
380 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <wordcut/wcwordcut.h>]])],[HAVE_WORDCUT=yes],[])
383 if test "x$HAVE_WORDCUT" = "xyes"; then
384 THAI_WORDSEG_LD_FLAGS="$WORDCUT_LIBS"
385 AC_DEFINE(HAVE_WORDCUT, 1,
386 [Define if you have the wordcut library and header file])
387 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut"
388 HAVE_THAI_WORDSEG=yes
390 CPPFLAGS="$save_CPPFLAGS"
395 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT_OLD=yes)
396 if test "x$HAVE_WORDCUT_OLD" = "xyes"; then
397 if test -f "/usr/share/wordcut/tdict.wcd"; then
398 tdict="/usr/share/wordcut/tdict.wcd"
399 elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
400 tdict="/usr/local/share/wordcut/tdict.wcd"
403 if test "x$tdict" != "x"; then
404 AC_DEFINE(HAVE_WORDCUT_OLD, 1,
405 [Define if you have the old version of wordcut library])
406 AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define tdict file name])
407 THAI_WORDSEG_LD_FLAGS=-lwordcut
408 M17N_EXT_LIBS="$M17N_EXT_LIBS wordcut-old"
409 HAVE_THAI_WORDSEG=yes
416 if test "x$HAVE_THAI_WORDSEG" = "xyes"; then
417 AC_DEFINE(HAVE_THAI_WORDSEG, 1,
418 [Define if you have some Thai word-segmentation library])
420 AC_SUBST(THAI_WORDSEG_LD_FLAGS)
422 AC_SUBST(CONFIG_FLAGS)
424 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
425 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
426 dnl inclusion of an incorrect header file. So, append X_CFLAGS to
427 dnl CPPFLAGS here directly.
429 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
431 dnl AC_ARG_ENABLE(xom,
432 dnl [ --enable-xom build and install XOM library.],
433 dnl XOM="$enableval")
440 AC_DEFINE_UNQUOTED(DLOPEN_SHLIB_EXT, "$SHLIB_EXT",
441 [Define to loadable module extention])
443 AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile
453 dnl if test "x$XOM" = "xyes"; then
454 dnl AC_CONFIG_FILES(omM17N/Makefile)
459 echo "The m17n library is configured with these external libraries."
460 echo " $M17N_EXT_LIBS"
463 dnl comment-start: "dnl "
465 dnl comment-start-skip: "\\bdnl\\b\\s *"