Include m17n-core.pc, m17n-shell.pc, and
[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     fi
159   fi
160 fi
161 AC_SUBST(FREETYPE_LD_FLAGS)
162
163 dnl Check for Xft2 usability.
164 save_CPPFLAGS="$CPPFLAGS"
165 save_LIBS="$LIBS"
166 AC_CHECK_PROG(HAVE_XFT_CONFIG, xft-config, yes)
167 if test "x$HAVE_XFT_CONFIG" = "xyes"; then
168   CPPFLAGS="$CPPFLAGS `xft-config --cflags`"
169   XFT2_LD_FLAGS="`xft-config --libs`"
170   LIBS="$LIBS $XFT2_LD_FLAGS"
171 else
172   XFT2_LD_FLAGS="-lXft -lfreetype -lfontconfig -lXrender -lX11"
173 fi
174 AC_CHECK_LIB(Xft, XftDrawCreate, HAVE_XFT2=yes, HAVE_XFT2=no)
175 AC_CHECK_HEADER(X11/Xft/Xft.h,, HAVE_XFT2=no, 
176                 [#include <X11/Xft/Xft.h>
177 #if XftVersion >= 20000
178 #else
179 Version too old.  Compiling this line should fail.
180 #endif])
181 if test "x$HAVE_XFT2" = "xyes"; then
182   AC_DEFINE(HAVE_XFT2, 1,
183             [Define to 1 if you have Xft2 library and header file.])
184 else
185   XFT2_LD_FLAGS=
186   CPPFLAGS="$save_CPPFLAGS"
187 fi
188 LIBS="$save_LIBS"
189 AC_SUBST(XFT2_LD_FLAGS)
190
191 dnl Check for fontconfig usability.
192 save_CPPFLAGS="$CPPFLAGS"
193 save_LIBS="$LIBS"
194 FONTCONFIG_LD_FLAGS=-lfontconfig
195 AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
196 if test "x$HAVE_PKG_CONFIG" = "xyes"; then
197   if pkg-config --exists fontconfig; then
198     CPPFLAGS="$CPPFLAGS `pkg-config --cflags fontconfig`"
199     FONTCONFIG_LD_FLAGS="`pkg-config --libs fontconfig`"
200     LIBS="$LIBS $FONTCONFIG_LD_FLAGS"
201   fi
202 fi
203 AC_CHECK_LIB(fontconfig, FcInit, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
204 AC_CHECK_HEADER(fontconfig/fontconfig.h, , HAVE_FONTCONFIG=no)
205 if test "x$HAVE_FONTCONFIG" = "xyes"; then
206   AC_DEFINE(HAVE_FONTCONFIG, 1,
207               [Define to 1 if you have fontconfig library and header file.])
208 else
209   FONTCONFIG_LD_FLAGS=
210   CPPFLAGS="$save_CPPFLAGS"
211 fi
212 LIBS="$save_LIBS"
213 AC_SUBST(FONTCONFIG_LD_FLAGS)
214
215 dnl Check for gdlib usability.
216 save_LIBS="$LIBS"
217 AC_CHECK_LIB(gd, gdImageCreate, HAVE_GD=yes, HAVE_GD=no)
218 AC_CHECK_HEADER(gd.h, , HAVE_GD=no)
219 if test "x$HAVE_GD" = "xyes"; then
220   AC_CHECK_LIB(gd, gdImageCreateTrueColor, HAVE_GD=2, HAVE_GD=1)
221   AC_DEFINE_UNQUOTED(HAVE_GD, $HAVE_GD,
222             [Define to 1 if you have gd library and header file.])
223   GD_LD_FLAGS=-lgd
224 fi
225 LIBS="$save_LIBS"
226 AC_SUBST(GD_LD_FLAGS)
227
228 dnl Check for libxml2 usability.
229 save_CPPFLAGS="$CPPFLAGS"
230 save_LIBS="$LIBS"
231 AC_CHECK_PROG(HAVE_XML2_CONFIG, xml2-config, yes)
232 if test "x$HAVE_XML2_CONFIG" = "xyes"; then
233   CPPFLAGS="$CPPFLAGS `xml2-config --cflags`"
234   XML2_LD_FLAGS="`xml2-config --libs`"
235   LIBS="$LIBS $XML2_LD_FLAGS"
236 else
237   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
238   XML2_LD_FLAGS="-lxml2 -lz -lpthread -lm"
239 fi
240 AC_CHECK_LIB(xml2, xmlParseMemory, HAVE_XML2=yes, HAVE_XML2=no)
241 AC_CHECK_HEADER(libxml/tree.h,, HAVE_XML2=no, /**/)
242 if test "x$HAVE_XML2" = "xyes"; then
243   AC_DEFINE(HAVE_XML2, 1,
244             [Define to 1 if you have libxml2 library and header file])
245 else
246   XML2_LD_FLAGS=
247   CPPFLAGS="$save_CPPFLAGS"
248 fi
249 LIBS="$save_LIBS"
250 AC_SUBST(XML2_LD_FLAGS)
251
252 dnl Check for Anthy usability.
253 AC_CHECK_LIB(anthydic, anthy_init_sessions, HAVE_ANTHY=yes, HAVE_ANTHY=no)
254 if test "x$HAVE_ANTHY" = "xyes"; then
255   AC_CHECK_LIB(anthy, anthy_init, HAVE_ANTHY=yes, HAVE_ANTHY=no, -lanthydic)
256   if test "x$HAVE_ANTHY" = "xyes"; then
257     AC_CHECK_HEADER(anthy/anthy.h, HAVE_ANTHY=yes, HAVE_ANTHY=no)
258     if test "x$HAVE_ANTHY" = "xyes"; then
259     AC_DEFINE(HAVE_ANTHY, 1,
260               [Define to 1 if you have Anthy library and header file])
261     ANTHY_LD_FLAGS="-lanthy -lanthydic"
262     fi
263   fi
264 fi
265 AC_SUBST(ANTHY_LD_FLAGS)
266
267 dnl Check for Ispell usability.
268 AC_CHECK_PROG(HAVE_ISPELL, ispell, yes)
269 if test "x$HAVE_ISPELL" = "xyes"; then
270   AC_DEFINE(HAVE_ISPELL, 1, [Define if ispell is available.])
271 fi
272
273 dnl Check for libwordcut (for Thai).
274 AC_CHECK_LIB(wordcut, wordcut_init, HAVE_WORDCUT=yes, HAVE_WORDCUT=no)
275 if test "x$HAVE_WORDCUT" = "xyes"; then
276   if test -f "/usr/share/wordcut/tdict.wcd"; then
277     tdict="/usr/share/wordcut/tdict.wcd"
278   elif test -f "/usr/local/share/wordcut/tdict.wcd"; then
279     tdict="/usr/local/share/wordcut/tdict.wcd"
280   fi
281   echo "TDICT=$tdict"
282   if test "x$tdict" != "x"; then
283     AC_DEFINE(HAVE_WORDCUT, 1,
284               [Define if you have the wordcut library and header file])
285     AC_DEFINE_UNQUOTED(WORDCUT_TDICT, "$tdict", [Define to tdict file name])
286     WORDCUT_LD_FLAGS=-lwordcut
287   fi
288 fi
289 AC_SUBST(WORDCUT_LD_FLAGS)
290
291 dnl We can't include X_CFLAGS in AM_CPPFLAGS because the generated
292 dnl Makefile put ${AM_CPPFLAGS} before ${CPPFLAGS} and that leads to
293 dnl inclusion of an incorrect header file.  So, append X_CFLAGS to
294 dnl CPPFLAGS here directly.
295
296 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
297
298 dnl AC_ARG_ENABLE(xom, 
299 dnl           [  --enable-xom            build and install XOM library.],
300 dnl           XOM="$enableval")
301
302 case $host_os in
303 darwin* | rhapsody*)
304   AC_DEFINE(DLOPEN_SHLIB_EXT, ".dylib",
305             [Define to loadable module extention]);;
306 esac
307
308 AC_CONFIG_FILES([Makefile
309                  src/Makefile
310                  example/Makefile
311                  m17n-config
312                  m17n-core.pc
313                  m17n-shell.pc
314                  m17n-gui.pc
315                  ])
316
317 dnl if test "x$XOM" = "xyes"; then
318 dnl  AC_CONFIG_FILES(omM17N/Makefile)
319 dnl fi
320
321 AC_OUTPUT
322
323 dnl Local Variables:
324 dnl comment-start: "dnl "
325 dnl comment-end: ""
326 dnl comment-start-skip: "\\bdnl\\b\\s *"
327 dnl End: