If libotf is not available, clear OTF_LD_FLAGS.
[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   OTF_LD_FLAGS=
114 fi
115 LIBS="$save_LIBS"
116 AC_SUBST(OTF_LD_FLAGS)
117
118 # Check for Freetype2 usability.
119 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
120 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
121   FREETYPE_INC=`freetype-config --cflags`
122   save_CPPFLAGS="$CPPFLAGS"
123   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
124   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
125                               HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
126   if test "x$HAVE_FREETYPE" = "xyes" ; then
127     save_LIBS="$LIBS"
128     LIBS="$LIBS `freetype-config --libs`"
129     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
130                                              HAVE_FREETYPE=no)
131     LIBS="$save_LIBS"
132     if test "x$HAVE_FREETYPE" = "xyes"; then
133       FREETYPE_LD_FLAGS=`freetype-config --libtool`
134       AC_DEFINE(HAVE_FREETYPE, 1, 
135                 [Define to 1 if you have FreeType library and header file.])
136     fi
137   fi
138 fi
139 AC_SUBST(FREETYPE_LD_FLAGS)
140
141 # Check for Xft2 usability.
142 save_CPPFLAGS="$CPPFLAGS"
143 save_LIBS="$LIBS"
144 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
145 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
146   CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
147   XFT2_LD_FLAGS="`xft-config --libs`"
148   LIBS="$LIBS $XFT2_LD_FLAGS"
149 else
150   XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
151 fi
152 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
153 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
154                 [#include <X11/Xft/Xft.h>
155 #if XftVersion >= 20000
156 #else
157 Version too old.  Compiling this line should fail.
158 #endif])
159 if test "x$HAVE_XFT2" = "xyes"; then
160   AC_DEFINE(HAVE_XFT2, 1,
161             [Define to 1 if you have Xft2 library and header file.])
162 else
163   CPPFLAGS="$save_CPPFLAGS"
164 fi
165 LIBS="$save_LIBS"
166 AC_SUBST(XFT2_LD_FLAGS)
167
168 # Check for fontconfig usability.
169 save_CPPFLAGS="$CPPFLAGS"
170 save_LIBS="$LIBS"
171 if test "x$HAVE_XFT2" = "xyes"; then
172   HAVE_FONTCONFIG=yes
173 else
174   AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
175   FONTCONFIG_LD_FLAGS=-lfontconfig
176   if test "x$HAVE_PKG_CONFIG" = "xyes"; then
177     if pkg-config --exists fontconfig; then
178       CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
179       FONTCONFIG_LD_FLAGS="`pkg-conifg --libs fontconfig`"
180       LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
181     fi
182   fi
183   AC_CHECK_LIB(fontconfig, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
184   AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
185 fi
186 if test "x$HAVE_FONTCONFIG" = "xyes"; then
187   AC_DEFINE(HAVE_FONTCONFIG, 1,
188               [Define to 1 if you have fontconfig library and header file.])
189 else
190   FONTCONFIG_LD_FLAGS=
191   CPPFLAGS="$save_CPPFLAGS"
192 fi
193 LIBS="$save_LIBS"
194 AC_SUBST(FONTCONFIG_LD_FLAGS)
195
196 # Check for libxml2 usability.
197 save_CPPFLAGS="$CPPFLAGS"
198 save_LIBS="$LIBS"
199 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
200 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
201   CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
202   XML2_LD_FLAGS="`xml2-config --libs`"
203   LIBS="$LIBS $XML2_LD_FLAGS"
204 else
205   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
206   XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
207 fi
208 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
209 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
210 if test "x$HAVE_XML2" = "xyes"; then
211   AC_DEFINE(HAVE_XML2, 1,
212             [Define to 1 if you have libxml2 library and header file])
213 else
214   CPPFLAGS="$save_CPPFLAGS"
215 fi
216 LIBS="$save_LIBS"
217 AC_SUBST(XML2_LD_FLAGS)
218
219 # Check for Anthy usability.
220 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
221 if test "x$HAVE_ANTHY" = "xyes"; then
222   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
223   if test "x$HAVE_ANTHY" = "xyes"; then
224     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
225     if test "x$HAVE_ANTHY" = "xyes"; then
226     AC_DEFINE(HAVE_ANTHY, 1,
227               [Define to 1 if you have Anthy library and header file])
228     ANTHY_LD_FLAGS="-lanthy -lanthydic"
229     fi
230   fi
231 fi
232 AC_SUBST(ANTHY_LD_FLAGS)
233
234 # Check for Ispell usability.
235 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
236 if test "x$HAVE_ISPELL" = "xyes"; then
237   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
238 fi
239
240 # Check for libwordcut (for Thai).
241 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
242 if test "x$HAVE_WORDCUT" = "xyes"; then
243   if test -f "/usr/share/wordcut/tdict.wcd"; then
244     tdict="/usr/share/wordcut/tdict.wcd"
245   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
246     tdict="/usr/local/share/wordcut/tdict.wcd"
247   fi
248   echo "TDICT=$tdict"
249   if test "x$tdict" != "x"; then
250     AC_DEFINE(HAVE_WORDCUT, 1,
251               [Define if you have the wordcut library and header file])
252     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
253     WORDCUT_LD_FLAGS=-lwordcut
254   fi
255 fi
256 AC_SUBST(WORDCUT_LD_FLAGS)
257
258 dnl AC_ARG_ENABLE(xom, 
259 dnl           [  --enable-xom            build and install XOM library.],
260 dnl           XOM="$enableval")
261
262 case $host_os in
263 darwin* | rhapsody*)
264   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
265             [Define to loadable module extention]);;
266 esac
267
268 AC_CONFIG_FILES([Makefile
269                  src/Makefile
270                  example/Makefile
271                  m17n-config
272                  ])
273
274 dnl if test "x$XOM" = "xyes"; then
275 dnl  AC_CONFIG_FILES(omM17N/Makefile)
276 dnl fi
277
278 AC_OUTPUT
279
280 dnl Local Variables:
281 dnl comment-start: "dnl "
282 dnl comment-end: ""
283 dnl comment-start-skip: "\\bdnl\\b\\s *"
284 dnl End: