Use fribidi-config and xft-config if they are
[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.0.2, m17n-lib-bug@m17n.org)
27 AM_INIT_AUTOMAKE(m17n-lib, 1.0.2)
28 AM_CONFIG_HEADER(src/config.h)
29
30 # Checks for programs for compiling.
31 AC_PROG_CC
32 AC_LIBTOOL_DLOPEN
33 AC_LIBLTDL_CONVENIENCE
34 AM_PROG_LIBTOOL
35
36 # Checks for X libraries.
37 AC_PATH_XTRA
38
39 # Checks for standard header files.
40 AC_HEADER_STDC
41 AC_HEADER_DIRENT
42 AC_HEADER_TIME
43 AC_CHECK_HEADERS([fcntl.h langinfo.h limits.h locale.h stdlib.h \
44                           string.h strings.h sys/time.h unistd.h])
45
46 # Checks for typedefs, structures, and compiler characteristics.
47 AC_C_CONST
48 AC_C_INLINE
49 AC_TYPE_SIZE_T
50 AC_STRUCT_TM
51
52 # Checks for endian.  This influence the default UTF-16 definition.
53 AC_C_BIGENDIAN
54
55 # Checks for library functions.
56 AC_FUNC_ALLOCA
57 AC_FUNC_MALLOC
58 AC_FUNC_REALLOC
59 AC_FUNC_MEMCMP
60 AC_FUNC_STAT
61 AC_FUNC_STRCOLL
62 AC_FUNC_STRFTIME
63 AC_FUNC_STRTOD
64 AC_CHECK_FUNCS(memmove memset nl_langinfo putenv regcomp setlocale)
65 AC_CHECK_FUNCS(strchr strdup gettimeofday)
66
67 # Check several libraries without adding -lxxx to LIBS, without
68 # defining HAVE_LIBXXX nor HAVE_XXX_H because they are used only for
69 # libm17-X.so.  Instead, define XXX_LD_FLAGS and HAVE_XXX if library
70 # XXX is available.  CPPFLAGS will be augmented.
71
72 # Check for fribidi library.
73 save_CPPFLAGS="$CPPFLAGS"
74 save_LIBS="$LIBS"
75 AC_CHECK_PROG(HAVE_FRIBIDI_CONFIG, fribidi-config, yes)
76 if test "$HAVE_FRIBIDI_CONFIG" = "xyes"; then
77   CPPFLAGS="$CPPFLAGS `fribidi-config --cflags`"
78   FRIBIDI_LD_FLAGS="`fribidi-config --libs`"
79   LIBS="$LIBS $FRIBIDI_LD_FLAGS"
80 else
81   FRIBIDI_LD_FLAGS=-lfribidi
82 fi
83 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
84 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
85 if test "x$HAVE_FRIBIDI" = "xyes"; then
86   AC_DEFINE(HAVE_FRIBIDI, 1, 
87             [Define to 1 if you have Fribidi library and header file.])
88 else
89   CPPFLAGS="$save_CPPFLAGS"
90 fi
91 LIBS="$save_LIBS"
92 AC_SUBST(FRIBIDI_LD_FLAGS)
93
94 # Check for otflib usability.
95 save_CPPFLAGS="$CPPFLAGS"
96 save_LIBS="$LIBS"
97 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
98 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
99   CPPFLAGS="$CPPFLAGS `libotf-config --cflags`"
100   OTF_LD_FLAGS="`libotf-config --libs`  "
101   LIBS="$LIBS $OTF_LD_FLAGS"
102 else
103   OTF_LD_FLAGS=-lotf
104 fi
105 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
106 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
107 CPPFLAGS=$save_CPPFLAGS
108 if test "x$HAVE_OTF" = "xyes"; then
109   AC_DEFINE(HAVE_OTF, 1, 
110             [Define to 1 if you have OTF library and header file.])
111 else
112   CPPFLAGS="$save_CPPFLAGS"
113 fi
114 LIBS="$save_LIBS"
115 AC_SUBST(OTF_LD_FLAGS)
116
117 # Check for Freetype2 usability.
118 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
119 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
120   FREETYPE_INC=`freetype-config --cflags`
121   save_CPPFLAGS=$CPPFLAGS
122   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
123   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
124                               HAVE_FREETYPE=no CPPFLAGS=$save_CPPFLAGS)
125   if test "x$HAVE_FREETYPE" = "xyes" ; then
126     save_LIBS=$LIBS
127     LIBS="$LIBS `freetype-config --libs`"
128     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
129                                              HAVE_FREETYPE=no)
130     LIBS=$save_LIBS
131     if test "x$HAVE_FREETYPE" = "xyes"; then
132       FREETYPE_LD_FLAGS=`freetype-config --libtool`
133       AC_DEFINE(HAVE_FREETYPE, 1, 
134                 [Define to 1 if you have FreeType library and header file.])
135     fi
136   fi
137 fi
138 AC_SUBST(FREETYPE_LD_FLAGS)
139
140 # Check for Xft2 usability.
141 save_CPPFLAGS="$CPPFLAGS"
142 save_LIBS="$LIBS"
143 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
144 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
145   CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
146   XFT2_LD_FLAGS="`xft-config --libs`"
147   LIBS="$LIBS $XFT2_LD_FLAGS"
148 fi
149 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
150 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
151                 [#include <X11/Xft/Xft.h>
152 #if XftVersion >= 20000
153 #else
154 Version too old.  Compiling this line should fail.
155 #endif])
156 if test "x$HAVE_XFT2" = "xyes"; then
157   AC_DEFINE(HAVE_XFT2, 1,
158             [Define to 1 if you have Xft2 library and header file.])
159 else
160   CPPFLAGS="$save_CPPFLAGS"
161 fi
162 LIBS="$save_LIBS"
163 AC_SUBST(XFT2_LD_FLAGS)
164
165 # Check for libxml2 usability.
166 save_CPPFLAGS="$CPPFLAGS"
167 save_LIBS="$LIBS"
168 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
169 if test "x$HAVE_XML2" = "xyes"; then
170   CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
171   XML2_LD_FLAGS="`xml2-config --libs`"
172   LIBS="$LIBS $XML2_LD_FLAGS"
173 else
174   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
175   XML2_LD_FLAGS="-lxml2 -lz -m"
176 fi
177 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
178 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
179 if test "x$HAVE_XML2" = "xyes"; then
180   AC_DEFINE(HAVE_XML2, 1,
181             [Define to 1 if you have libxml2 library and header file])
182 else
183   CPPFLAGS="$save_CPPFLAGS"
184 fi
185 LIBS="$save_LIBS"
186 AC_SUBST(XML2_LD_FLAGS)
187
188 # Check for Anthy usability.
189 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
190 if test "x$HAVE_ANTHY" = "xyes"; then
191   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
192   if test "x$HAVE_ANTHY" = "xyes"; then
193     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
194     if test "x$HAVE_ANTHY" = "xyes"; then
195     AC_DEFINE(HAVE_ANTHY, 1,
196               [Define to 1 if you have Anthy library and header file])
197     ANTHY_LD_FLAGS="-lanthy -lanthydic"
198     fi
199   fi
200 fi
201 AC_SUBST(ANTHY_LD_FLAGS)
202
203 # Check for Ispell usability.
204 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
205 if test "x$HAVE_ISPELL" = "xyes"; then
206   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
207 fi
208
209 # Check for libwordcut (for Thai).
210 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
211 if test "x$HAVE_WORDCUT" = "xyes"; then
212   if test -f "/usr/share/wordcut/tdict.wcd"; then
213     tdict="/usr/share/wordcut/tdict.wcd"
214   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
215     tdict="/usr/local/share/wordcut/tdict.wcd"
216   fi
217   echo "TDICT=$tdict"
218   if test "x$tdict" != "x"; then
219     AC_DEFINE(HAVE_WORDCUT, 1,
220               [Define if you have the wordcut library and header file])
221     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
222     WORDCUT_LD_FLAGS=-lwordcut
223   fi
224 fi
225 AC_SUBST(WORDCUT_LD_FLAGS)
226
227 AC_ARG_ENABLE(xom, 
228               [  --enable-xom            build and install XOM library.],
229               XOM="$enableval")
230
231 AC_ARG_WITH(efence,
232             [  --with-efence           build example programs with efence.],
233             EFENCE="$withval")
234 AC_CHECK_LIB(efence, malloc, HAVE_EFENCE=yes)
235
236 if test "x$EFENCE" = "xyes" && test "x$HAVE_EFENCE" = "xyes"; then
237   EFENCE_LIB=-lefence
238 fi
239 AC_SUBST(EFENCE_LIB)
240
241 case $host_os in
242 darwin* | rhapsody*)
243   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
244             [Define to loadable module extention]);;
245 esac
246
247 AC_CONFIG_FILES([Makefile
248                  src/Makefile
249                  example/Makefile
250                  m17n-config
251                  ])
252
253 if test "x$XOM" = "xyes"; then
254   AC_CONFIG_FILES(omM17N/Makefile)
255 fi
256
257 AC_OUTPUT
258
259 dnl Local Variables:
260 dnl comment-start: "dnl "
261 dnl comment-end: ""
262 dnl comment-start-skip: "\\bdnl\\b\\s *"
263 dnl End: