0c81d85f0b2cce8b4900055352f76095871caab1
[m17n/m17n-lib.git] / configure.ac
1 dnl configure.ac -- autoconf script for the m17n library.
2
3 dnl Copyright (C) 2003, 2004
4 dnl   National Institute of Advanced Industrial Science and Technology (AIST)
5 dnl   Registration Number H15PRO112
6
7 dnl This file is part of the m17n library.
8
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.
13
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.
18
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
22 dnl 02111-1307, USA.
23
24 dnl Process this file with autoconf to produce a configure script.
25
26 AC_INIT(m17n-lib, 1.1.0, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.1.0)
28 AM_CONFIG_HEADER(src/config.h)
29
30 API_VERSION=1:0:1
31 AC_SUBST(API_VERSION)
32
33 # Checks for programs for compiling.
34 AC_PROG_CC
35 AC_LIBTOOL_DLOPEN
36 AC_LIBLTDL_CONVENIENCE
37 AM_PROG_LIBTOOL
38
39 # Checks for X libraries.
40 AC_PATH_XTRA
41
42 # Checks for standard header files.
43 AC_HEADER_STDC
44 AC_HEADER_DIRENT
45 AC_HEADER_TIME
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
49 # Checks for typedefs, structures, and compiler characteristics.
50 AC_C_CONST
51 AC_C_INLINE
52 AC_TYPE_SIZE_T
53 AC_STRUCT_TM
54
55 # Checks for endian.  This influence the default UTF-16 definition.
56 AC_C_BIGENDIAN
57
58 # Checks for library functions.
59 AC_FUNC_ALLOCA
60 AC_FUNC_MALLOC
61 AC_FUNC_REALLOC
62 AC_FUNC_MEMCMP
63 AC_FUNC_STAT
64 AC_FUNC_STRCOLL
65 AC_FUNC_STRFTIME
66 AC_FUNC_STRTOD
67 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
68 AC_CHECK_FUNCS(strchr strdup gettimeofday)
69
70 # Check several libraries without adding -lxxx to LIBS, without
71 # defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only for
72 # libm17-X.so.  Instead, define XXX_LD_FLAGS and HAVE_XXX if library
73 # XXX is available.  CPPFLAGS will be augmented.
74
75 # Check for fribidi library.
76 save_CPPFLAGS="$CPPFLAGS"
77 save_LIBS="$LIBS"
78 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
79 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
80   CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
81   FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
82   LIBS="$LIBS $FRIBIDI_LD_FLAGS"
83 else
84   FRIBIDI_LD_FLAGS=-lfribidi
85 fi
86 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
87 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
88 if test "x$HAVE_FRIBIDI" = "xyes"; then
89   AC_DEFINE(HAVE_FRIBIDI, 1, 
90             [Define to 1 if you have Fribidi library and header file.])
91 else
92   CPPFLAGS="$save_CPPFLAGS"
93   FRIBIDI_LD_FLAGS=
94 fi
95 LIBS="$save_LIBS"
96 AC_SUBST(FRIBIDI_LD_FLAGS)
97
98 # Check for otflib usability.
99 save_CPPFLAGS="$CPPFLAGS"
100 save_LIBS="$LIBS"
101 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
102 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
103   CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
104   OTF_LD_FLAGS="`libotf-config --libs`  "
105   LIBS="$LIBS $OTF_LD_FLAGS"
106 else
107   OTF_LD_FLAGS=-lotf
108 fi
109 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
110 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
111 CPPFLAGS="$save_CPPFLAGS"
112 if test "x$HAVE_OTF" = "xyes"; then
113   AC_DEFINE(HAVE_OTF, 1, 
114             [Define to 1 if you have OTF library and header file.])
115 else
116   CPPFLAGS="$save_CPPFLAGS"
117   OTF_LD_FLAGS=
118 fi
119 LIBS="$save_LIBS"
120 AC_SUBST(OTF_LD_FLAGS)
121
122 # Check for Freetype2 usability.
123 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
124 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
125   FREETYPE_INC=`freetype-config --cflags`
126   save_CPPFLAGS="$CPPFLAGS"
127   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
128   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
129                               HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
130   if test "x$HAVE_FREETYPE" = "xyes" ; then
131     save_LIBS="$LIBS"
132     LIBS="$LIBS `freetype-config --libs`"
133     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
134                                              HAVE_FREETYPE=no)
135     LIBS="$save_LIBS"
136     if test "x$HAVE_FREETYPE" = "xyes"; then
137       FREETYPE_LD_FLAGS=`freetype-config --libtool`
138       AC_DEFINE(HAVE_FREETYPE, 1, 
139                 [Define to 1 if you have FreeType library and header file.])
140     fi
141   fi
142 fi
143 AC_SUBST(FREETYPE_LD_FLAGS)
144
145 # Check for Xft2 usability.
146 save_CPPFLAGS="$CPPFLAGS"
147 save_LIBS="$LIBS"
148 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
149 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
150   CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
151   XFT2_LD_FLAGS="`xft-config --libs`"
152   LIBS="$LIBS $XFT2_LD_FLAGS"
153 else
154   XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
155 fi
156 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
157 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
158                 [#include <X11/Xft/Xft.h>
159 #if XftVersion >= 20000
160 #else
161 Version too old.  Compiling this line should fail.
162 #endif])
163 if test "x$HAVE_XFT2" = "xyes"; then
164   AC_DEFINE(HAVE_XFT2, 1,
165             [Define to 1 if you have Xft2 library and header file.])
166 else
167   XFT2_LD_FLAGS=
168   CPPFLAGS="$save_CPPFLAGS"
169 fi
170 LIBS="$save_LIBS"
171 AC_SUBST(XFT2_LD_FLAGS)
172
173 # Check for fontconfig usability.
174 save_CPPFLAGS="$CPPFLAGS"
175 save_LIBS="$LIBS"
176 FONTCONFIG_LD_FLAGS=-lfontconfig
177 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
178 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
179   if pkg-config --exists fontconfig; then
180     CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
181     FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
182     LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
183   fi
184 fi
185 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
186 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
187 if test "x$HAVE_FONTCONFIG" = "xyes"; then
188   AC_DEFINE(HAVE_FONTCONFIG, 1,
189               [Define to 1 if you have fontconfig library and header file.])
190 else
191   FONTCONFIG_LD_FLAGS=
192   CPPFLAGS="$save_CPPFLAGS"
193 fi
194 LIBS="$save_LIBS"
195 AC_SUBST(FONTCONFIG_LD_FLAGS)
196
197 # Check for gdlib usability.
198 save_LIBS="$LIBS"
199 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
200 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
201 if test "x$HAVE_GD" = "xyes"; then
202   AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
203   AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
204             [Define to 1 if you have gd library and header file.])
205   GD_LD_FLAGS=-lgd
206 fi
207 LIBS="$save_LIBS"
208 AC_SUBST(GD_LD_FLAGS)
209
210 # Check for libxml2 usability.
211 save_CPPFLAGS="$CPPFLAGS"
212 save_LIBS="$LIBS"
213 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
214 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
215   CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
216   XML2_LD_FLAGS="`xml2-config --libs`"
217   LIBS="$LIBS $XML2_LD_FLAGS"
218 else
219   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
220   XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
221 fi
222 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
223 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
224 if test "x$HAVE_XML2" = "xyes"; then
225   AC_DEFINE(HAVE_XML2, 1,
226             [Define to 1 if you have libxml2 library and header file])
227 else
228   XML2_LD_FLAGS=
229   CPPFLAGS="$save_CPPFLAGS"
230 fi
231 LIBS="$save_LIBS"
232 AC_SUBST(XML2_LD_FLAGS)
233
234 # Check for Anthy usability.
235 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
236 if test "x$HAVE_ANTHY" = "xyes"; then
237   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
238   if test "x$HAVE_ANTHY" = "xyes"; then
239     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
240     if test "x$HAVE_ANTHY" = "xyes"; then
241     AC_DEFINE(HAVE_ANTHY, 1,
242               [Define to 1 if you have Anthy library and header file])
243     ANTHY_LD_FLAGS="-lanthy -lanthydic"
244     fi
245   fi
246 fi
247 AC_SUBST(ANTHY_LD_FLAGS)
248
249 # Check for Ispell usability.
250 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
251 if test "x$HAVE_ISPELL" = "xyes"; then
252   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
253 fi
254
255 # Check for libwordcut (for Thai).
256 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
257 if test "x$HAVE_WORDCUT" = "xyes"; then
258   if test -f "/usr/share/wordcut/tdict.wcd"; then
259     tdict="/usr/share/wordcut/tdict.wcd"
260   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
261     tdict="/usr/local/share/wordcut/tdict.wcd"
262   fi
263   echo "TDICT=$tdict"
264   if test "x$tdict" != "x"; then
265     AC_DEFINE(HAVE_WORDCUT, 1,
266               [Define if you have the wordcut library and header file])
267     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
268     WORDCUT_LD_FLAGS=-lwordcut
269   fi
270 fi
271 AC_SUBST(WORDCUT_LD_FLAGS)
272
273 dnl AC_ARG_ENABLE(xom, 
274 dnl           [  --enable-xom            build and install XOM library.],
275 dnl           XOM="$enableval")
276
277 case $host_os in
278 darwin* | rhapsody*)
279   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
280             [Define to loadable module extention]);;
281 esac
282
283 AC_CONFIG_FILES([Makefile
284                  src/Makefile
285                  example/Makefile
286                  m17n-config
287                  ])
288
289 dnl if test "x$XOM" = "xyes"; then
290 dnl  AC_CONFIG_FILES(omM17N/Makefile)
291 dnl fi
292
293 AC_OUTPUT
294
295 dnl Local Variables:
296 dnl comment-start: "dnl "
297 dnl comment-end: ""
298 dnl comment-start-skip: "\\bdnl\\b\\s *"
299 dnl End: