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