Trying to fix distcheck
[platform/upstream/fontconfig.git] / configure.ac
1 dnl 
2 dnl  fontconfig/configure.in
3 dnl 
4 dnl  Copyright © 2003 Keith Packard
5 dnl 
6 dnl  Permission to use, copy, modify, distribute, and sell this software and its
7 dnl  documentation for any purpose is hereby granted without fee, provided that
8 dnl  the above copyright notice appear in all copies and that both that
9 dnl  copyright notice and this permission notice appear in supporting
10 dnl  documentation, and that the name of the author(s) not be used in
11 dnl  advertising or publicity pertaining to distribution of the software without
12 dnl  specific, written prior permission.  The authors make no
13 dnl  representations about the suitability of this software for any purpose.  It
14 dnl  is provided "as is" without express or implied warranty.
15 dnl 
16 dnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 dnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 dnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19 dnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20 dnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21 dnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22 dnl  PERFORMANCE OF THIS SOFTWARE.
23 dnl
24 dnl Process this file with autoconf to create configure.
25
26 AC_PREREQ(2.61)
27 AC_INIT(fonts.dtd)
28
29 dnl ==========================================================================
30 dnl                               Versioning              
31 dnl ==========================================================================
32
33 dnl This is the package version number, not the shared library
34 dnl version.  This same version number must appear in fontconfig/fontconfig.h
35 dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
36 dnl not possible to extract the version number here from fontconfig.h
37 AM_INIT_AUTOMAKE(fontconfig, 2.10.2)
38 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
39
40 dnl libtool versioning
41
42 dnl bump revision when fixing bugs
43 dnl bump current and age, reset revision to zero when adding APIs
44 dnl bump current, leave age, reset revision to zero when changing/removing APIS
45 LIBT_CURRENT=7
46 LIBT_REVISION=2
47 AC_SUBST(LIBT_CURRENT)
48 AC_SUBST(LIBT_REVISION)
49 LIBT_AGE=6
50
51 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
52 AC_SUBST(LIBT_VERSION_INFO)
53
54 LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
55 AC_SUBST(LIBT_CURRENT_MINUS_AGE)
56
57 dnl ==========================================================================
58
59 AC_CONFIG_HEADERS(config.h)
60 AC_CONFIG_MACRO_DIR([m4])
61
62 AC_PROG_CC
63 AC_PROG_INSTALL
64 AC_PROG_LN_S
65 AC_LIBTOOL_WIN32_DLL
66 AM_PROG_LIBTOOL
67 AC_PROG_MAKE_SET
68 PKG_PROG_PKG_CONFIG
69
70 AC_MSG_CHECKING([for RM macro])
71 _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
72 if test "x$_predefined_rm" = "x"; then
73         AC_MSG_RESULT([no predefined RM])
74         AC_CHECK_PROG(RM, rm, [rm -f])
75 else
76         AC_MSG_RESULT($_predefined_rm)
77 fi
78
79 dnl ==========================================================================
80
81 case "$host" in
82   *-*-mingw*)
83     os_win32=yes
84     ;;
85   *)
86     os_win32=no
87 esac
88 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
89
90 if test "$os_win32" = "yes"; then
91   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
92 fi
93 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
94
95 WARN_CFLAGS=""
96 if test "x$GCC" = "xyes"; then
97         WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
98         -Wmissing-prototypes -Wmissing-declarations \
99         -Wnested-externs -fno-strict-aliasing"
100         AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
101         [Can use #warning in C files])
102 fi
103 AC_SUBST(WARN_CFLAGS)
104
105
106 dnl ==========================================================================
107
108 AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
109 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
110 AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
111
112 dnl ==========================================================================
113
114 AC_ARG_WITH(arch,
115         [AC_HELP_STRING([--with-arch=ARCH],
116                         [Force architecture to ARCH])],
117         arch="$withval", arch=auto)
118
119 if test "x$arch" != xauto; then
120         AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
121 fi
122
123
124 dnl ==========================================================================
125
126 # Checks for header files.
127 AC_HEADER_DIRENT
128 AC_HEADER_STDC
129 AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
130 AX_CREATE_STDINT_H([src/fcstdint.h])
131
132 # Checks for typedefs, structures, and compiler characteristics.
133 AC_C_CONST
134 AC_C_INLINE
135 AC_C_FLEXIBLE_ARRAY_MEMBER
136 AC_TYPE_PID_T
137
138 # Checks for library functions.
139 AC_FUNC_VPRINTF
140 AC_FUNC_MMAP
141 AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
142
143 dnl AC_CHECK_FUNCS doesn't check for header files.
144 dnl posix_fadvise() may be not available in older libc.
145 fc_saved_CFLAGS="$CFLAGS"
146 CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
147 AC_MSG_CHECKING([for posix_fadvise])
148 AC_LINK_IFELSE([AC_LANG_SOURCE([[
149         #include <fcntl.h>
150         int main(void) {
151             return posix_fadvise(0, 0, 0, 0);
152         }
153         ]])],[
154                 AC_MSG_RESULT([yes])
155                 AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.])
156         ],[AC_MSG_RESULT([no])])
157 CFLAGS="$fc_saved_CFLAGS"
158
159 #
160 if test "x$ac_cv_func_fstatvfs" = "xyes"; then
161         AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
162                 [#include <sys/statvfs.h>])
163 fi
164 if test "x$ac_cv_func_fstatfs" = "xyes"; then
165         AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
166 #ifdef HAVE_SYS_VFS_H
167 #include <sys/vfs.h>
168 #endif
169 #ifdef HAVE_SYS_STATFS_H
170 #include <sys/statfs.h>
171 #endif
172 #ifdef HAVE_SYS_PARAM_H
173 #include <sys/param.h>
174 #endif
175 #ifdef HAVE_SYS_MOUNT_H
176 #include <sys/mount.h>
177 #endif])
178 fi
179 AC_CHECK_MEMBERS([struct dirent.d_type],,,
180         [#include <dirent.h>])
181 #
182 # regex
183 #
184 if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then
185         AC_DEFINE(USE_REGEX,,[Use regex])
186 fi
187
188 #
189 # Checks for iconv
190 #
191 AC_ARG_ENABLE(iconv,
192         [AC_HELP_STRING([--enable-iconv],
193                         [Use iconv to support non-Unicode SFNT name])],
194         ,enable_iconv=no)
195 AC_ARG_WITH(libiconv,
196         [AC_HELP_STRING([--with-libiconv=DIR],
197                         [Use libiconv in DIR])],
198         [if test "x$withval" = "xyes"; then
199                 libiconv_prefix=$prefix
200          else
201                 libiconv_prefix=$withval
202          fi],
203         [libiconv_prefix=auto])
204 AC_ARG_WITH(libiconv-includes,
205         [AC_HELP_STRING([--with-libiconv-includes=DIR],
206                         [Use libiconv includes in DIR])],
207         [libiconv_includes=$withval],
208         [libiconv_includes=auto])
209 AC_ARG_WITH(libiconv-lib,
210         [AC_HELP_STRING([--with-libiconv-lib=DIR],
211                         [Use libiconv library in DIR])],
212         [libiconv_lib=$withval],
213         [libiconv_lib=auto])
214
215 # if no libiconv,libiconv-includes,libiconv-lib are specified,
216 # libc's iconv has a priority.
217 if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
218         libiconv_cflags="-I${libiconv_includes}"
219 elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
220         libiconv_cflags="-I${libiconv_prefix}/include"
221 else
222         libiconv_cflags=""
223 fi
224 libiconv_libs=""
225 if test "x$libiconv_cflags" != "x"; then
226         if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
227                 libiconv_libs="-L${libiconv_lib} -liconv"
228         elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
229                 libiconv_libs="-L${libiconv_prefix}/lib -liconv"
230         else
231                 libiconv_libs="-liconv"
232         fi
233 fi
234
235 use_iconv=0
236 if test "x$enable_iconv" != "xno"; then
237         AC_MSG_CHECKING([for a usable iconv])
238         if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
239                 iconvsaved_CFLAGS="$CFLAGS"
240                 iconvsaved_LIBS="$LIBS"
241                 CFLAGS="$CFLAGS $libiconv_cflags"
242                 LIBS="$LIBS $libiconv_libs"
243
244                 AC_TRY_LINK([#include <iconv.h>],
245                         [iconv_open ("from", "to");],
246                         [iconv_type="libiconv"
247                          use_iconv=1],
248                         [use_iconv=0])
249
250                 CFLAGS="$iconvsaved_CFLAGS"
251                 LIBS="$iconvsaved_LIBS"
252                 ICONV_CFLAGS="$libiconv_cflags"
253                 ICONV_LIBS="$libiconv_libs"
254         fi
255         if test "x$use_iconv" = "x0"; then
256                 AC_TRY_LINK([#include <iconv.h>],
257                         [iconv_open ("from", "to");],
258                         [iconv_type="libc"
259                          use_iconv=1],
260                         [iconv_type="not found"
261                          use_iconv=0])
262         fi
263
264         AC_MSG_RESULT([$iconv_type])
265         AC_SUBST(ICONV_CFLAGS)
266         AC_SUBST(ICONV_LIBS)
267 fi
268 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
269 #
270 # Checks for FreeType
271 #
272 PKG_CHECK_MODULES(FREETYPE, freetype2)
273
274 AC_SUBST(FREETYPE_LIBS)
275 AC_SUBST(FREETYPE_CFLAGS)
276
277 fontconfig_save_libs="$LIBS"
278 fontconfig_save_cflags="$CFLAGS"
279 LIBS="$LIBS $FREETYPE_LIBS"
280 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
281 AC_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 FT_Select_Size)
282 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
283                 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
284                 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
285 [#include <ft2build.h>
286 #include FT_FREETYPE_H])
287 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
288                    [FT_Bitmap_Size structure includes y_ppem field])
289 CFLAGS="$fontconfig_save_cflags"
290 LIBS="$fontconfig_save_libs"
291
292 #
293 # Check expat configuration
294 #
295 AC_ARG_WITH(expat,
296         [AC_HELP_STRING([--with-expat=DIR],
297                         [Use Expat in DIR])],
298         [expat_prefix=$withval],
299         [expat_prefix=auto])
300 AC_ARG_WITH(expat-includes,
301         [AC_HELP_STRING([--with-expat-includes=DIR],
302                         [Use Expat includes in DIR])],
303         [expat_includes=$withval],
304         [expat_includes=auto])
305 AC_ARG_WITH(expat-lib,
306         [AC_HELP_STRING([--with-expat-lib=DIR])],
307         [expat_lib=$withval],
308         [expat_lib=auto])
309
310 if test "$enable_libxml2" != "yes"; then
311         use_pkgconfig_for_expat=yes
312         if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
313                 PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
314         else
315                 use_pkgconfig_for_expat=no
316         fi
317         if test "x$use_pkgconfig_for_expat" = "xno"; then
318                 if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
319                         EXPAT_CFLAGS="-I${expat_includes}"
320                 elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
321                         EXPAT_CFLAGS="-I${expat_prefix}/include"
322                 else
323                         EXPAT_CFLAGS=""
324                 fi
325                 if test "$expat_lib" != "auto"; then
326                         EXPAT_LIBS="-L${expat_lib} -lexpat"
327                 elif test "$expat_prefix" != "auto"; then
328                         EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
329                 else
330                         EXPAT_LIBS="-lexpat"
331                 fi
332         fi
333
334         expatsaved_CPPFLAGS="$CPPFLAGS"
335         expatsaved_LIBS="$LIBS"
336         CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
337         LIBS="$LIBS $EXPAT_LIBS"
338
339         AC_CHECK_HEADER(expat.h)
340         if test "$ac_cv_header_expat_h" = "no"; then
341                 AC_CHECK_HEADER(xmlparse.h)
342                 if test "$ac_cv_header_xmlparse_h" = "yes"; then
343                         HAVE_XMLPARSE_H=1
344                         AC_SUBST(HAVE_XMLPARSE_H)
345                         AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
346                                 [Use xmlparse.h instead of expat.h])
347                 else
348                         AC_MSG_ERROR([
349 *** expat is required. or try to use --enable-libxml2])
350                 fi
351         fi
352         AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
353         if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
354                 AC_MSG_ERROR([
355 *** expat is required. or try to use --enable-libxml2])
356         fi
357         CPPFLAGS="$expatsaved_CPPFLAGS"
358         LIBS="$expatsaved_LIBS"
359
360         AC_SUBST(EXPAT_CFLAGS)
361         AC_SUBST(EXPAT_LIBS)
362 fi
363
364 #
365 # Check libxml2 configuration
366 #
367 AC_ARG_ENABLE(libxml2,
368         [AC_HELP_STRING([--enable-libxml2],
369                         [Use libxml2 instead of Expat])])
370
371 if test "$enable_libxml2" = "yes"; then
372     PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
373     AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
374
375     AC_SUBST(LIBXML2_CFLAGS)
376     AC_SUBST(LIBXML2_LIBS)
377
378     fc_saved_CFLAGS="$CFLAGS"
379     CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
380     AC_MSG_CHECKING([SAX1 support in libxml2])
381     AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
382         #include <libxml/xmlversion.h>
383         #if !defined(LIBXML_SAX1_ENABLED)
384         #  include "error: No SAX1 support in libxml2"
385         #endif
386         ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
387 *** SAX1 support in libxml2 is required. enable it or use expat instead.])])
388     CFLAGS="$fc_saved_CFLAGS"
389 fi
390
391 #
392 # Set default font directory
393 #
394
395 AC_ARG_WITH(default-fonts,
396         [AC_HELP_STRING([--with-default-fonts=DIR],
397                         [Use fonts from DIR when config is busted])],
398         default_fonts="$withval", default_fonts=yes)
399
400 case "$default_fonts" in
401 yes)
402         if test "$os_win32" = "yes"; then
403                 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
404                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
405                                    [Windows font directory])
406         else
407                 FC_DEFAULT_FONTS="/usr/share/fonts"
408                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
409                                    [System font directory])
410         fi
411         ;;
412 *)
413         FC_DEFAULT_FONTS="$default_fonts"
414         AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
415                            [System font directory])
416         ;;
417 esac
418
419 AC_SUBST(FC_DEFAULT_FONTS)
420
421 #
422 # Add more fonts if available.  By default, add only the directories
423 # with outline fonts; those with bitmaps can be added as desired in
424 # local.conf or ~/.fonts.conf
425 #
426 AC_ARG_WITH(add-fonts,
427         [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
428                         [Find additional fonts in DIR1,DIR2,... ])],
429         add_fonts="$withval", add_fonts=yes)
430
431 case "$add_fonts" in
432 yes)
433         FC_ADD_FONTS=""
434         for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
435                 case x"$FC_ADD_FONTS" in
436                 x)
437                         sub="$dir/fonts"
438                         if test -d "$sub"; then
439                                 case x$FC_ADD_FONTS in
440                                 x)
441                                         FC_ADD_FONTS="$sub"
442                                         ;;
443                                 *)
444                                         FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
445                                         ;;
446                                 esac
447                         fi
448                         ;;
449                 esac
450         done
451         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
452         ;;
453 no)
454         FC_ADD_FONTS=""
455         ;;
456 *)
457         FC_ADD_FONTS="$add_fonts"
458         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
459         ;;
460 esac
461
462 AC_SUBST(FC_ADD_FONTS)
463
464 FC_FONTPATH=""
465
466 case "$FC_ADD_FONTS" in
467 "")
468         ;;
469 *)
470         FC_FONTPATH=`echo $FC_ADD_FONTS | 
471                         sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
472         ;;
473 esac
474
475 AC_SUBST(FC_FONTPATH)
476
477 #
478 # Set default cache directory path
479 #
480 AC_ARG_WITH(cache-dir,
481         [AC_HELP_STRING([--with-cache-dir=DIR],
482                         [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
483         fc_cachedir="$withval", fc_cachedir=yes)
484
485 case $fc_cachedir in
486 no|yes)
487         if test "$os_win32" = "yes"; then
488                 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
489         else
490                 fc_cachedir='${localstatedir}/cache/${PACKAGE}'
491         fi
492         ;;
493 *)
494         ;;
495 esac
496 AC_SUBST(fc_cachedir)
497 FC_CACHEDIR=${fc_cachedir}
498 AC_SUBST(FC_CACHEDIR)
499
500 FC_FONTDATE=`LC_ALL=C date`
501
502 AC_SUBST(FC_FONTDATE)
503
504 #
505 # Set configuration paths
506 #
507
508 AC_ARG_WITH(templatedir,
509         [AC_HELP_STRING([--with-templatedir=DIR],
510                         [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
511         [templatedir="$withval"],
512         [templatedir=yes])
513 AC_ARG_WITH(baseconfigdir,
514         [AC_HELP_STRING([--with-baseconfigdir=DIR],
515                         [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
516         [baseconfigdir="$withval"],
517         [baseconfigdir=yes])
518 AC_ARG_WITH(configdir,
519         [AC_HELP_STRING([--with-configdir=DIR],
520                         [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
521         [configdir="$withval"],
522         [configdir=yes])
523 AC_ARG_WITH(xmldir,
524         [AC_HELP_STRING([--with-xmldir=DIR],
525                         [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
526         [xmldir="$withval"],
527         [xmldir=yes])
528
529 case "$templatedir" in
530 no|yes)
531         templatedir='${datadir}'/fontconfig/conf.avail
532         ;;
533 *)
534         ;;
535 esac
536 case "$baseconfigdir" in
537 no|yes)
538         baseconfigdir='${sysconfdir}'/fonts
539         ;;
540 *)
541         ;;
542 esac
543 case "$configdir" in
544 no|yes)
545         configdir='${baseconfigdir}'/conf.d
546         ;;
547 *)
548         ;;
549 esac
550 case "$xmldir" in
551 no|yes)
552         xmldir='${datadir}'/xml/fontconfig
553         ;;
554 *)
555         ;;
556 esac
557
558 TEMPLATEDIR=${templatedir}
559 BASECONFIGDIR=${baseconfigdir}
560 CONFIGDIR=${configdir}
561 XMLDIR=${xmldir}
562 AC_SUBST(templatedir)
563 AC_SUBST(TEMPLATEDIR)
564 AC_SUBST(baseconfigdir)
565 AC_SUBST(BASECONFIGDIR)
566 AC_SUBST(configdir)
567 AC_SUBST(CONFIGDIR)
568 AC_SUBST(xmldir)
569 AC_SUBST(XMLDIR)
570
571
572 dnl ===========================================================================
573
574 #
575 # Thread-safety primitives
576 #
577
578 AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [
579         fc_cv_have_intel_atomic_primitives=false
580         AC_TRY_LINK([
581                 void memory_barrier (void) { __sync_synchronize (); }
582                 int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
583                 int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
584                 void mutex_unlock (int *m) { __sync_lock_release (m); }
585                 ], [], fc_cv_have_intel_atomic_primitives=true
586         )
587 ])
588 if $fc_cv_have_intel_atomic_primitives; then
589         AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
590 fi
591
592 AC_CHECK_HEADERS(sched.h)
593 AC_CHECK_FUNCS(sched_yield)
594
595 have_pthread=false
596 if test "$os_win32" = no; then
597         AX_PTHREAD([have_pthread=true])
598 fi
599 if $have_pthread; then
600         AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
601 fi
602 AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
603
604
605 dnl ===========================================================================
606
607 #
608 # Let people not build/install docs if they don't have docbook
609 #
610
611 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
612
613 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
614
615 default_docs="yes"
616 #
617 # Check if docs exist or can be created
618 #
619 if test x$HASDOCBOOK = xno; then
620         if test -f $srcdir/doc/fonts-conf.5; then
621                 :
622         else
623                 default_docs="no"
624         fi
625 fi
626
627 AC_ARG_ENABLE(docs,
628         [AC_HELP_STRING([--disable-docs],
629                         [Don't build and install documentation])],
630         ,
631         enable_docs=$default_docs)
632
633 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
634
635 if test "x$enable_docs" = xyes; then
636         tmp=funcs.$$
637         cat $srcdir/doc/*.fncs | awk '
638         /^@TITLE@/      { if (!done) { printf ("%s\n", $2); done = 1; } }
639         /^@FUNC@/       { if (!done) { printf ("%s\n", $2); done = 1; } }
640         /^@@/           { done = 0; }' > $tmp
641         DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
642         echo DOCMAN3 $DOCMAN3
643         rm -f $tmp
644 else
645         DOCMAN3=""
646 fi
647 AC_SUBST(DOCMAN3)
648
649
650 dnl Figure out what cache format suffix to use for this architecture
651 AC_C_BIGENDIAN
652 AC_CHECK_SIZEOF([void *])
653 AC_CHECK_ALIGNOF([double])
654
655 dnl include the header file for workaround of miscalculating size on autoconf
656 dnl particularly for fat binaries
657 AH_BOTTOM([#include "config-fixups.h"])
658
659 AC_OUTPUT([
660 Makefile
661 fontconfig/Makefile
662 fc-lang/Makefile
663 fc-glyphname/Makefile
664 fc-case/Makefile
665 src/Makefile
666 conf.d/Makefile
667 fc-cache/Makefile
668 fc-cat/Makefile
669 fc-list/Makefile
670 fc-match/Makefile
671 fc-pattern/Makefile
672 fc-query/Makefile
673 fc-scan/Makefile
674 doc/Makefile
675 doc/version.sgml
676 test/Makefile
677 fontconfig.spec
678 fontconfig.pc
679 fontconfig-zip
680 ])