Check if <freetype/ftbdf.h> is available or not.
[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 dnl Checks for programs for compiling.
34 AC_PROG_CC
35 AC_LIBTOOL_DLOPEN
36 AC_LIBLTDL_CONVENIENCE
37 AM_PROG_LIBTOOL
38
39 dnl Checks for X libraries.
40 AC_PATH_XTRA
41
42 dnl 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 dnl 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 dnl Checks for endian.  This influence the default UTF-16 definition.
56 AC_C_BIGENDIAN
57
58 dnl 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 dnl Checks where the m17n database is installed.
71
72 AC_CHECK_PROG(HAVE_M17N_DB, m17n-db, yes)
73 if test "x$HAVE_M17N_DB" = "xyes"; then
74   M17NDIR=`m17n-db`
75 else
76   M17NDIR="${datadir}/m17n"
77 fi
78 AC_SUBST(M17NDIR)
79
80
81 dnl Checks if dlopen exists, and if it's in libc or libdl.
82
83 AC_SEARCH_LIBS(dlopen, dl,
84                AC_DEFINE(HAVE_DLOPEN, 1,
85                [Define to 1 if you have the funciton dlopen.]))
86
87 dnl Check several libraries without adding -lxxx to LIBS, without
88 dnl defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only by
89 dnl some libraries (e.g. libm17n-X.so).  Instead, define XXX_LD_FLAGS
90 dnl and HAVE_XXX if library XXX is available.  CPPFLAGS will be
91 dnl augmented.
92
93 dnl Check for fribidi library.
94 save_CPPFLAGS="$CPPFLAGS"
95 save_LIBS="$LIBS"
96 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
97 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
98   CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
99   FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
100   LIBS="$LIBS $FRIBIDI_LD_FLAGS"
101 else
102   FRIBIDI_LD_FLAGS=-lfribidi
103 fi
104 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
105 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
106 if test "x$HAVE_FRIBIDI" = "xyes"; then
107   AC_DEFINE(HAVE_FRIBIDI, 1, 
108             [Define to 1 if you have Fribidi library and header file.])
109 else
110   CPPFLAGS="$save_CPPFLAGS"
111   FRIBIDI_LD_FLAGS=
112 fi
113 LIBS="$save_LIBS"
114 AC_SUBST(FRIBIDI_LD_FLAGS)
115
116 dnl Check for otflib usability.
117 save_CPPFLAGS="$CPPFLAGS"
118 save_LIBS="$LIBS"
119 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
120 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
121   CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
122   OTF_LD_FLAGS="`libotf-config --libs`  "
123   LIBS="$LIBS $OTF_LD_FLAGS"
124 else
125   OTF_LD_FLAGS=-lotf
126 fi
127 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
128 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
129 CPPFLAGS="$save_CPPFLAGS"
130 if test "x$HAVE_OTF" = "xyes"; then
131   AC_DEFINE(HAVE_OTF, 1, 
132             [Define to 1 if you have OTF library and header file.])
133 else
134   CPPFLAGS="$save_CPPFLAGS"
135   OTF_LD_FLAGS=
136 fi
137 LIBS="$save_LIBS"
138 AC_SUBST(OTF_LD_FLAGS)
139
140 dnl Check for Freetype2 usability.
141 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
142 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
143   FREETYPE_INC=`freetype-config --cflags`
144   save_CPPFLAGS="$CPPFLAGS"
145   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
146   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
147                               HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
148   if test "x$HAVE_FREETYPE" = "xyes" ; then
149     save_LIBS="$LIBS"
150     LIBS="$LIBS `freetype-config --libs`"
151     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
152                                              HAVE_FREETYPE=no)
153     LIBS="$save_LIBS"
154     if test "x$HAVE_FREETYPE" = "xyes"; then
155       FREETYPE_LD_FLAGS=`freetype-config --libs`
156       AC_DEFINE(HAVE_FREETYPE, 1, 
157                 [Define to 1 if you have FreeType library and header file.])
158       AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
159                       [#include <ft2build.h>
160 #include FT_FREETYPE_H])
161       if test "x$HAVE_FTBDF_H" = "xyes"; then
162         AC_DEFINE(HAVE_FTBDF_H, 1,
163                   [Define to 1 if you have freetype/ftbdf.h.])
164       fi
165     fi
166   fi
167 fi
168 AC_SUBST(FREETYPE_LD_FLAGS)
169
170 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
171
172 dnl Check for Xft2 usability.
173 save_CPPFLAGS="$CPPFLAGS"
174 save_LIBS="$LIBS"
175 XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
176 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
177 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
178   CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
179   XFT2_LD_FLAGS="`xft-config --libs`"
180 elif test "x$HAVE_PKG_CONFIG" = "xyes" ; then
181   if pkg-config xft ; then
182     CPPFLAGS="$CPPFLAGS `pkg-config --cflags xft`"
183     XFT2_LD_FLAGS="`pkg-config --libs xft`"
184   fi
185 fi
186 LIBS="$LIBS $XFT2_LD_FLAGS"
187 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
188 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
189                 [#include <X11/Xft/Xft.h>
190 #if XftVersion >= 20000
191 #else
192 Version too old.  Compiling this line should fail.
193 #endif])
194 if test "x$HAVE_XFT2" = "xyes"; then
195   AC_DEFINE(HAVE_XFT2, 1,
196             [Define to 1 if you have Xft2 library and header file.])
197 else
198   XFT2_LD_FLAGS=
199   CPPFLAGS="$save_CPPFLAGS"
200 fi
201 LIBS="$save_LIBS"
202 AC_SUBST(XFT2_LD_FLAGS)
203
204 dnl Check for fontconfig usability.
205 save_CPPFLAGS="$CPPFLAGS"
206 save_LIBS="$LIBS"
207 FONTCONFIG_LD_FLAGS=-lfontconfig
208 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
209   if pkg-config --exists fontconfig; then
210     CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
211     FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
212     LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
213   fi
214 fi
215 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
216 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
217 if test "x$HAVE_FONTCONFIG" = "xyes"; then
218   AC_DEFINE(HAVE_FONTCONFIG, 1,
219               [Define to 1 if you have fontconfig library and header file.])
220 else
221   FONTCONFIG_LD_FLAGS=
222   CPPFLAGS="$save_CPPFLAGS"
223 fi
224 LIBS="$save_LIBS"
225 AC_SUBST(FONTCONFIG_LD_FLAGS)
226
227 dnl Check for gdlib usability.
228 save_LIBS="$LIBS"
229 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
230 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
231 if test "x$HAVE_GD" = "xyes"; then
232   AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
233   AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
234             [Define to 1 if you have gd library and header file.])
235   GD_LD_FLAGS=-lgd
236 fi
237 LIBS="$save_LIBS"
238 AC_SUBST(GD_LD_FLAGS)
239
240 dnl Check for libxml2 usability.
241 save_CPPFLAGS="$CPPFLAGS"
242 save_LIBS="$LIBS"
243 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
244 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
245   CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
246   XML2_LD_FLAGS="`xml2-config --libs`"
247   LIBS="$LIBS $XML2_LD_FLAGS"
248 else
249   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
250   XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
251 fi
252 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
253 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
254 if test "x$HAVE_XML2" = "xyes"; then
255   AC_DEFINE(HAVE_XML2, 1,
256             [Define to 1 if you have libxml2 library and header file])
257 else
258   XML2_LD_FLAGS=
259   CPPFLAGS="$save_CPPFLAGS"
260 fi
261 LIBS="$save_LIBS"
262 AC_SUBST(XML2_LD_FLAGS)
263
264 dnl Check for Anthy usability.
265 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
266 if test "x$HAVE_ANTHY" = "xyes"; then
267   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
268   if test "x$HAVE_ANTHY" = "xyes"; then
269     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
270     if test "x$HAVE_ANTHY" = "xyes"; then
271     AC_DEFINE(HAVE_ANTHY, 1,
272               [Define to 1 if you have Anthy library and header file])
273     ANTHY_LD_FLAGS="-lanthy -lanthydic"
274     fi
275   fi
276 fi
277 AC_SUBST(ANTHY_LD_FLAGS)
278
279 dnl Check for Ispell usability.
280 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
281 if test "x$HAVE_ISPELL" = "xyes"; then
282   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
283 fi
284
285 dnl Check for libwordcut (for Thai).
286 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
287 if test "x$HAVE_WORDCUT" = "xyes"; then
288   if test -f "/usr/share/wordcut/tdict.wcd"; then
289     tdict="/usr/share/wordcut/tdict.wcd"
290   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
291     tdict="/usr/local/share/wordcut/tdict.wcd"
292   fi
293   echo "TDICT=$tdict"
294   if test "x$tdict" != "x"; then
295     AC_DEFINE(HAVE_WORDCUT, 1,
296               [Define if you have the wordcut library and header file])
297     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
298     WORDCUT_LD_FLAGS=-lwordcut
299   fi
300 fi
301 AC_SUBST(WORDCUT_LD_FLAGS)
302
303 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
304 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
305 dnl inclusion of an incorrect header file.  So, append X_CFLAGS to
306 dnl CPPFLAGS here directly.
307
308 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
309
310 dnl AC_ARG_ENABLE(xom, 
311 dnl           [  --enable-xom            build and install XOM library.],
312 dnl           XOM="$enableval")
313
314 case $host_os in
315 darwin* | rhapsody*)
316   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
317             [Define to loadable module extention]);;
318 esac
319
320 AC_CONFIG_FILES([Makefile
321                  src/Makefile
322                  example/Makefile
323                  m17n-config
324                  m17n-core.pc
325                  m17n-shell.pc
326                  m17n-gui.pc
327                  ])
328
329 dnl if test "x$XOM" = "xyes"; then
330 dnl  AC_CONFIG_FILES(omM17N/Makefile)
331 dnl fi
332
333 AC_OUTPUT
334
335 dnl Local Variables:
336 dnl comment-start: "dnl "
337 dnl comment-end: ""
338 dnl comment-start-skip: "\\bdnl\\b\\s *"
339 dnl End: