2 dnl fontconfig/configure.in
4 dnl Copyright © 2003 Keith Packard
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.
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.
24 dnl Process this file with autoconf to create configure.
28 dnl ==========================================================================
30 dnl ==========================================================================
32 dnl This is the package version number, not the shared library
33 dnl version. This same version number must appear in fontconfig/fontconfig.h
34 dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
35 dnl not possible to extract the version number here from fontconfig.h
36 AC_INIT([fontconfig], [2.13.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig])
37 AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2])
38 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
40 dnl ==========================================================================
42 AC_CONFIG_HEADERS(config.h)
43 AC_CONFIG_MACRO_DIR([m4])
46 AC_USE_SYSTEM_EXTENSIONS
52 m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
54 AM_MISSING_PROG([GIT], [git])
55 AM_MISSING_PROG([GPERF], [gperf])
57 AC_MSG_CHECKING([for RM macro])
58 _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
59 if test "x$_predefined_rm" = "x"; then
60 AC_MSG_RESULT([no predefined RM])
61 AC_CHECK_PROG(RM, rm, [rm -f])
63 AC_MSG_RESULT($_predefined_rm)
66 dnl Initialize libtool
68 LT_INIT([disable-static win32-dll])
70 dnl libtool versioning
72 dnl bump revision when fixing bugs
73 dnl bump current and age, reset revision to zero when adding APIs
74 dnl bump current, leave age, reset revision to zero when changing/removing APIS
77 AC_SUBST(LIBT_CURRENT)
78 AC_SUBST(LIBT_REVISION)
81 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
82 AC_SUBST(LIBT_VERSION_INFO)
84 LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
85 AC_SUBST(LIBT_CURRENT_MINUS_AGE)
88 PKGCONFIG_REQUIRES_PRIVATELY=
90 dnl ==========================================================================
98 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
100 dnl ==========================================================================
102 dnl ==========================================================================
103 GETTEXT_PACKAGE=$PACKAGE
104 AC_SUBST(GETTEXT_PACKAGE)
105 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
107 AM_GNU_GETTEXT_VERSION([0.19.8])
108 AM_GNU_GETTEXT([external])
110 dnl ==========================================================================
112 if test "$os_win32" = "yes"; then
113 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
115 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
117 AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
119 WARNING_CPP_DIRECTIVE="no"
120 if test "x$GCC" = "xyes"; then
121 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
122 -Wmissing-prototypes -Wmissing-declarations \
123 -Wnested-externs -fno-strict-aliasing"
124 WARNING_CPP_DIRECTIVE="yes"
125 elif test "x$SUNCC" = "xyes"; then
127 WARNING_CPP_DIRECTIVE="yes"
129 if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then
130 AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
131 [Can use #warning in C files])
133 AC_SUBST(WARN_CFLAGS)
136 dnl ==========================================================================
139 AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
140 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
141 AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
143 dnl ==========================================================================
146 [AC_HELP_STRING([--with-arch=ARCH],
147 [Force architecture to ARCH])],
148 arch="$withval", arch=auto)
150 if test "x$arch" != xauto; then
151 AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
155 dnl ==========================================================================
157 # Checks for header files.
160 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
161 AX_CREATE_STDINT_H([src/fcstdint.h])
163 # Checks for typedefs, structures, and compiler characteristics.
166 AC_C_FLEXIBLE_ARRAY_MEMBER
169 # Checks for library functions.
172 AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink fstatvfs fstatfs lstat])
174 dnl AC_CHECK_FUNCS doesn't check for header files.
175 dnl posix_fadvise() may be not available in older libc.
176 AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
177 AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.])
180 AC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include <sys/stat.h>])
183 if test "x$ac_cv_func_fstatvfs" = "xyes"; then
184 AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
185 [#include <sys/statvfs.h>])
187 if test "x$ac_cv_func_fstatfs" = "xyes"; then
188 AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
189 #ifdef HAVE_SYS_VFS_H
192 #ifdef HAVE_SYS_STATFS_H
193 #include <sys/statfs.h>
195 #ifdef HAVE_SYS_PARAM_H
196 #include <sys/param.h>
198 #ifdef HAVE_SYS_MOUNT_H
199 #include <sys/mount.h>
202 AC_CHECK_MEMBERS([struct dirent.d_type],,,
203 [#include <dirent.h>])
205 # Check the argument type of the gperf hash/lookup function
206 AC_MSG_CHECKING([The type of len parameter of gperf hash/lookup function])
207 fc_gperf_test="$(echo 'foo' | gperf -L ANSI-C)"
208 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
211 const char *in_word_set(register const char *, register size_t);
213 ]])], [FC_GPERF_SIZE_T=size_t],
214 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
217 const char *in_word_set(register const char *, register unsigned int);
219 ]])], [FC_GPERF_SIZE_T="unsigned int"],
220 [AC_MSG_ERROR([Unable to determine the type of the len parameter of the gperf hash/lookup function])]
222 AC_DEFINE_UNQUOTED(FC_GPERF_SIZE_T, $FC_GPERF_SIZE_T, [The type of len parameter of the gperf hash/lookup function])
223 AC_MSG_RESULT($FC_GPERF_SIZE_T)
229 [AC_HELP_STRING([--enable-iconv],
230 [Use iconv to support non-Unicode SFNT name])],
232 AC_ARG_WITH(libiconv,
233 [AC_HELP_STRING([--with-libiconv=DIR],
234 [Use libiconv in DIR])],
235 [if test "x$withval" = "xyes"; then
236 libiconv_prefix=$prefix
238 libiconv_prefix=$withval
240 [libiconv_prefix=auto])
241 AC_ARG_WITH(libiconv-includes,
242 [AC_HELP_STRING([--with-libiconv-includes=DIR],
243 [Use libiconv includes in DIR])],
244 [libiconv_includes=$withval],
245 [libiconv_includes=auto])
246 AC_ARG_WITH(libiconv-lib,
247 [AC_HELP_STRING([--with-libiconv-lib=DIR],
248 [Use libiconv library in DIR])],
249 [libiconv_lib=$withval],
252 # if no libiconv,libiconv-includes,libiconv-lib are specified,
253 # libc's iconv has a priority.
254 if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
255 libiconv_cflags="-I${libiconv_includes}"
256 elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
257 libiconv_cflags="-I${libiconv_prefix}/include"
262 if test "x$libiconv_cflags" != "x"; then
263 if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
264 libiconv_libs="-L${libiconv_lib} -liconv"
265 elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
266 libiconv_libs="-L${libiconv_prefix}/lib -liconv"
268 libiconv_libs="-liconv"
273 if test "x$enable_iconv" != "xno"; then
274 AC_MSG_CHECKING([for a usable iconv])
275 if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
276 iconvsaved_CFLAGS="$CFLAGS"
277 iconvsaved_LIBS="$LIBS"
278 CFLAGS="$CFLAGS $libiconv_cflags"
279 LIBS="$LIBS $libiconv_libs"
281 AC_TRY_LINK([#include <iconv.h>],
282 [iconv_open ("from", "to");],
283 [iconv_type="libiconv"
285 ICONV_CFLAGS="$libiconv_cflags"
286 ICONV_LIBS="$libiconv_libs"
290 CFLAGS="$iconvsaved_CFLAGS"
291 LIBS="$iconvsaved_LIBS"
293 if test "x$use_iconv" = "x0"; then
294 AC_TRY_LINK([#include <iconv.h>],
295 [iconv_open ("from", "to");],
298 [iconv_type="not found"
302 AC_MSG_RESULT([$iconv_type])
303 AC_SUBST(ICONV_CFLAGS)
306 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
308 # Checks for FreeType
310 dnl See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT for versioning in freetype
311 PKG_CHECK_MODULES(FREETYPE, freetype2 >= 21.0.15)
312 PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 21.0.15"
314 AC_SUBST(FREETYPE_LIBS)
315 AC_SUBST(FREETYPE_CFLAGS)
317 fontconfig_save_libs="$LIBS"
318 fontconfig_save_cflags="$CFLAGS"
319 LIBS="$LIBS $FREETYPE_LIBS"
320 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
321 AC_CHECK_FUNCS(FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Done_MM_Var)
323 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
324 #include <ft2build.h>
325 #include FT_CONFIG_OPTIONS_H
326 #ifndef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
327 # error "No pcf long family names support"
329 ]])], [have_pcf_long_family_names=yes], [have_pcf_long_family_names=no])
330 AM_CONDITIONAL(FREETYPE_PCF_LONG_FAMILY_NAMES, test "x$have_pcf_long_family_names" = xyes)
332 LIBS="$fontconfig_save_libs"
333 CFLAGS="$fontconfig_save_cflags"
338 if test "$os_win32" != "yes"; then
339 PKG_CHECK_MODULES([UUID], [uuid])
340 PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY uuid"
345 AC_SUBST(UUID_CFLAGS)
349 # Check expat configuration
352 [AC_HELP_STRING([--with-expat=DIR],
353 [Use Expat in DIR])],
354 [expat_prefix=$withval],
356 AC_ARG_WITH(expat-includes,
357 [AC_HELP_STRING([--with-expat-includes=DIR],
358 [Use Expat includes in DIR])],
359 [expat_includes=$withval],
360 [expat_includes=auto])
361 AC_ARG_WITH(expat-lib,
362 [AC_HELP_STRING([--with-expat-lib=DIR])],
363 [expat_lib=$withval],
366 if test "$enable_libxml2" != "yes"; then
367 use_pkgconfig_for_expat=yes
368 if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
369 PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
371 use_pkgconfig_for_expat=no
373 if test "x$use_pkgconfig_for_expat" = "xno"; then
374 if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
375 EXPAT_CFLAGS="-I${expat_includes}"
376 elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
377 EXPAT_CFLAGS="-I${expat_prefix}/include"
381 if test "$expat_lib" != "auto"; then
382 EXPAT_LIBS="-L${expat_lib} -lexpat"
383 elif test "$expat_prefix" != "auto"; then
384 EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
388 PKG_EXPAT_CFLAGS=$EXPAT_CFLAGS
389 PKG_EXPAT_LIBS=$EXPAT_LIBS
391 PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
396 expatsaved_CPPFLAGS="$CPPFLAGS"
397 expatsaved_LIBS="$LIBS"
398 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
399 LIBS="$LIBS $EXPAT_LIBS"
401 AC_CHECK_HEADER(expat.h)
402 if test "$ac_cv_header_expat_h" = "no"; then
403 AC_CHECK_HEADER(xmlparse.h)
404 if test "$ac_cv_header_xmlparse_h" = "yes"; then
406 AC_SUBST(HAVE_XMLPARSE_H)
407 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
408 [Use xmlparse.h instead of expat.h])
411 *** expat is required. or try to use --enable-libxml2])
414 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
415 if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
417 *** expat is required. or try to use --enable-libxml2])
419 CPPFLAGS="$expatsaved_CPPFLAGS"
420 LIBS="$expatsaved_LIBS"
422 AC_SUBST(EXPAT_CFLAGS)
424 AC_SUBST(PKG_EXPAT_CFLAGS)
425 AC_SUBST(PKG_EXPAT_LIBS)
429 # Check libxml2 configuration
431 AC_ARG_ENABLE(libxml2,
432 [AC_HELP_STRING([--enable-libxml2],
433 [Use libxml2 instead of Expat])])
435 if test "$enable_libxml2" = "yes"; then
436 PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
437 PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0 >= 2.6"
438 AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
440 AC_SUBST(LIBXML2_CFLAGS)
441 AC_SUBST(LIBXML2_LIBS)
443 fc_saved_CFLAGS="$CFLAGS"
444 CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
445 AC_MSG_CHECKING([SAX1 support in libxml2])
446 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
447 #include <libxml/xmlversion.h>
448 #if !defined(LIBXML_SAX1_ENABLED)
449 # include "error: No SAX1 support in libxml2"
451 ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
452 *** SAX1 support in libxml2 is required. enable it or use expat instead.])])
453 CFLAGS="$fc_saved_CFLAGS"
457 # Set default hinting
460 AC_ARG_WITH(default-hinting,
461 [AC_HELP_STRING([--with-default-hinting=NAME],
462 [Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])],
463 preferred_hinting="$withval", preferred_hinting=slight)
465 case "$preferred_hinting" in
466 none|slight|medium|full)
467 PREFERRED_HINTING="$preferred_hinting"
468 AC_SUBST(PREFERRED_HINTING)
471 AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full])
476 # Set default font directory
479 AC_ARG_WITH(default-fonts,
480 [AC_HELP_STRING([--with-default-fonts=DIR],
481 [Use fonts from DIR when config is busted])],
482 default_fonts="$withval", default_fonts=yes)
484 case "$default_fonts" in
486 if test "$os_win32" = "yes"; then
487 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
488 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
489 [Windows font directory])
491 FC_DEFAULT_FONTS="/usr/share/fonts"
492 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
493 [System font directory])
497 FC_DEFAULT_FONTS="$default_fonts"
498 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
499 [System font directory])
503 AC_SUBST(FC_DEFAULT_FONTS)
506 # Add more fonts if available. By default, add only the directories
507 # with outline fonts; those with bitmaps can be added as desired in
508 # local.conf or ~/.fonts.conf
510 AC_ARG_WITH(add-fonts,
511 [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
512 [Find additional fonts in DIR1,DIR2,... ])],
513 add_fonts="$withval", add_fonts=yes)
518 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
519 case x"$FC_ADD_FONTS" in
522 if test -d "$sub"; then
523 case x$FC_ADD_FONTS in
528 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
535 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
541 FC_ADD_FONTS="$add_fonts"
542 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
546 AC_SUBST(FC_ADD_FONTS)
550 case "$FC_ADD_FONTS" in
554 FC_FONTPATH=`echo $FC_ADD_FONTS |
555 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
559 AC_SUBST(FC_FONTPATH)
562 # Set default cache directory path
564 AC_ARG_WITH(cache-dir,
565 [AC_HELP_STRING([--with-cache-dir=DIR],
566 [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
567 fc_cachedir="$withval", fc_cachedir=yes)
571 if test "$os_win32" = "yes"; then
572 fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
574 fc_cachedir='${localstatedir}/cache/${PACKAGE}'
580 AC_SUBST(fc_cachedir)
581 FC_CACHEDIR=${fc_cachedir}
582 AC_SUBST(FC_CACHEDIR)
584 FC_FONTDATE=`LC_ALL=C date`
586 AC_SUBST(FC_FONTDATE)
589 # Set configuration paths
592 AC_ARG_WITH(templatedir,
593 [AC_HELP_STRING([--with-templatedir=DIR],
594 [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
595 [templatedir="$withval"],
597 AC_ARG_WITH(baseconfigdir,
598 [AC_HELP_STRING([--with-baseconfigdir=DIR],
599 [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
600 [baseconfigdir="$withval"],
602 AC_ARG_WITH(configdir,
603 [AC_HELP_STRING([--with-configdir=DIR],
604 [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
605 [configdir="$withval"],
608 [AC_HELP_STRING([--with-xmldir=DIR],
609 [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
613 case "$templatedir" in
615 templatedir='${datadir}'/fontconfig/conf.avail
620 case "$baseconfigdir" in
622 baseconfigdir='${sysconfdir}'/fonts
629 configdir='${BASECONFIGDIR}'/conf.d
636 xmldir='${datadir}'/xml/fontconfig
642 TEMPLATEDIR=${templatedir}
643 BASECONFIGDIR=${baseconfigdir}
644 CONFIGDIR=${configdir}
646 AC_SUBST(TEMPLATEDIR)
647 AC_SUBST(BASECONFIGDIR)
652 dnl ===========================================================================
655 # Thread-safety primitives
658 AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [
659 fc_cv_have_intel_atomic_primitives=false
661 void memory_barrier (void) { __sync_synchronize (); }
662 int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
663 int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
664 void mutex_unlock (int *m) { __sync_lock_release (m); }
665 ], [], fc_cv_have_intel_atomic_primitives=true
668 if $fc_cv_have_intel_atomic_primitives; then
669 AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
672 AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [
673 fc_cv_have_solaris_atomic_ops=false
676 /* This requires Solaris Studio 12.2 or newer: */
677 #include <mbarrier.h>
678 void memory_barrier (void) { __machine_rw_barrier (); }
679 int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); }
680 void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); }
681 ], [], fc_cv_have_solaris_atomic_ops=true
684 if $fc_cv_have_solaris_atomic_ops; then
685 AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations])
688 if test "$os_win32" = no && ! $have_pthread; then
689 AC_CHECK_HEADERS(sched.h)
690 AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield]))
694 if test "$os_win32" = no; then
695 AX_PTHREAD([have_pthread=true])
697 if $have_pthread; then
698 LIBS="$PTHREAD_LIBS $LIBS"
699 CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
701 AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
703 AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
706 dnl ===========================================================================
709 # Let people not build/install docs if they don't have docbook
712 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
714 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
718 # Check if docs exist or can be created
720 if test x$HASDOCBOOK = xno; then
721 if test -f $srcdir/doc/fonts-conf.5; then
729 [AC_HELP_STRING([--disable-docs],
730 [Don't build and install documentation])],
732 enable_docs=$default_docs)
734 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
736 if test "x$enable_docs" = xyes; then
738 cat $srcdir/doc/*.fncs | awk '
739 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
740 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
741 /^@@/ { done = 0; }' > $tmp
742 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
743 echo DOCMAN3 $DOCMAN3
751 dnl Figure out what cache format suffix to use for this architecture
753 AC_CHECK_SIZEOF([void *])
754 AC_CHECK_ALIGNOF([double])
755 AC_CHECK_ALIGNOF([void *])
757 dnl include the header file for workaround of miscalculating size on autoconf
758 dnl particularly for fat binaries
759 AH_BOTTOM([#include "config-fixups.h"])
763 AC_SUBST(PKGCONFIG_REQUIRES)
764 AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY)