diff options
Diffstat (limited to 'chromium/third_party/fontconfig/src/configure.ac')
-rw-r--r-- | chromium/third_party/fontconfig/src/configure.ac | 751 |
1 files changed, 751 insertions, 0 deletions
diff --git a/chromium/third_party/fontconfig/src/configure.ac b/chromium/third_party/fontconfig/src/configure.ac new file mode 100644 index 00000000000..c3743f43589 --- /dev/null +++ b/chromium/third_party/fontconfig/src/configure.ac @@ -0,0 +1,751 @@ +dnl +dnl fontconfig/configure.in +dnl +dnl Copyright © 2003 Keith Packard +dnl +dnl Permission to use, copy, modify, distribute, and sell this software and its +dnl documentation for any purpose is hereby granted without fee, provided that +dnl the above copyright notice appear in all copies and that both that +dnl copyright notice and this permission notice appear in supporting +dnl documentation, and that the name of the author(s) not be used in +dnl advertising or publicity pertaining to distribution of the software without +dnl specific, written prior permission. The authors make no +dnl representations about the suitability of this software for any purpose. It +dnl is provided "as is" without express or implied warranty. +dnl +dnl THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +dnl EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +dnl PERFORMANCE OF THIS SOFTWARE. +dnl +dnl Process this file with autoconf to create configure. + +AC_PREREQ(2.61) + +dnl ========================================================================== +dnl Versioning +dnl ========================================================================== + +dnl This is the package version number, not the shared library +dnl version. This same version number must appear in fontconfig/fontconfig.h +dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's +dnl not possible to extract the version number here from fontconfig.h +AC_INIT([fontconfig], [2.11.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) +AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +dnl libtool versioning + +dnl bump revision when fixing bugs +dnl bump current and age, reset revision to zero when adding APIs +dnl bump current, leave age, reset revision to zero when changing/removing APIS +LIBT_CURRENT=9 +LIBT_REVISION=0 +AC_SUBST(LIBT_CURRENT) +AC_SUBST(LIBT_REVISION) +LIBT_AGE=8 + +LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" +AC_SUBST(LIBT_VERSION_INFO) + +LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` +AC_SUBST(LIBT_CURRENT_MINUS_AGE) + +PKGCONFIG_REQUIRES= +PKGCONFIG_REQUIRES_PRIVATELY= + +dnl ========================================================================== + +AC_CONFIG_HEADERS(config.h) +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CC +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE +AC_PROG_INSTALL +AC_PROG_LN_S +AC_LIBTOOL_WIN32_DLL +AM_PROG_LIBTOOL +AC_PROG_MAKE_SET +PKG_PROG_PKG_CONFIG +m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig)) + +AM_MISSING_PROG([GIT], [git]) +AM_MISSING_PROG([GPERF], [gperf]) + +AC_MSG_CHECKING([for RM macro]) +_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` +if test "x$_predefined_rm" = "x"; then + AC_MSG_RESULT([no predefined RM]) + AC_CHECK_PROG(RM, rm, [rm -f]) +else + AC_MSG_RESULT($_predefined_rm) +fi + +dnl ========================================================================== + +case "$host" in + *-*-mingw*) + os_win32=yes + ;; + *) + os_win32=no +esac +AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") + +if test "$os_win32" = "yes"; then + AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) +fi +AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) + +WARN_CFLAGS="" +if test "x$GCC" = "xyes"; then + WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ + -Wmissing-prototypes -Wmissing-declarations \ + -Wnested-externs -fno-strict-aliasing" + AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, + [Can use #warning in C files]) +fi +AC_SUBST(WARN_CFLAGS) + + +dnl ========================================================================== + +AX_CC_FOR_BUILD() +AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler]) +AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) +AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes") + +dnl ========================================================================== + +AC_ARG_WITH(arch, + [AC_HELP_STRING([--with-arch=ARCH], + [Force architecture to ARCH])], + arch="$withval", arch=auto) + +if test "x$arch" != xauto; then + AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names]) +fi + + +dnl ========================================================================== + +# Checks for header files. +AC_HEADER_DIRENT +AC_HEADER_STDC +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]) +AX_CREATE_STDINT_H([src/fcstdint.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_C_FLEXIBLE_ARRAY_MEMBER +AC_TYPE_PID_T + +# Checks for library functions. +AC_FUNC_VPRINTF +AC_FUNC_MMAP +AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat]) + +dnl AC_CHECK_FUNCS doesn't check for header files. +dnl posix_fadvise() may be not available in older libc. +fc_saved_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" +AC_MSG_CHECKING([for posix_fadvise]) +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <fcntl.h> + int main(void) { + return posix_fadvise(0, 0, 0, 0); + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.]) + ],[AC_MSG_RESULT([no])]) +if test "$os_win32" = "no"; then + AC_MSG_CHECKING([for scandir]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <dirent.h> + int comp(const struct dirent **, const struct dirent **); + int comp(const struct dirent **a, const struct dirent **b) { return 0; } + int main(void) { + struct dirent **d; + return scandir(".", &d, 0, &comp) >= 0; + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.]) + ],[ + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <dirent.h> + int comp(const void *, const void *); + int comp(const void *a, const void *b) { return 0; } + int main(void) { + struct dirent **d; + return scandir(".", &d, 0, &comp) >= 0; + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)]) + ],[ + AC_MSG_ERROR([ +*** No scandir function available.]) + ]) + ]) +fi +CFLAGS="$fc_saved_CFLAGS" + +# +if test "x$ac_cv_func_fstatvfs" = "xyes"; then + AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,, + [#include <sys/statvfs.h>]) +fi +if test "x$ac_cv_func_fstatfs" = "xyes"; then + AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [ +#ifdef HAVE_SYS_VFS_H +#include <sys/vfs.h> +#endif +#ifdef HAVE_SYS_STATFS_H +#include <sys/statfs.h> +#endif +#ifdef HAVE_SYS_PARAM_H +#include <sys/param.h> +#endif +#ifdef HAVE_SYS_MOUNT_H +#include <sys/mount.h> +#endif]) +fi +AC_CHECK_MEMBERS([struct dirent.d_type],,, + [#include <dirent.h>]) +# +# regex +# +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 + AC_DEFINE(USE_REGEX,,[Use regex]) +fi + +# +# Checks for iconv +# +AC_ARG_ENABLE(iconv, + [AC_HELP_STRING([--enable-iconv], + [Use iconv to support non-Unicode SFNT name])], + ,enable_iconv=no) +AC_ARG_WITH(libiconv, + [AC_HELP_STRING([--with-libiconv=DIR], + [Use libiconv in DIR])], + [if test "x$withval" = "xyes"; then + libiconv_prefix=$prefix + else + libiconv_prefix=$withval + fi], + [libiconv_prefix=auto]) +AC_ARG_WITH(libiconv-includes, + [AC_HELP_STRING([--with-libiconv-includes=DIR], + [Use libiconv includes in DIR])], + [libiconv_includes=$withval], + [libiconv_includes=auto]) +AC_ARG_WITH(libiconv-lib, + [AC_HELP_STRING([--with-libiconv-lib=DIR], + [Use libiconv library in DIR])], + [libiconv_lib=$withval], + [libiconv_lib=auto]) + +# if no libiconv,libiconv-includes,libiconv-lib are specified, +# libc's iconv has a priority. +if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then + libiconv_cflags="-I${libiconv_includes}" +elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then + libiconv_cflags="-I${libiconv_prefix}/include" +else + libiconv_cflags="" +fi +libiconv_libs="" +if test "x$libiconv_cflags" != "x"; then + if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then + libiconv_libs="-L${libiconv_lib} -liconv" + elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then + libiconv_libs="-L${libiconv_prefix}/lib -liconv" + else + libiconv_libs="-liconv" + fi +fi + +use_iconv=0 +if test "x$enable_iconv" != "xno"; then + AC_MSG_CHECKING([for a usable iconv]) + if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then + iconvsaved_CFLAGS="$CFLAGS" + iconvsaved_LIBS="$LIBS" + CFLAGS="$CFLAGS $libiconv_cflags" + LIBS="$LIBS $libiconv_libs" + + AC_TRY_LINK([#include <iconv.h>], + [iconv_open ("from", "to");], + [iconv_type="libiconv" + use_iconv=1 + ICONV_CFLAGS="$libiconv_cflags" + ICONV_LIBS="$libiconv_libs" + ], + [use_iconv=0]) + + CFLAGS="$iconvsaved_CFLAGS" + LIBS="$iconvsaved_LIBS" + fi + if test "x$use_iconv" = "x0"; then + AC_TRY_LINK([#include <iconv.h>], + [iconv_open ("from", "to");], + [iconv_type="libc" + use_iconv=1], + [iconv_type="not found" + use_iconv=0]) + fi + + AC_MSG_RESULT([$iconv_type]) + AC_SUBST(ICONV_CFLAGS) + AC_SUBST(ICONV_LIBS) +fi +AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.]) +# +# Checks for FreeType +# +PKG_CHECK_MODULES(FREETYPE, freetype2) +PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2" + +AC_SUBST(FREETYPE_LIBS) +AC_SUBST(FREETYPE_CFLAGS) + +fontconfig_save_libs="$LIBS" +fontconfig_save_cflags="$CFLAGS" +LIBS="$LIBS $FREETYPE_LIBS" +CFLAGS="$CFLAGS $FREETYPE_CFLAGS" +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) +AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, + HAVE_FT_BITMAP_SIZE_Y_PPEM=1, + HAVE_FT_BITMAP_SIZE_Y_PPEM=0, +[#include <ft2build.h> +#include FT_FREETYPE_H]) +AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, + [FT_Bitmap_Size structure includes y_ppem field]) +CFLAGS="$fontconfig_save_cflags" +LIBS="$fontconfig_save_libs" + +# +# Check expat configuration +# +AC_ARG_WITH(expat, + [AC_HELP_STRING([--with-expat=DIR], + [Use Expat in DIR])], + [expat_prefix=$withval], + [expat_prefix=auto]) +AC_ARG_WITH(expat-includes, + [AC_HELP_STRING([--with-expat-includes=DIR], + [Use Expat includes in DIR])], + [expat_includes=$withval], + [expat_includes=auto]) +AC_ARG_WITH(expat-lib, + [AC_HELP_STRING([--with-expat-lib=DIR])], + [expat_lib=$withval], + [expat_lib=auto]) + +if test "$enable_libxml2" != "yes"; then + use_pkgconfig_for_expat=yes + if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then + PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no) + else + use_pkgconfig_for_expat=no + fi + if test "x$use_pkgconfig_for_expat" = "xno"; then + if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then + EXPAT_CFLAGS="-I${expat_includes}" + elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then + EXPAT_CFLAGS="-I${expat_prefix}/include" + else + EXPAT_CFLAGS="" + fi + if test "$expat_lib" != "auto"; then + EXPAT_LIBS="-L${expat_lib} -lexpat" + elif test "$expat_prefix" != "auto"; then + EXPAT_LIBS="-L${expat_prefix}/lib -lexpat" + else + EXPAT_LIBS="-lexpat" + fi + else + PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat" + fi + + expatsaved_CPPFLAGS="$CPPFLAGS" + expatsaved_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" + LIBS="$LIBS $EXPAT_LIBS" + + AC_CHECK_HEADER(expat.h) + if test "$ac_cv_header_expat_h" = "no"; then + AC_CHECK_HEADER(xmlparse.h) + if test "$ac_cv_header_xmlparse_h" = "yes"; then + HAVE_XMLPARSE_H=1 + AC_SUBST(HAVE_XMLPARSE_H) + AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H, + [Use xmlparse.h instead of expat.h]) + else + AC_MSG_ERROR([ +*** expat is required. or try to use --enable-libxml2]) + fi + fi + AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler) + if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then + AC_MSG_ERROR([ +*** expat is required. or try to use --enable-libxml2]) + fi + CPPFLAGS="$expatsaved_CPPFLAGS" + LIBS="$expatsaved_LIBS" + + AC_SUBST(EXPAT_CFLAGS) + AC_SUBST(EXPAT_LIBS) +fi + +# +# Check libxml2 configuration +# +AC_ARG_ENABLE(libxml2, + [AC_HELP_STRING([--enable-libxml2], + [Use libxml2 instead of Expat])]) + +if test "$enable_libxml2" = "yes"; then + PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6]) + PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0" + AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat]) + + AC_SUBST(LIBXML2_CFLAGS) + AC_SUBST(LIBXML2_LIBS) + + fc_saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $LIBXML2_CFLAGS" + AC_MSG_CHECKING([SAX1 support in libxml2]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #include <libxml/xmlversion.h> + #if !defined(LIBXML_SAX1_ENABLED) + # include "error: No SAX1 support in libxml2" + #endif + ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([ +*** SAX1 support in libxml2 is required. enable it or use expat instead.])]) + CFLAGS="$fc_saved_CFLAGS" +fi + +# +# Set default font directory +# + +AC_ARG_WITH(default-fonts, + [AC_HELP_STRING([--with-default-fonts=DIR], + [Use fonts from DIR when config is busted])], + default_fonts="$withval", default_fonts=yes) + +case "$default_fonts" in +yes) + if test "$os_win32" = "yes"; then + FC_DEFAULT_FONTS="WINDOWSFONTDIR" + AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", + [Windows font directory]) + else + FC_DEFAULT_FONTS="/usr/share/fonts" + AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", + [System font directory]) + fi + ;; +*) + FC_DEFAULT_FONTS="$default_fonts" + AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts", + [System font directory]) + ;; +esac + +AC_SUBST(FC_DEFAULT_FONTS) + +# +# Add more fonts if available. By default, add only the directories +# with outline fonts; those with bitmaps can be added as desired in +# local.conf or ~/.fonts.conf +# +AC_ARG_WITH(add-fonts, + [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...], + [Find additional fonts in DIR1,DIR2,... ])], + add_fonts="$withval", add_fonts=yes) + +case "$add_fonts" in +yes) + FC_ADD_FONTS="" + for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do + case x"$FC_ADD_FONTS" in + x) + sub="$dir/fonts" + if test -d "$sub"; then + case x$FC_ADD_FONTS in + x) + FC_ADD_FONTS="$sub" + ;; + *) + FC_ADD_FONTS="$FC_ADD_FONTS,$sub" + ;; + esac + fi + ;; + esac + done + AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) + ;; +no) + FC_ADD_FONTS="" + ;; +*) + FC_ADD_FONTS="$add_fonts" + AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) + ;; +esac + +AC_SUBST(FC_ADD_FONTS) + +FC_FONTPATH="" + +case "$FC_ADD_FONTS" in +"") + ;; +*) + FC_FONTPATH=`echo $FC_ADD_FONTS | + sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'` + ;; +esac + +AC_SUBST(FC_FONTPATH) + +# +# Set default cache directory path +# +AC_ARG_WITH(cache-dir, + [AC_HELP_STRING([--with-cache-dir=DIR], + [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])], + fc_cachedir="$withval", fc_cachedir=yes) + +case $fc_cachedir in +no|yes) + if test "$os_win32" = "yes"; then + fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE" + else + fc_cachedir='${localstatedir}/cache/${PACKAGE}' + fi + ;; +*) + ;; +esac +AC_SUBST(fc_cachedir) +FC_CACHEDIR=${fc_cachedir} +AC_SUBST(FC_CACHEDIR) + +FC_FONTDATE=`LC_ALL=C date` + +AC_SUBST(FC_FONTDATE) + +# +# Set configuration paths +# + +AC_ARG_WITH(templatedir, + [AC_HELP_STRING([--with-templatedir=DIR], + [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])], + [templatedir="$withval"], + [templatedir=yes]) +AC_ARG_WITH(baseconfigdir, + [AC_HELP_STRING([--with-baseconfigdir=DIR], + [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])], + [baseconfigdir="$withval"], + [baseconfigdir=yes]) +AC_ARG_WITH(configdir, + [AC_HELP_STRING([--with-configdir=DIR], + [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])], + [configdir="$withval"], + [configdir=yes]) +AC_ARG_WITH(xmldir, + [AC_HELP_STRING([--with-xmldir=DIR], + [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])], + [xmldir="$withval"], + [xmldir=yes]) + +case "$templatedir" in +no|yes) + templatedir='${datadir}'/fontconfig/conf.avail + ;; +*) + ;; +esac +case "$baseconfigdir" in +no|yes) + baseconfigdir='${sysconfdir}'/fonts + ;; +*) + ;; +esac +case "$configdir" in +no|yes) + configdir='${BASECONFIGDIR}'/conf.d + ;; +*) + ;; +esac +case "$xmldir" in +no|yes) + xmldir='${datadir}'/xml/fontconfig + ;; +*) + ;; +esac + +TEMPLATEDIR=${templatedir} +BASECONFIGDIR=${baseconfigdir} +CONFIGDIR=${configdir} +XMLDIR=${xmldir} +AC_SUBST(TEMPLATEDIR) +AC_SUBST(BASECONFIGDIR) +AC_SUBST(CONFIGDIR) +AC_SUBST(XMLDIR) + + +dnl =========================================================================== + +# +# Thread-safety primitives +# + +AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [ + fc_cv_have_intel_atomic_primitives=false + AC_TRY_LINK([ + void memory_barrier (void) { __sync_synchronize (); } + int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); } + int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); } + void mutex_unlock (int *m) { __sync_lock_release (m); } + ], [], fc_cv_have_intel_atomic_primitives=true + ) +]) +if $fc_cv_have_intel_atomic_primitives; then + AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives]) +fi + +AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [ + fc_cv_have_solaris_atomic_ops=false + AC_TRY_LINK([ + #include <atomic.h> + /* This requires Solaris Studio 12.2 or newer: */ + #include <mbarrier.h> + void memory_barrier (void) { __machine_rw_barrier (); } + int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); } + void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); } + ], [], fc_cv_have_solaris_atomic_ops=true + ) +]) +if $fc_cv_have_solaris_atomic_ops; then + AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations]) +fi + +if test "$os_win32" = no && ! $have_pthread; then + AC_CHECK_HEADERS(sched.h) + AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield])) +fi + +have_pthread=false +if test "$os_win32" = no; then + AX_PTHREAD([have_pthread=true]) +fi +if $have_pthread; then + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CC="$PTHREAD_CC" + AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads]) +fi +AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread) + + +dnl =========================================================================== + +# +# Let people not build/install docs if they don't have docbook +# + +AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) + +AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) + +default_docs="yes" +# +# Check if docs exist or can be created +# +if test x$HASDOCBOOK = xno; then + if test -f $srcdir/doc/fonts-conf.5; then + : + else + default_docs="no" + fi +fi + +AC_ARG_ENABLE(docs, + [AC_HELP_STRING([--disable-docs], + [Don't build and install documentation])], + , + enable_docs=$default_docs) + +AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes) + +if test "x$enable_docs" = xyes; then + tmp=funcs.$$ + cat $srcdir/doc/*.fncs | awk ' + /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } + /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } + /^@@/ { done = 0; }' > $tmp + DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` + echo DOCMAN3 $DOCMAN3 + rm -f $tmp +else + DOCMAN3="" +fi +AC_SUBST(DOCMAN3) + + +dnl Figure out what cache format suffix to use for this architecture +AC_C_BIGENDIAN +AC_CHECK_SIZEOF([void *]) +AC_CHECK_ALIGNOF([double]) + +dnl include the header file for workaround of miscalculating size on autoconf +dnl particularly for fat binaries +AH_BOTTOM([#include "config-fixups.h"]) + +dnl +dnl +AC_SUBST(PKGCONFIG_REQUIRES) +AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY) + +dnl +AC_CONFIG_FILES([ +Makefile +fontconfig/Makefile +fc-lang/Makefile +fc-glyphname/Makefile +fc-case/Makefile +src/Makefile +conf.d/Makefile +fc-cache/Makefile +fc-cat/Makefile +fc-list/Makefile +fc-match/Makefile +fc-pattern/Makefile +fc-query/Makefile +fc-scan/Makefile +fc-validate/Makefile +doc/Makefile +doc/version.sgml +test/Makefile +fontconfig.spec +fontconfig.pc +fontconfig-zip +]) +AC_OUTPUT |