Check if Xft2 library is available.
[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.  Instead, define XXX_LD_FLAGS
69 # and HAVE_XXX if library XXX is available.
70
71 # Check for fribidi library.
72 AC_CHECK_LIB(fribidi, fribidi_set_mirroring, HAVE_FRIBIDI=yes, HAVE_FRIBIDI=no)
73 AC_CHECK_HEADER(fribidi/fribidi.h,, HAVE_FRIBIDI=no)
74 if test "x$HAVE_FRIBIDI" = "xyes"; then
75   AC_DEFINE(HAVE_FRIBIDI, 1, 
76             [Define to 1 if you have Fribidi library and header file.])
77   FRIBIDI_LD_FLAGS="-lfribidi";
78 fi
79 AC_SUBST(FRIBIDI_LD_FLAGS)
80
81 # Check for otflib usability.
82 AC_CHECK_LIB(otf, OTF_open, HAVE_OTF=yes, HAVE_OTF=no)
83 save_CPPFLAGS=$CPPFLAGS
84 AC_CHECK_PROG(HAVE_OTFLIB_CONFIG, libotf-config, yes)
85 if test "x$HAVE_OTFLIB_CONFIG" = "xyes"; then
86   OTFLIB_INC=`libotf-config --cflags`
87   CPPFLAGS="$CPPFLAGS $OTFLIB_INC"
88 fi
89 AC_CHECK_HEADER(otf.h,, HAVE_OTF=no)
90 CPPFLAGS=$save_CPPFLAGS
91 if test "x$HAVE_OTF" = "xyes"; then
92   AC_DEFINE(HAVE_OTF, 1, 
93             [Define to 1 if you have OTF library and header file.])
94   OTF_LD_FLAGS=`libotf-config --libs`
95 fi
96 AC_SUBST(OTF_LD_FLAGS)
97
98 # Check for Freetype2 usability.
99 AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
100 if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
101   FREETYPE_INC=`freetype-config --cflags`
102   save_CPPFLAGS=$CPPFLAGS
103   CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
104   AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
105                               HAVE_FREETYPE=no CPPFLAGS=$save_CPPFLAGS)
106   if test "x$HAVE_FREETYPE" = "xyes" ; then
107     save_LIBS=$LIBS
108     LIBS="$LIBS `freetype-config --libs`"
109     AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
110                                              HAVE_FREETYPE=no)
111     LIBS=$save_LIBS
112     if test "x$HAVE_FREETYPE" = "xyes"; then
113       FREETYPE_LD_FLAGS=`freetype-config --libtool`
114       AC_DEFINE(HAVE_FREETYPE, 1, 
115                 [Define to 1 if you have FreeType library and header file.])
116     fi
117   fi
118 fi
119 AC_SUBST(FREETYPE_LD_FLAGS)
120
121 # Check for Xft2 usability.
122 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
123 if test "x$HAVE_XFT2" = "xyes"; then
124   AC_CHECK_HEADER(X11/Xft/Xft.h, HAVE_XFT2=yes, HAVE_XFT2=no, 
125                   [#include <X11/Xft/Xft.h>
126 #if XftVersion >= 20000
127 #else
128 Version too old.  Compiling this line should fail.
129 #endif])
130   if test "x$HAVE_XFT2" = "xyes"; then
131     AC_DEFINE(HAVE_XFT2, 1,
132              [Define to 1 if you have Xft2 library and header file.])
133     XFT2_LD_FLAGS="-lXft"
134   fi
135 fi
136 AC_SUBST(XFT2_LD_FLAGS)
137
138 # Check for libxml2 usability.
139 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
140 if test "x$HAVE_XML2" = "xyes"; then
141   save_CPPFLAGS=$CPPFLAGS
142   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
143   AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
144   if test "x$HAVE_XML2" = "xyes"; then
145     AC_DEFINE(HAVE_XML2, 1,
146               [Define to 1 if you have libxml2 library and header file])
147     XML2_LD_FLAGS="-lxml2"
148   else
149     CPPFLAGS=$save_CPPFLAGS
150   fi
151 fi
152 AC_SUBST(XML2_LD_FLAGS)
153
154 # Check for Anthy usability.
155 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
156 if test "x$HAVE_ANTHY" = "xyes"; then
157   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
158   if test "x$HAVE_ANTHY" = "xyes"; then
159     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
160     if test "x$HAVE_ANTHY" = "xyes"; then
161     AC_DEFINE(HAVE_ANTHY, 1,
162               [Define to 1 if you have Anthy library and header file])
163     ANTHY_LD_FLAGS="-lanthy -lanthydic"
164     fi
165   fi
166 fi
167 AC_SUBST(ANTHY_LD_FLAGS)
168
169 # Check for Ispell usability.
170 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
171 if test "x$HAVE_ISPELL" = "xyes"; then
172   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
173 fi
174
175 # Check for libwordcut (for Thai).
176 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
177 if test "x$HAVE_WORDCUT" = "xyes"; then
178   if test -f "/usr/share/wordcut/tdict.wcd"; then
179     tdict="/usr/share/wordcut/tdict.wcd"
180   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
181     tdict="/usr/local/share/wordcut/tdict.wcd"
182   fi
183   echo "TDICT=$tdict"
184   if test "x$tdict" != "x"; then
185     AC_DEFINE(HAVE_WORDCUT, 1,
186               [Define if you have the wordcut library and header file])
187     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
188     WORDCUT_LD_FLAGS=-lwordcut
189   fi
190 fi
191 AC_SUBST(WORDCUT_LD_FLAGS)
192
193 AC_ARG_ENABLE(xom, 
194               [  --enable-xom            build and install XOM library.],
195               XOM="$enableval")
196
197 AC_ARG_WITH(efence,
198             [  --with-efence           build example programs with efence.],
199             EFENCE="$withval")
200 AC_CHECK_LIB(efence, malloc, HAVE_EFENCE=yes)
201
202 if test "x$EFENCE" = "xyes" && test "x$HAVE_EFENCE" = "xyes"; then
203   EFENCE_LIB=-lefence
204 fi
205 AC_SUBST(EFENCE_LIB)
206
207 case $host_os in
208 darwin* | rhapsody*)
209   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
210             [Define to loadable module extention]);;
211 esac
212
213 AC_CONFIG_FILES([Makefile
214                  src/Makefile
215                  example/Makefile
216                  m17n-config
217                  ])
218
219 if test "x$XOM" = "xyes"; then
220   AC_CONFIG_FILES(omM17N/Makefile)
221 fi
222
223 AC_OUTPUT
224
225 dnl Local Variables:
226 dnl comment-start: "dnl "
227 dnl comment-end: ""
228 dnl comment-start-skip: "\\bdnl\\b\\s *"
229 dnl End: