1 dnl configure.ac -- autoconf script for the m17n library.
3 dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
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.0],[m17n-lib-bug@m17n.org])
27 AC_CONFIG_MACRO_DIR([m4])
29 AC_CONFIG_HEADERS([src/config.h])
36 GETTEXTDIR="$datadir/locale"
39 dnl Checks for programs for compiling.
44 dnl Checks for X libraries.
47 dnl Checks for standard header files.
51 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
52 string.h strings.h sys/time.h unistd.h])
53 AC_CHECK_HEADER(X11/Xaw/Command.h, HAVE_XAW=yes)
55 dnl Checks for typedefs, structures, and compiler characteristics.
61 dnl Checks for endian. This influence the default UTF-16 definition.
64 dnl Checks for library functions.
73 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
74 AC_CHECK_FUNCS(strchr strdup gettimeofday)
76 dnl Checks where the m17n database is installed.
78 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
79 if test "x$HAVE_M17N_DB" = "xyes"; then
82 M17NDIR="${datadir}/m17n"
86 dnl Checks which levels of APIs should be compiled.
89 AS_HELP_STRING([--with-gui],[with GUI level APIs (default is YES)]))
91 AM_CONDITIONAL(WITH_GUI, test x$with_gui != xno)
93 if test x$with_gui != xno; then
95 dnl Checks if dlopen exists, and if it's in libc or libdl.
97 AC_SEARCH_LIBS(dlopen, dl,
98 AC_DEFINE(HAVE_DLOPEN, 1,
99 [Define to 1 if you have the function dlopen.]))
101 dnl Check several libraries without adding -lxxx to LIBS, without
102 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
103 dnl some libraries (e.g. libm17n-X.so). Instead, define XXX_LD_FLAGS
104 dnl and HAVE_XXX if library XXX is available. CPPFLAGS will be
109 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
111 if test "x$no_x" != "xyes"; then
112 AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11.])
113 X11_LD_FLAGS="-lXt -lX11"
114 M17N_EXT_LIBS="$M17N_EXT_LIBS X11"
116 if test "x$HAVE_XAW" = "xyes"; then
117 AC_DEFINE(HAVE_X11_XAW_COMMAND_H, 1,
118 [Define to 1 if you have the Xaw header files.])
119 XAW_LD_FLAGS="-lXaw -lXmu"
120 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_X11_XAW_COMMAND_H"
121 M17N_EXT_LIBS="$M17N_EXT_LIBS Xaw"
124 AC_SUBST(X11_LD_FLAGS)
125 AC_SUBST(XAW_LD_FLAGS)
127 dnl Check for fribidi library.
128 save_CPPFLAGS="$CPPFLAGS"
130 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
131 if test "x$HAVE_FRIBIDI_CONFIG" = "xyes"; then
132 CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
133 FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
134 LIBS="$LIBS $FRIBIDI_LD_FLAGS"
136 FRIBIDI_LD_FLAGS=-lfribidi
138 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
139 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
140 if test "x$HAVE_FRIBIDI" = "xyes"; then
141 AC_DEFINE(HAVE_FRIBIDI, 1,
142 [Define to 1 if you have Fribidi library and header file.])
143 M17N_EXT_LIBS="$M17N_EXT_LIBS fribidi"
145 CPPFLAGS="$save_CPPFLAGS"
149 AC_SUBST(FRIBIDI_LD_FLAGS)
151 dnl Check for otflib usability.
153 AS_HELP_STRING([--with-libotf],[with OpenType font suport (default is YES)]))
155 if test "x$with_libotf" != "xno"; then
156 save_CPPFLAGS="$CPPFLAGS"
158 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
159 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
160 CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
161 OTF_LD_FLAGS="`libotf-config --libs`"
162 LIBS="$LIBS $OTF_LD_FLAGS"
166 ## We check the availability of OTF_check_features
167 ## because we need libotf-0.9.4 or the later.
168 AC_CHECK_LIB(otf, OTF_check_features, HAVE_OTF=yes, HAVE_OTF=no)
169 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
170 if test "x$HAVE_OTF" = "xyes"; then
171 AC_DEFINE(HAVE_OTF, 1,
172 [Define to 1 if you have OTF library and header file.])
173 M17N_EXT_LIBS="$M17N_EXT_LIBS libotf"
174 AC_CHECK_LIB(otf, OTF_drive_gpos2, HAVE_OTF_DRIVE_GPOS2=yes,
175 HAVE_OTF_DRIVE_GPOS2=no)
176 if test "x$HAVE_OTF_DRIVE_GPOS2" = "xyes"; then
177 AC_DEFINE(HAVE_OTF_DRIVE_GPOS2, 1,
178 [Define to 1 if the OTF library has OTF_drive_gpos2().])
181 CPPFLAGS="$save_CPPFLAGS"
186 AC_SUBST(OTF_LD_FLAGS)
188 dnl Check for Freetype2 usability.
189 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
190 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
191 FREETYPE_INC=`freetype-config --cflags`
192 save_CPPFLAGS="$CPPFLAGS"
193 CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
194 AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
195 HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
196 if test "x$HAVE_FREETYPE" = "xyes" ; then
198 LIBS="$LIBS `freetype-config --libs`"
199 AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
202 if test "x$HAVE_FREETYPE" = "xyes"; then
203 FREETYPE_LD_FLAGS=`freetype-config --libs`
204 AC_DEFINE(HAVE_FREETYPE, 1,
205 [Define to 1 if you have FreeType library and header file.])
206 M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
207 AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
208 [#include <ft2build.h>
209 #include FT_FREETYPE_H])
210 if test "x$HAVE_FTBDF_H" = "xyes"; then
211 AC_DEFINE(HAVE_FTBDF_H, 1,
212 [Define to 1 if you have freetype/ftbdf.h.])
214 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
218 AC_SUBST(FREETYPE_LD_FLAGS)
220 dnl Check for Xft2 usability.
221 save_CPPFLAGS="$CPPFLAGS"
223 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
224 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
225 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
226 CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
227 XFT2_LD_FLAGS="`xft-config --libs`"
228 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
229 if pkg-config xft ; then
230 CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
231 XFT2_LD_FLAGS="`pkg-config --libs xft`"
234 LIBS="$LIBS $XFT2_LD_FLAGS"
235 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
236 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no,
237 [#include <X11/Xft/Xft.h>
238 #if XftVersion >= 20000
240 Version too old. Compiling this line should fail.
242 if test "x$HAVE_XFT2" = "xyes"; then
243 AC_DEFINE(HAVE_XFT2, 1,
244 [Define to 1 if you have Xft2 library and header file.])
245 M17N_EXT_LIBS="$M17N_EXT_LIBS xft2"
248 CPPFLAGS="$save_CPPFLAGS"
251 AC_SUBST(XFT2_LD_FLAGS)
253 dnl Check for fontconfig usability.
254 AC_ARG_WITH(fontconfig,
255 AS_HELP_STRING([--with-fontconfig],[with FontConfig library (default is YES)]))
256 if test "x$with_fontconfig" != "xno"; then
257 save_CPPFLAGS="$CPPFLAGS"
259 FONTCONFIG_LD_FLAGS=-lfontconfig
260 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
261 if pkg-config --exists fontconfig; then
262 CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
263 FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
264 LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
267 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
268 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
269 if test "x$HAVE_FONTCONFIG" = "xyes"; then
270 AC_DEFINE(HAVE_FONTCONFIG, 1,
271 [Define to 1 if you have fontconfig library and header file.])
272 M17N_EXT_LIBS="$M17N_EXT_LIBS fontconfig"
275 CPPFLAGS="$save_CPPFLAGS"
279 AC_SUBST(FONTCONFIG_LD_FLAGS)
281 dnl Check for gdlib usability.
283 AS_HELP_STRING([--with-gd],[suport graphic device by GD library (default is YES)]))
285 if test "x$with_gd" != "xno"; then
287 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
288 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
289 if test "x$HAVE_GD" = "xyes"; then
290 AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
291 AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
292 [Define to 1 or 2 if you have gd library and header file.])
293 M17N_EXT_LIBS="$M17N_EXT_LIBS gdlib"
295 CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_GD=$HAVE_GD"
299 AC_SUBST(GD_LD_FLAGS)
303 dnl Check for libxml2 usability.
304 save_CPPFLAGS="$CPPFLAGS"
306 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
307 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
308 CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
309 XML2_LD_FLAGS="`xml2-config --libs`"
310 LIBS="$LIBS $XML2_LD_FLAGS"
312 CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
313 XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
315 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
316 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
317 if test "x$HAVE_XML2" = "xyes"; then
318 AC_DEFINE(HAVE_XML2, 1,
319 [Define to 1 if you have libxml2 library and header file])
320 M17N_EXT_LIBS="$M17N_EXT_LIBS xml2"
323 CPPFLAGS="$save_CPPFLAGS"
326 AC_SUBST(XML2_LD_FLAGS)
328 dnl Check for Anthy usability.
330 PKG_CHECK_MODULES(ANTHY, anthy, HAVE_ANTHY=yes, HAVE_ANTHY=no)
331 if test "x$HAVE_ANTHY" = "xyes"; then
332 AC_DEFINE(HAVE_ANTHY, 1,
333 [Define to 1 if you have Anthy library and header file])
334 M17N_EXT_LIBS="$M17N_EXT_LIBS anthy"
335 ANTHY_LD_FLAGS="$ANTHY_LIBS"
336 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_PREPROC_IFELSE([AC_LANG_SOURCE([[#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_PREPROC_IFELSE([AC_LANG_SOURCE([[#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 po/Makefile.in intl/Makefile
445 dnl if test "x$XOM" = "xyes"; then
446 dnl AC_CONFIG_FILES(omM17N/Makefile)
451 echo "The m17n library is configured with these external libraries."
452 echo " $M17N_EXT_LIBS"
455 dnl comment-start: "dnl "
457 dnl comment-start-skip: "\\bdnl\\b\\s *"