Really fix cross-compiling and building of tools this time
[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 AX_CC_FOR_BUILD()
109 AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
110 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
111 AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
112
113 dnl ==========================================================================
114
115 AC_ARG_WITH(arch,
116         [AC_HELP_STRING([--with-arch=ARCH],
117                         [Force architecture to ARCH])],
118         arch="$withval", arch=auto)
119
120 if test "x$arch" != xauto; then
121         AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
122 fi
123
124
125 dnl ==========================================================================
126
127 # Checks for header files.
128 AC_HEADER_DIRENT
129 AC_HEADER_STDC
130 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])
131 AX_CREATE_STDINT_H([src/fcstdint.h])
132
133 # Checks for typedefs, structures, and compiler characteristics.
134 AC_C_CONST
135 AC_C_INLINE
136 AC_C_FLEXIBLE_ARRAY_MEMBER
137 AC_TYPE_PID_T
138
139 # Checks for library functions.
140 AC_FUNC_VPRINTF
141 AC_FUNC_MMAP
142 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])
143
144 dnl AC_CHECK_FUNCS doesn't check for header files.
145 dnl posix_fadvise() may be not available in older libc.
146 fc_saved_CFLAGS="$CFLAGS"
147 CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
148 AC_MSG_CHECKING([for posix_fadvise])
149 AC_LINK_IFELSE([AC_LANG_SOURCE([[
150         #include <fcntl.h>
151         int main(void) {
152             return posix_fadvise(0, 0, 0, 0);
153         }
154         ]])],[
155                 AC_MSG_RESULT([yes])
156                 AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.])
157         ],[AC_MSG_RESULT([no])])
158 CFLAGS="$fc_saved_CFLAGS"
159
160 #
161 if test "x$ac_cv_func_fstatvfs" = "xyes"; then
162         AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
163                 [#include <sys/statvfs.h>])
164 fi
165 if test "x$ac_cv_func_fstatfs" = "xyes"; then
166         AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
167 #ifdef HAVE_SYS_VFS_H
168 #include <sys/vfs.h>
169 #endif
170 #ifdef HAVE_SYS_STATFS_H
171 #include <sys/statfs.h>
172 #endif
173 #ifdef HAVE_SYS_PARAM_H
174 #include <sys/param.h>
175 #endif
176 #ifdef HAVE_SYS_MOUNT_H
177 #include <sys/mount.h>
178 #endif])
179 fi
180 AC_CHECK_MEMBERS([struct dirent.d_type],,,
181         [#include <dirent.h>])
182 #
183 # regex
184 #
185 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
186         AC_DEFINE(USE_REGEX,,[Use regex])
187 fi
188
189 #
190 # Checks for iconv
191 #
192 AC_ARG_ENABLE(iconv,
193         [AC_HELP_STRING([--enable-iconv],
194                         [Use iconv to support non-Unicode SFNT name])],
195         ,enable_iconv=no)
196 AC_ARG_WITH(libiconv,
197         [AC_HELP_STRING([--with-libiconv=DIR],
198                         [Use libiconv in DIR])],
199         [if test "x$withval" = "xyes"; then
200                 libiconv_prefix=$prefix
201          else
202                 libiconv_prefix=$withval
203          fi],
204         [libiconv_prefix=auto])
205 AC_ARG_WITH(libiconv-includes,
206         [AC_HELP_STRING([--with-libiconv-includes=DIR],
207                         [Use libiconv includes in DIR])],
208         [libiconv_includes=$withval],
209         [libiconv_includes=auto])
210 AC_ARG_WITH(libiconv-lib,
211         [AC_HELP_STRING([--with-libiconv-lib=DIR],
212                         [Use libiconv library in DIR])],
213         [libiconv_lib=$withval],
214         [libiconv_lib=auto])
215
216 # if no libiconv,libiconv-includes,libiconv-lib are specified,
217 # libc's iconv has a priority.
218 if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
219         libiconv_cflags="-I${libiconv_includes}"
220 elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
221         libiconv_cflags="-I${libiconv_prefix}/include"
222 else
223         libiconv_cflags=""
224 fi
225 libiconv_libs=""
226 if test "x$libiconv_cflags" != "x"; then
227         if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
228                 libiconv_libs="-L${libiconv_lib} -liconv"
229         elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
230                 libiconv_libs="-L${libiconv_prefix}/lib -liconv"
231         else
232                 libiconv_libs="-liconv"
233         fi
234 fi
235
236 use_iconv=0
237 if test "x$enable_iconv" != "xno"; then
238         AC_MSG_CHECKING([for a usable iconv])
239         if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
240                 iconvsaved_CFLAGS="$CFLAGS"
241                 iconvsaved_LIBS="$LIBS"
242                 CFLAGS="$CFLAGS $libiconv_cflags"
243                 LIBS="$LIBS $libiconv_libs"
244
245                 AC_TRY_LINK([#include <iconv.h>],
246                         [iconv_open ("from", "to");],
247                         [iconv_type="libiconv"
248                          use_iconv=1],
249                         [use_iconv=0])
250
251                 CFLAGS="$iconvsaved_CFLAGS"
252                 LIBS="$iconvsaved_LIBS"
253                 ICONV_CFLAGS="$libiconv_cflags"
254                 ICONV_LIBS="$libiconv_libs"
255         fi
256         if test "x$use_iconv" = "x0"; then
257                 AC_TRY_LINK([#include <iconv.h>],
258                         [iconv_open ("from", "to");],
259                         [iconv_type="libc"
260                          use_iconv=1],
261                         [iconv_type="not found"
262                          use_iconv=0])
263         fi
264
265         AC_MSG_RESULT([$iconv_type])
266         AC_SUBST(ICONV_CFLAGS)
267         AC_SUBST(ICONV_LIBS)
268 fi
269 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
270 #
271 # Checks for FreeType
272 #
273 PKG_CHECK_MODULES(FREETYPE, freetype2)
274
275 AC_SUBST(FREETYPE_LIBS)
276 AC_SUBST(FREETYPE_CFLAGS)
277
278 fontconfig_save_libs="$LIBS"
279 fontconfig_save_cflags="$CFLAGS"
280 LIBS="$LIBS $FREETYPE_LIBS"
281 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
282 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)
283 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
284                 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
285                 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
286 [#include <ft2build.h>
287 #include FT_FREETYPE_H])
288 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
289                    [FT_Bitmap_Size structure includes y_ppem field])
290 CFLAGS="$fontconfig_save_cflags"
291 LIBS="$fontconfig_save_libs"
292
293 #
294 # Check expat configuration
295 #
296 AC_ARG_WITH(expat,
297         [AC_HELP_STRING([--with-expat=DIR],
298                         [Use Expat in DIR])],
299         [expat_prefix=$withval],
300         [expat_prefix=auto])
301 AC_ARG_WITH(expat-includes,
302         [AC_HELP_STRING([--with-expat-includes=DIR],
303                         [Use Expat includes in DIR])],
304         [expat_includes=$withval],
305         [expat_includes=auto])
306 AC_ARG_WITH(expat-lib,
307         [AC_HELP_STRING([--with-expat-lib=DIR])],
308         [expat_lib=$withval],
309         [expat_lib=auto])
310
311 if test "$enable_libxml2" != "yes"; then
312         use_pkgconfig_for_expat=yes
313         if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
314                 PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
315         else
316                 use_pkgconfig_for_expat=no
317         fi
318         if test "x$use_pkgconfig_for_expat" = "xno"; then
319                 if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
320                         EXPAT_CFLAGS="-I${expat_includes}"
321                 elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
322                         EXPAT_CFLAGS="-I${expat_prefix}/include"
323                 else
324                         EXPAT_CFLAGS=""
325                 fi
326                 if test "$expat_lib" != "auto"; then
327                         EXPAT_LIBS="-L${expat_lib} -lexpat"
328                 elif test "$expat_prefix" != "auto"; then
329                         EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
330                 else
331                         EXPAT_LIBS="-lexpat"
332                 fi
333         fi
334
335         expatsaved_CPPFLAGS="$CPPFLAGS"
336         expatsaved_LIBS="$LIBS"
337         CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
338         LIBS="$LIBS $EXPAT_LIBS"
339
340         AC_CHECK_HEADER(expat.h)
341         if test "$ac_cv_header_expat_h" = "no"; then
342                 AC_CHECK_HEADER(xmlparse.h)
343                 if test "$ac_cv_header_xmlparse_h" = "yes"; then
344                         HAVE_XMLPARSE_H=1
345                         AC_SUBST(HAVE_XMLPARSE_H)
346                         AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
347                                 [Use xmlparse.h instead of expat.h])
348                 else
349                         AC_MSG_ERROR([
350 *** expat is required. or try to use --enable-libxml2])
351                 fi
352         fi
353         AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
354         if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
355                 AC_MSG_ERROR([
356 *** expat is required. or try to use --enable-libxml2])
357         fi
358         CPPFLAGS="$expatsaved_CPPFLAGS"
359         LIBS="$expatsaved_LIBS"
360
361         AC_SUBST(EXPAT_CFLAGS)
362         AC_SUBST(EXPAT_LIBS)
363 fi
364
365 #
366 # Check libxml2 configuration
367 #
368 AC_ARG_ENABLE(libxml2,
369         [AC_HELP_STRING([--enable-libxml2],
370                         [Use libxml2 instead of Expat])])
371
372 if test "$enable_libxml2" = "yes"; then
373     PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
374     AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
375
376     AC_SUBST(LIBXML2_CFLAGS)
377     AC_SUBST(LIBXML2_LIBS)
378
379     fc_saved_CFLAGS="$CFLAGS"
380     CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
381     AC_MSG_CHECKING([SAX1 support in libxml2])
382     AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
383         #include <libxml/xmlversion.h>
384         #if !defined(LIBXML_SAX1_ENABLED)
385         #  include "error: No SAX1 support in libxml2"
386         #endif
387         ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
388 *** SAX1 support in libxml2 is required. enable it or use expat instead.])])
389     CFLAGS="$fc_saved_CFLAGS"
390 fi
391
392 #
393 # Set default font directory
394 #
395
396 AC_ARG_WITH(default-fonts,
397         [AC_HELP_STRING([--with-default-fonts=DIR],
398                         [Use fonts from DIR when config is busted])],
399         default_fonts="$withval", default_fonts=yes)
400
401 case "$default_fonts" in
402 yes)
403         if test "$os_win32" = "yes"; then
404                 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
405                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
406                                    [Windows font directory])
407         else
408                 FC_DEFAULT_FONTS="/usr/share/fonts"
409                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
410                                    [System font directory])
411         fi
412         ;;
413 *)
414         FC_DEFAULT_FONTS="$default_fonts"
415         AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
416                            [System font directory])
417         ;;
418 esac
419
420 AC_SUBST(FC_DEFAULT_FONTS)
421
422 #
423 # Add more fonts if available.  By default, add only the directories
424 # with outline fonts; those with bitmaps can be added as desired in
425 # local.conf or ~/.fonts.conf
426 #
427 AC_ARG_WITH(add-fonts,
428         [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
429                         [Find additional fonts in DIR1,DIR2,... ])],
430         add_fonts="$withval", add_fonts=yes)
431
432 case "$add_fonts" in
433 yes)
434         FC_ADD_FONTS=""
435         for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
436                 case x"$FC_ADD_FONTS" in
437                 x)
438                         sub="$dir/fonts"
439                         if test -d "$sub"; then
440                                 case x$FC_ADD_FONTS in
441                                 x)
442                                         FC_ADD_FONTS="$sub"
443                                         ;;
444                                 *)
445                                         FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
446                                         ;;
447                                 esac
448                         fi
449                         ;;
450                 esac
451         done
452         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
453         ;;
454 no)
455         FC_ADD_FONTS=""
456         ;;
457 *)
458         FC_ADD_FONTS="$add_fonts"
459         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
460         ;;
461 esac
462
463 AC_SUBST(FC_ADD_FONTS)
464
465 FC_FONTPATH=""
466
467 case "$FC_ADD_FONTS" in
468 "")
469         ;;
470 *)
471         FC_FONTPATH=`echo $FC_ADD_FONTS | 
472                         sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
473         ;;
474 esac
475
476 AC_SUBST(FC_FONTPATH)
477
478 #
479 # Set default cache directory path
480 #
481 AC_ARG_WITH(cache-dir,
482         [AC_HELP_STRING([--with-cache-dir=DIR],
483                         [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
484         fc_cachedir="$withval", fc_cachedir=yes)
485
486 case $fc_cachedir in
487 no|yes)
488         if test "$os_win32" = "yes"; then
489                 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
490         else
491                 fc_cachedir='${localstatedir}/cache/${PACKAGE}'
492         fi
493         ;;
494 *)
495         ;;
496 esac
497 AC_SUBST(fc_cachedir)
498 FC_CACHEDIR=${fc_cachedir}
499 AC_SUBST(FC_CACHEDIR)
500
501 FC_FONTDATE=`LC_ALL=C date`
502
503 AC_SUBST(FC_FONTDATE)
504
505 #
506 # Set configuration paths
507 #
508
509 AC_ARG_WITH(templatedir,
510         [AC_HELP_STRING([--with-templatedir=DIR],
511                         [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
512         [templatedir="$withval"],
513         [templatedir=yes])
514 AC_ARG_WITH(baseconfigdir,
515         [AC_HELP_STRING([--with-baseconfigdir=DIR],
516                         [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
517         [baseconfigdir="$withval"],
518         [baseconfigdir=yes])
519 AC_ARG_WITH(configdir,
520         [AC_HELP_STRING([--with-configdir=DIR],
521                         [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
522         [configdir="$withval"],
523         [configdir=yes])
524 AC_ARG_WITH(xmldir,
525         [AC_HELP_STRING([--with-xmldir=DIR],
526                         [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
527         [xmldir="$withval"],
528         [xmldir=yes])
529
530 case "$templatedir" in
531 no|yes)
532         templatedir='${datadir}'/fontconfig/conf.avail
533         ;;
534 *)
535         ;;
536 esac
537 case "$baseconfigdir" in
538 no|yes)
539         baseconfigdir='${sysconfdir}'/fonts
540         ;;
541 *)
542         ;;
543 esac
544 case "$configdir" in
545 no|yes)
546         configdir='${baseconfigdir}'/conf.d
547         ;;
548 *)
549         ;;
550 esac
551 case "$xmldir" in
552 no|yes)
553         xmldir='${datadir}'/xml/fontconfig
554         ;;
555 *)
556         ;;
557 esac
558
559 TEMPLATEDIR=${templatedir}
560 BASECONFIGDIR=${baseconfigdir}
561 CONFIGDIR=${configdir}
562 XMLDIR=${xmldir}
563 AC_SUBST(templatedir)
564 AC_SUBST(TEMPLATEDIR)
565 AC_SUBST(baseconfigdir)
566 AC_SUBST(BASECONFIGDIR)
567 AC_SUBST(configdir)
568 AC_SUBST(CONFIGDIR)
569 AC_SUBST(xmldir)
570 AC_SUBST(XMLDIR)
571
572
573 dnl ===========================================================================
574
575 #
576 # Thread-safety primitives
577 #
578
579 AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [
580         fc_cv_have_intel_atomic_primitives=false
581         AC_TRY_LINK([
582                 void memory_barrier (void) { __sync_synchronize (); }
583                 int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
584                 int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
585                 void mutex_unlock (int *m) { __sync_lock_release (m); }
586                 ], [], fc_cv_have_intel_atomic_primitives=true
587         )
588 ])
589 if $fc_cv_have_intel_atomic_primitives; then
590         AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
591 fi
592
593 AC_CHECK_HEADERS(sched.h)
594 AC_CHECK_FUNCS(sched_yield)
595
596 have_pthread=false
597 if test "$os_win32" = no; then
598         AX_PTHREAD([have_pthread=true])
599 fi
600 if $have_pthread; then
601         AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
602 fi
603 AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
604
605
606 dnl ===========================================================================
607
608 #
609 # Let people not build/install docs if they don't have docbook
610 #
611
612 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
613
614 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
615
616 default_docs="yes"
617 #
618 # Check if docs exist or can be created
619 #
620 if test x$HASDOCBOOK = xno; then
621         if test -f $srcdir/doc/fonts-conf.5; then
622                 :
623         else
624                 default_docs="no"
625         fi
626 fi
627
628 AC_ARG_ENABLE(docs,
629         [AC_HELP_STRING([--disable-docs],
630                         [Don't build and install documentation])],
631         ,
632         enable_docs=$default_docs)
633
634 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
635
636 if test "x$enable_docs" = xyes; then
637         tmp=funcs.$$
638         cat $srcdir/doc/*.fncs | awk '
639         /^@TITLE@/      { if (!done) { printf ("%s\n", $2); done = 1; } }
640         /^@FUNC@/       { if (!done) { printf ("%s\n", $2); done = 1; } }
641         /^@@/           { done = 0; }' > $tmp
642         DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
643         echo DOCMAN3 $DOCMAN3
644         rm -f $tmp
645 else
646         DOCMAN3=""
647 fi
648 AC_SUBST(DOCMAN3)
649
650
651 dnl Figure out what cache format suffix to use for this architecture
652 AC_C_BIGENDIAN
653 AC_CHECK_SIZEOF([void *])
654 AC_CHECK_ALIGNOF([double])
655
656 dnl include the header file for workaround of miscalculating size on autoconf
657 dnl particularly for fat binaries
658 AH_BOTTOM([#include "config-fixups.h"])
659
660 AC_OUTPUT([
661 Makefile
662 fontconfig/Makefile
663 fc-lang/Makefile
664 fc-glyphname/Makefile
665 fc-case/Makefile
666 src/Makefile
667 conf.d/Makefile
668 fc-cache/Makefile
669 fc-cat/Makefile
670 fc-list/Makefile
671 fc-match/Makefile
672 fc-pattern/Makefile
673 fc-query/Makefile
674 fc-scan/Makefile
675 doc/Makefile
676 doc/version.sgml
677 test/Makefile
678 fontconfig.spec
679 fontconfig.pc
680 fontconfig-zip
681 ])