]> git.wh0rd.org - fontconfig.git/blame_incremental - configure.in
Have --with-expat set EXPAT_CFLAGS (bug 2278)
[fontconfig.git] / configure.in
... / ...
CommitLineData
1dnl
2dnl $Id$
3dnl
4dnl Copyright © 2003 Keith Packard
5dnl
6dnl Permission to use, copy, modify, distribute, and sell this software and its
7dnl documentation for any purpose is hereby granted without fee, provided that
8dnl the above copyright notice appear in all copies and that both that
9dnl copyright notice and this permission notice appear in supporting
10dnl documentation, and that the name of Keith Packard not be used in
11dnl advertising or publicity pertaining to distribution of the software without
12dnl specific, written prior permission. Keith Packard makes no
13dnl representations about the suitability of this software for any purpose. It
14dnl is provided "as is" without express or implied warranty.
15dnl
16dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22dnl PERFORMANCE OF THIS SOFTWARE.
23dnl
24dnl Process this file with autoconf to create configure.
25
26AC_INIT(fonts.dtd)
27
28dnl ==========================================================================
29dnl Versioning
30dnl ==========================================================================
31
32dnl This is the package version number, not the shared library
33dnl version. This same version number must appear in fontconfig/fontconfig.h
34dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
35dnl not possible to extract the version number here from fontconfig.h
36AM_INIT_AUTOMAKE(fontconfig, 2.2.98)
37AM_MAINTAINER_MODE
38
39dnl libtool versioning
40
41LT_CURRENT=1
42LT_REVISION=4
43AC_SUBST(LT_CURRENT)
44AC_SUBST(LT_REVISION)
45LT_AGE=0
46
47LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
48AC_SUBST(LT_VERSION_INFO)
49
50LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
51AC_SUBST(LT_CURRENT_MINUS_AGE)
52
53dnl ==========================================================================
54
55AM_CONFIG_HEADER(config.h)
56
57AC_PROG_CC
58AC_PROG_INSTALL
59AC_PROG_LN_S
60AC_LIBTOOL_WIN32_DLL
61AM_PROG_LIBTOOL
62AC_PROG_MAKE_SET
63
64dnl ==========================================================================
65
66case "$host" in
67 *-*-mingw*)
68 os_win32=yes
69 ;;
70 *)
71 os_win32=no
72esac
73AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
74
75if test "$os_win32" = "yes"; then
76 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
77fi
78AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
79
80WARN_CFLAGS=""
81
82if test "x$GCC" = "xyes"; then
83 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
84 -Wmissing-prototypes -Wmissing-declarations \
85 -Wnested-externs -fno-strict-aliasing"
86fi
87AC_SUBST(WARN_CFLAGS)
88
89dnl ==========================================================================
90
91AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
92
93dnl ==========================================================================
94
95# Setup for compiling build tools (fc-glyphname, etc)
96AC_MSG_CHECKING([for a C compiler for build tools])
97if test $cross_compiling = yes; then
98 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
99else
100 CC_FOR_BUILD=$CC
101fi
102AC_MSG_RESULT([$CC_FOR_BUILD])
103AC_SUBST(CC_FOR_BUILD)
104
105AC_MSG_CHECKING([for suffix of executable build tools])
106if test $cross_compiling = yes; then
107 cat >conftest.c <<\_______EOF
108int
109main ()
110{
111 exit (0);
112}
113_______EOF
114 for i in .exe ""; do
115 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
116 if AC_TRY_EVAL(compile); then
117 if (./conftest) 2>&AC_FD_CC; then
118 EXEEXT_FOR_BUILD=$i
119 break
120 fi
121 fi
122 done
123 rm -f conftest*
124 if test "${EXEEXT_FOR_BUILD+set}" != set; then
125 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
126 fi
127else
128 EXEEXT_FOR_BUILD=$EXEEXT
129fi
130AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
131AC_SUBST(EXEEXT_FOR_BUILD)
132
133dnl ==========================================================================
134
135# Checks for header files.
136AC_HEADER_DIRENT
137AC_HEADER_STDC
138AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h])
139
140# Checks for typedefs, structures, and compiler characteristics.
141AC_C_CONST
142AC_TYPE_PID_T
143
144# Checks for library functions.
145AC_FUNC_VPRINTF
146AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv])
147
148#
149# Checks for FreeType
150#
151
152AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
153
154if test "$freetype_config" = "yes"; then
155 AC_PATH_PROG(ft_config,freetype-config,no)
156 if test "$ft_config" = "no"; then
157 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
158 fi
159else
160 ft_config="$freetype_config"
161fi
162
163FREETYPE_CFLAGS="`$ft_config --cflags`"
164FREETYPE_LIBS="`$ft_config --libs`"
165
166AC_SUBST(FREETYPE_LIBS)
167AC_SUBST(FREETYPE_CFLAGS)
168
169#
170# Check to see whether we have:
171# FT_Get_Next_Char
172# FT_Get_BDF_Property
173# FT_Get_PS_Font_Info
174# FT_Has_PS_Glyph_Names
175#
176
177fontconfig_save_libs="$LIBS"
178fontconfig_save_cflags="$CFLAGS"
179LIBS="$LIBS $FREETYPE_LIBS"
180CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
181AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format)
182AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
183 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
184 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
185[#include <ft2build.h>
186#include FT_FREETYPE_H])
187AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
188 [FT_Bitmap_Size structure includes y_ppem field])
189CFLAGS="$fontconfig_save_cflags"
190LIBS="$fontconfig_save_libs"
191
192#
193# Check expat configuration
194#
195
196AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
197AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
198AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
199
200case "$expat" in
201no)
202 ;;
203*)
204 case "$expat_includes" in
205 yes)
206 case "$expat" in
207 yes)
208 ;;
209 *)
210 EXPAT_CFLAGS="-I$expat/include"
211 ;;
212 esac
213 ;;
214 no)
215 EXPAT_CFLAGS=""
216 ;;
217 *)
218 EXPAT_CFLAGS="-I$expat_includes"
219 ;;
220 esac
221 case "$expat_lib" in
222 yes)
223 case "$expat" in
224 yes)
225 EXPAT_LIBS="-lexpat"
226 ;;
227 *)
228 EXPAT_LIBS="-L$expat/lib -lexpat"
229 ;;
230 esac
231 ;;
232 no)
233 ;;
234 *)
235 EXPAT_LIBS="-L$expat_lib -lexpat"
236 ;;
237 esac
238
239 expatsaved_CPPFLAGS="$CPPFLAGS"
240 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
241 expatsaved_LIBS="$LIBS"
242 LIBS="$LIBS $EXPAT_LIBS"
243
244 AC_CHECK_HEADER(expat.h)
245 case "$ac_cv_header_expat_h" in
246 no)
247 AC_CHECK_HEADER(xmlparse.h)
248 case "$ac_cv_header_xmlparse_h" in
249 no)
250 have_expat_header=no;
251 ;;
252 yes)
253 HAVE_XMLPARSE_H=1
254 AC_SUBST(HAVE_XMLPARSE_H)
255 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
256 [Use xmlparse.h instead of expat.h])
257 have_expat_header=yes
258 ;;
259 esac
260 ;;
261 yes)
262 have_expat_header=yes
263 ;;
264 esac
265 case "$have_expat_header" in
266 no)
267 expat=no
268 ;;
269 yes)
270 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
271 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
272 yes)
273 HAVE_EXPAT=1
274 AC_SUBST(HAVE_EXPAT)
275 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
276 [Found a useable expat library])
277 ;;
278 *)
279 expat=no
280 ;;
281 esac
282 ;;
283 esac
284 CPPFLAGS="$expatsaved_CPPFLAGS"
285 LIBS="$expatsaved_LIBS"
286 ;;
287esac
288AC_SUBST(EXPAT_LIBS)
289AC_SUBST(EXPAT_CFLAGS)
290
291case "$expat" in
292no)
293 AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.])
294 ;;
295esac
296
297#
298# Set default font directory
299#
300
301AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
302
303case "$default_fonts" in
304yes)
305 if test "$os_win32" = "yes"; then
306 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
307 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
308 [Windows font directory])
309 else
310 FC_DEFAULT_FONTS="/usr/share/fonts"
311 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
312 [System font directory])
313 fi
314 ;;
315*)
316 FC_DEFAULT_FONTS="$default_fonts"
317 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
318 [System font directory])
319 ;;
320esac
321
322AC_SUBST(FC_DEFAULT_FONTS)
323
324#
325# Add more fonts if available. By default, add only the directories
326# with outline fonts; those with bitmaps can be added as desired in
327# local.conf or ~/.fonts.conf
328#
329AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
330
331case "$add_fonts" in
332yes)
333 FC_ADD_FONTS=""
334 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
335 case x"$FC_ADD_FONTS" in
336 x)
337 sub="$dir/fonts"
338 if test -d "$sub"; then
339 case x$FC_ADD_FONTS in
340 x)
341 FC_ADD_FONTS="$sub"
342 ;;
343 *)
344 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
345 ;;
346 esac
347 fi
348 ;;
349 esac
350 done
351 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
352 ;;
353no)
354 FC_ADD_FONTS=""
355 ;;
356*)
357 FC_ADD_FONTS="$add_fonts"
358 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
359 ;;
360esac
361
362AC_SUBST(FC_ADD_FONTS)
363
364FC_FONTPATH=""
365
366case "$FC_ADD_FONTS" in
367"")
368 ;;
369*)
370 FC_FONTPATH=`echo $FC_ADD_FONTS |
371 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
372 ;;
373esac
374
375AC_SUBST(FC_FONTPATH)
376
377FC_FONTDATE=`LC_ALL=C date`
378
379AC_SUBST(FC_FONTDATE)
380
381AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
382
383#
384# Set CONFDIR and FONTCONFIG_PATH
385#
386
387case "$confdir" in
388no|yes)
389 confdir='${sysconfdir}'/fonts
390 ;;
391*)
392 ;;
393esac
394AC_SUBST(confdir)
395CONFDIR=${confdir}
396AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
397AC_SUBST(CONFDIR)
398
399#
400# Find out what language orthographies are included
401#
402
403ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
404AC_SUBST(ORTH_FILES)
405
406#
407# Let people not build/install docs if they don't have docbook
408#
409
410AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
411
412AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
413
414default_docs="yes"
415#
416# Check if docs exist or can be created
417#
418if test x$HASDOCBOOK = xno; then
419 if test -f doc/fonts-conf.5; then
420 :
421 else
422 default_docs="no"
423 fi
424fi
425
426AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
427
428AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
429
430if test "x$enable_docs" = xyes; then
431 DOCSRC="doc"
432 tmp=funcs.$$
433 cat $srcdir/doc/*.fncs | awk '
434 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
435 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
436 /^@@/ { done = 0; }' > $tmp
437 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
438 echo DOCMAN3 $DOCMAN3
439 rm -f $tmp
440else
441 DOCSRC=""
442 DOCMAN3=""
443fi
444
445AC_SUBST(DOCSRC)
446AC_SUBST(DOCMAN3)
447
448#
449# Figure out where to install documentation
450#
451
452AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
453
454if test "x$with_docdir" = "x" ; then
455 DOCDIR='${datadir}/doc/fontconfig'
456else
457 DOCDIR=$with_docdir
458fi
459
460AC_SUBST(DOCDIR)
461
462AC_OUTPUT([
463Makefile
464fontconfig/Makefile
465fc-lang/Makefile
466fc-glyphname/Makefile
467fc-case/Makefile
468src/Makefile
469src/fontconfig.def
470fc-cache/Makefile
471fc-list/Makefile
472fc-match/Makefile
473doc/Makefile
474doc/version.sgml
475test/Makefile
476fontconfig.spec
477fontconfig.pc
478fonts.conf
479fontconfig-zip
480])