]> git.wh0rd.org - fontconfig.git/blame_incremental - configure.in
Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692)
[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.5.91)
37AM_MAINTAINER_MODE
38
39dnl libtool versioning
40
41dnl bump revision when fixing bugs
42dnl bump current and age, reset revision to zero when adding APIs
43dnl bump current, leave age, reset revision to zero when changing/removing APIS
44LIBT_CURRENT=4
45LIBT_REVISION=0
46AC_SUBST(LIBT_CURRENT)
47AC_SUBST(LIBT_REVISION)
48LIBT_AGE=3
49
50LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
51AC_SUBST(LIBT_VERSION_INFO)
52
53LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
54AC_SUBST(LIBT_CURRENT_MINUS_AGE)
55
56dnl ==========================================================================
57
58AM_CONFIG_HEADER(config.h)
59
60AC_PROG_CC
61AC_PROG_INSTALL
62AC_PROG_LN_S
63AC_LIBTOOL_WIN32_DLL
64AM_PROG_LIBTOOL
65DOLT
66AC_PROG_MAKE_SET
67
68dnl ==========================================================================
69
70case "$host" in
71 *-*-mingw*)
72 os_win32=yes
73 ;;
74 *)
75 os_win32=no
76esac
77AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
78
79if test "$os_win32" = "yes"; then
80 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
81fi
82AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
83
84WARN_CFLAGS=""
85if test "x$GCC" = "xyes"; then
86 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
87 -Wmissing-prototypes -Wmissing-declarations \
88 -Wnested-externs -fno-strict-aliasing"
89 AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
90 [Can use #warning in C files])
91fi
92AC_SUBST(WARN_CFLAGS)
93
94
95dnl ==========================================================================
96
97AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
98
99dnl ==========================================================================
100
101# Setup for compiling build tools (fc-glyphname, etc)
102AC_MSG_CHECKING([for a C compiler for build tools])
103if test $cross_compiling = yes; then
104 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
105else
106 CC_FOR_BUILD=$CC
107fi
108AC_MSG_RESULT([$CC_FOR_BUILD])
109AC_SUBST(CC_FOR_BUILD)
110
111AC_MSG_CHECKING([for suffix of executable build tools])
112if test $cross_compiling = yes; then
113 cat >conftest.c <<\_______EOF
114int
115main ()
116{
117 exit (0);
118}
119_______EOF
120 for i in .exe ""; do
121 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
122 if AC_TRY_EVAL(compile); then
123 if (./conftest) 2>&AC_FD_CC; then
124 EXEEXT_FOR_BUILD=$i
125 break
126 fi
127 fi
128 done
129 rm -f conftest*
130 if test "${EXEEXT_FOR_BUILD+set}" != set; then
131 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
132 fi
133else
134 EXEEXT_FOR_BUILD=$EXEEXT
135fi
136AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
137AC_SUBST(EXEEXT_FOR_BUILD)
138
139dnl ==========================================================================
140
141AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto)
142
143if test $cross_compiling = yes; then
144 case "$arch" in
145 auto)
146 AC_MSG_ERROR([Cannot autodetect architecture in cross compile environment]
147 [Use --with-arch=ARCH to specify architecture])
148 ;;
149 esac
150fi
151
152ARCHITECTURE=$arch
153AC_SUBST(ARCHITECTURE)
154
155dnl ==========================================================================
156
157# Checks for header files.
158AC_HEADER_DIRENT
159AC_HEADER_STDC
160AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
161
162# Checks for typedefs, structures, and compiler characteristics.
163AC_C_CONST
164AC_C_INLINE
165AC_TYPE_PID_T
166
167# Checks for library functions.
168AC_FUNC_VPRINTF
169AC_FUNC_MMAP
170AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48])
171
172#
173# Checks for iconv
174#
175AC_MSG_CHECKING([for a usable iconv])
176ICONV_LIBS=""
177AC_TRY_LINK([#include <iconv.h>],
178 [iconv_open ("from", "to");],
179 [use_iconv=1],
180 [use_iconv=0])
181if test x$use_iconv = x1; then
182 AC_MSG_RESULT([libc])
183else
184 # try using libiconv
185 fontconfig_save_libs="$LIBS"
186 LIBS="$LIBS -liconv"
187
188 AC_TRY_LINK([#include <iconv.h>],
189 [iconv_open ("from", "to");],
190 [use_iconv=1],
191 [use_iconv=0])
192
193 if test x$use_iconv = x1; then
194 ICONV_LIBS="-liconv"
195 AC_MSG_RESULT([libiconv])
196 else
197 AC_MSG_RESULT([no])
198 fi
199
200 LIBS="$fontconfig_save_libs"
201fi
202AC_SUBST(ICONV_LIBS)
203AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
204
205#
206# Checks for FreeType
207#
208
209AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
210
211if test "$freetype_config" = "yes"; then
212 AC_PATH_PROG(ft_config,freetype-config,no)
213 if test "$ft_config" = "no"; then
214 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
215 fi
216else
217 ft_config="$freetype_config"
218fi
219
220FREETYPE_CFLAGS="`$ft_config --cflags`"
221FREETYPE_LIBS="`$ft_config --libs`"
222
223AC_SUBST(FREETYPE_LIBS)
224AC_SUBST(FREETYPE_CFLAGS)
225
226#
227# Check to see whether we have:
228# FT_Get_Next_Char
229# FT_Get_BDF_Property
230# FT_Get_PS_Font_Info
231# FT_Has_PS_Glyph_Names
232#
233
234fontconfig_save_libs="$LIBS"
235fontconfig_save_cflags="$CFLAGS"
236LIBS="$LIBS $FREETYPE_LIBS"
237CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
238AC_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)
239AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
240 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
241 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
242[#include <ft2build.h>
243#include FT_FREETYPE_H])
244AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
245 [FT_Bitmap_Size structure includes y_ppem field])
246CFLAGS="$fontconfig_save_cflags"
247LIBS="$fontconfig_save_libs"
248
249#
250# Check expat configuration
251#
252
253AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
254AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
255AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
256
257if test "$enable_libxml2" != "yes"; then
258 case "$expat" in
259 no)
260 ;;
261 *)
262 case "$expat_includes" in
263 yes)
264 case "$expat" in
265 yes)
266 ;;
267 *)
268 EXPAT_CFLAGS="-I$expat/include"
269 ;;
270 esac
271 ;;
272 no)
273 EXPAT_CFLAGS=""
274 ;;
275 *)
276 EXPAT_CFLAGS="-I$expat_includes"
277 ;;
278 esac
279 case "$expat_lib" in
280 yes)
281 case "$expat" in
282 yes)
283 EXPAT_LIBS="-lexpat"
284 ;;
285 *)
286 EXPAT_LIBS="-L$expat/lib -lexpat"
287 ;;
288 esac
289 ;;
290 no)
291 ;;
292 *)
293 EXPAT_LIBS="-L$expat_lib -lexpat"
294 ;;
295 esac
296
297 expatsaved_CPPFLAGS="$CPPFLAGS"
298 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
299 expatsaved_LIBS="$LIBS"
300 LIBS="$LIBS $EXPAT_LIBS"
301
302 AC_CHECK_HEADER(expat.h)
303 case "$ac_cv_header_expat_h" in
304 no)
305 AC_CHECK_HEADER(xmlparse.h)
306 case "$ac_cv_header_xmlparse_h" in
307 no)
308 have_expat_header=no;
309 ;;
310 yes)
311 HAVE_XMLPARSE_H=1
312 AC_SUBST(HAVE_XMLPARSE_H)
313 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
314 [Use xmlparse.h instead of expat.h])
315 have_expat_header=yes
316 ;;
317 esac
318 ;;
319 yes)
320 have_expat_header=yes
321 ;;
322 esac
323 case "$have_expat_header" in
324 no)
325 expat=no
326 ;;
327 yes)
328 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
329 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
330 yes)
331 HAVE_EXPAT=1
332 AC_SUBST(HAVE_EXPAT)
333 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
334 [Found a useable expat library])
335 ;;
336 *)
337 expat=no
338 ;;
339 esac
340 ;;
341 esac
342 CPPFLAGS="$expatsaved_CPPFLAGS"
343 LIBS="$expatsaved_LIBS"
344 ;;
345 esac
346
347 AC_SUBST(EXPAT_CFLAGS)
348 AC_SUBST(EXPAT_LIBS)
349
350 case "$expat" in
351 no)
352 EXPAT_CFLAGS=""
353 EXPAT_LIBS=""
354
355 AC_MSG_WARN([Cannot find usable expat library. Trying to use libxml2 as fallback.])
356 ;;
357 esac
358fi
359
360#
361# Check libxml2 configuration
362#
363
364AC_ARG_ENABLE(libxml2, [ --enable-libxml2 Use libxml2 instead of Expat])
365
366PKG_PROG_PKG_CONFIG
367
368if test "$enable_libxml2" = "yes" -o "$expat" = "no"; then
369 PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
370 AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
371
372 AC_SUBST(LIBXML2_CFLAGS)
373 AC_SUBST(LIBXML2_LIBS)
374fi
375
376#
377# Set default font directory
378#
379
380AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
381
382case "$default_fonts" in
383yes)
384 if test "$os_win32" = "yes"; then
385 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
386 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
387 [Windows font directory])
388 else
389 FC_DEFAULT_FONTS="/usr/share/fonts"
390 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
391 [System font directory])
392 fi
393 ;;
394*)
395 FC_DEFAULT_FONTS="$default_fonts"
396 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
397 [System font directory])
398 ;;
399esac
400
401AC_SUBST(FC_DEFAULT_FONTS)
402
403#
404# Add more fonts if available. By default, add only the directories
405# with outline fonts; those with bitmaps can be added as desired in
406# local.conf or ~/.fonts.conf
407#
408AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
409
410case "$add_fonts" in
411yes)
412 FC_ADD_FONTS=""
413 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
414 case x"$FC_ADD_FONTS" in
415 x)
416 sub="$dir/fonts"
417 if test -d "$sub"; then
418 case x$FC_ADD_FONTS in
419 x)
420 FC_ADD_FONTS="$sub"
421 ;;
422 *)
423 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
424 ;;
425 esac
426 fi
427 ;;
428 esac
429 done
430 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
431 ;;
432no)
433 FC_ADD_FONTS=""
434 ;;
435*)
436 FC_ADD_FONTS="$add_fonts"
437 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
438 ;;
439esac
440
441AC_SUBST(FC_ADD_FONTS)
442
443FC_FONTPATH=""
444
445case "$FC_ADD_FONTS" in
446"")
447 ;;
448*)
449 FC_FONTPATH=`echo $FC_ADD_FONTS |
450 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
451 ;;
452esac
453
454AC_SUBST(FC_FONTPATH)
455
456#
457# Set default cache directory path
458#
459AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default /var/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes)
460
461case $fc_cachedir in
462no|yes)
463 if test "$os_win32" = "yes"; then
464 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
465 else
466 fc_cachedir=`eval echo "${localstatedir}/cache/"${PACKAGE}`
467 fi
468 ;;
469*)
470 ;;
471esac
472AC_SUBST(fc_cachedir)
473FC_CACHEDIR=${fc_cachedir}
474AC_SUBST(FC_CACHEDIR)
475
476FC_FONTDATE=`LC_ALL=C date`
477
478AC_SUBST(FC_FONTDATE)
479
480AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
481
482#
483# Set CONFDIR and FONTCONFIG_PATH
484#
485
486case "$confdir" in
487no|yes)
488 confdir='${sysconfdir}'/fonts
489 ;;
490*)
491 ;;
492esac
493AC_SUBST(confdir)
494CONFDIR=${confdir}
495AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
496AC_SUBST(CONFDIR)
497
498#
499# Find out what language orthographies are included
500#
501
502ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
503AC_SUBST(ORTH_FILES)
504
505#
506# Let people not build/install docs if they don't have docbook
507#
508
509AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
510
511AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
512
513default_docs="yes"
514#
515# Check if docs exist or can be created
516#
517if test x$HASDOCBOOK = xno; then
518 if test -f $srcdir/doc/fonts-conf.5; then
519 :
520 else
521 default_docs="no"
522 fi
523fi
524
525AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
526
527AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
528
529if test "x$enable_docs" = xyes; then
530 DOCSRC="doc"
531 tmp=funcs.$$
532 cat $srcdir/doc/*.fncs | awk '
533 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
534 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
535 /^@@/ { done = 0; }' > $tmp
536 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
537 echo DOCMAN3 $DOCMAN3
538 rm -f $tmp
539else
540 DOCSRC=""
541 DOCMAN3=""
542fi
543
544AC_SUBST(DOCSRC)
545AC_SUBST(DOCMAN3)
546
547#
548# Figure out where to install documentation
549#
550
551AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
552
553if test "x$with_docdir" = "x" ; then
554 DOCDIR='${datadir}/doc/fontconfig'
555else
556 DOCDIR=$with_docdir
557fi
558
559AC_SUBST(DOCDIR)
560
561
562AC_OUTPUT([
563Makefile
564fontconfig/Makefile
565fc-lang/Makefile
566fc-glyphname/Makefile
567fc-case/Makefile
568fc-arch/Makefile
569src/Makefile
570conf.d/Makefile
571fc-cache/Makefile
572fc-cat/Makefile
573fc-list/Makefile
574fc-match/Makefile
575doc/Makefile
576doc/version.sgml
577test/Makefile
578fontconfig.spec
579fontconfig.pc
580fonts.conf
581fontconfig-zip
582])