Blame configure.ac

Packit 352660
dnl 
Packit 352660
dnl  fontconfig/configure.in
Packit 352660
dnl 
Packit 352660
dnl  Copyright © 2003 Keith Packard
Packit 352660
dnl 
Packit 352660
dnl  Permission to use, copy, modify, distribute, and sell this software and its
Packit 352660
dnl  documentation for any purpose is hereby granted without fee, provided that
Packit 352660
dnl  the above copyright notice appear in all copies and that both that
Packit 352660
dnl  copyright notice and this permission notice appear in supporting
Packit 352660
dnl  documentation, and that the name of the author(s) not be used in
Packit 352660
dnl  advertising or publicity pertaining to distribution of the software without
Packit 352660
dnl  specific, written prior permission.  The authors make no
Packit 352660
dnl  representations about the suitability of this software for any purpose.  It
Packit 352660
dnl  is provided "as is" without express or implied warranty.
Packit 352660
dnl 
Packit 352660
dnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
Packit 352660
dnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
Packit 352660
dnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
Packit 352660
dnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
Packit 352660
dnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
Packit 352660
dnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
Packit 352660
dnl  PERFORMANCE OF THIS SOFTWARE.
Packit 352660
dnl
Packit 352660
dnl Process this file with autoconf to create configure.
Packit 352660
Packit 352660
AC_PREREQ(2.61)
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
dnl                               Versioning              
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
dnl This is the package version number, not the shared library
Packit 352660
dnl version.  This same version number must appear in fontconfig/fontconfig.h
Packit 352660
dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
Packit 352660
dnl not possible to extract the version number here from fontconfig.h
Packit 352660
AC_INIT([fontconfig], [2.13.1], [https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/new])
Packit 352660
AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2])
Packit 352660
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
AC_CONFIG_HEADERS(config.h)
Packit 352660
AC_CONFIG_MACRO_DIR([m4])
Packit 352660
Packit 352660
AC_PROG_CC
Packit 352660
AC_USE_SYSTEM_EXTENSIONS
Packit 352660
AC_SYS_LARGEFILE
Packit 352660
AC_PROG_INSTALL
Packit 352660
AC_PROG_LN_S
Packit 352660
AC_PROG_MAKE_SET
Packit 352660
PKG_PROG_PKG_CONFIG
Packit 352660
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
Packit 352660
Packit 352660
AM_MISSING_PROG([GIT], [git])
Packit 352660
AM_MISSING_PROG([GPERF], [gperf])
Packit 352660
Packit 352660
AC_MSG_CHECKING([for RM macro])
Packit 352660
_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
Packit 352660
if test "x$_predefined_rm" = "x"; then
Packit 352660
	AC_MSG_RESULT([no predefined RM])
Packit 352660
	AC_CHECK_PROG(RM, rm, [rm -f])
Packit 352660
else
Packit 352660
	AC_MSG_RESULT($_predefined_rm)
Packit 352660
fi
Packit 352660
Packit 352660
dnl Initialize libtool
Packit 352660
LT_PREREQ([2.2])
Packit 352660
LT_INIT([disable-static win32-dll])
Packit 352660
Packit 352660
dnl libtool versioning
Packit 352660
Packit 352660
dnl bump revision when fixing bugs
Packit 352660
dnl bump current and age, reset revision to zero when adding APIs
Packit 352660
dnl bump current, leave age, reset revision to zero when changing/removing APIS
Packit 352660
LIBT_CURRENT=13
Packit 352660
LIBT_REVISION=0
Packit 352660
AC_SUBST(LIBT_CURRENT)
Packit 352660
AC_SUBST(LIBT_REVISION)
Packit 352660
LIBT_AGE=12
Packit 352660
Packit 352660
LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
Packit 352660
AC_SUBST(LIBT_VERSION_INFO)
Packit 352660
Packit 352660
LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
Packit 352660
AC_SUBST(LIBT_CURRENT_MINUS_AGE)
Packit 352660
Packit 352660
PKGCONFIG_REQUIRES=
Packit 352660
PKGCONFIG_REQUIRES_PRIVATELY=
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
case "$host" in
Packit 352660
  *-*-mingw*)
Packit 352660
    os_win32=yes
Packit 352660
    ;;
Packit 352660
  *)
Packit 352660
    os_win32=no
Packit 352660
esac
Packit 352660
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
dnl gettext stuff
Packit 352660
dnl ==========================================================================
Packit 352660
GETTEXT_PACKAGE=$PACKAGE
Packit 352660
AC_SUBST(GETTEXT_PACKAGE)
Packit 352660
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
Packit 352660
Packit 352660
AM_GNU_GETTEXT_VERSION([0.19.8])
Packit 352660
AM_GNU_GETTEXT([external])
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
if test "$os_win32" = "yes"; then
Packit 352660
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Packit 352660
fi
Packit 352660
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
Packit 352660
Packit 352660
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
Packit 352660
WARN_CFLAGS=""
Packit 352660
WARNING_CPP_DIRECTIVE="no"
Packit 352660
if test "x$GCC" = "xyes"; then
Packit 352660
	WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
Packit 352660
	-Wmissing-prototypes -Wmissing-declarations \
Packit 352660
	-Wnested-externs -fno-strict-aliasing"
Packit 352660
	WARNING_CPP_DIRECTIVE="yes"
Packit 352660
elif test "x$SUNCC" = "xyes"; then
Packit 352660
	WARN_CFLAGS="-v -fd"
Packit 352660
	WARNING_CPP_DIRECTIVE="yes"
Packit 352660
fi
Packit 352660
if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then
Packit 352660
	AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
Packit 352660
	[Can use #warning in C files])
Packit 352660
fi
Packit 352660
AC_SUBST(WARN_CFLAGS)
Packit 352660
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
AX_CC_FOR_BUILD()
Packit 352660
AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
Packit 352660
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
Packit 352660
AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
AC_ARG_WITH(arch,
Packit 352660
	[AC_HELP_STRING([--with-arch=ARCH],
Packit 352660
			[Force architecture to ARCH])],
Packit 352660
	arch="$withval", arch=auto)
Packit 352660
Packit 352660
if test "x$arch" != xauto; then
Packit 352660
	AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
Packit 352660
fi
Packit 352660
Packit 352660
Packit 352660
dnl ==========================================================================
Packit 352660
Packit 352660
# Checks for header files.
Packit 352660
AC_HEADER_DIRENT
Packit 352660
AC_HEADER_STDC
Packit 352660
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])
Packit 352660
AX_CREATE_STDINT_H([src/fcstdint.h])
Packit 352660
Packit 352660
# Checks for typedefs, structures, and compiler characteristics.
Packit 352660
AC_C_CONST
Packit 352660
AC_C_INLINE
Packit 352660
AC_C_FLEXIBLE_ARRAY_MEMBER
Packit 352660
AC_TYPE_PID_T
Packit 352660
Packit 352660
# Checks for library functions.
Packit 352660
AC_FUNC_VPRINTF
Packit 352660
AC_FUNC_MMAP
Packit 352660
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 strerror strerror_r])
Packit 352660
Packit 352660
dnl AC_CHECK_FUNCS doesn't check for header files.
Packit 352660
dnl posix_fadvise() may be not available in older libc.
Packit 352660
AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
Packit 352660
AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.])
Packit 352660
Packit 352660
#
Packit 352660
AC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include <sys/stat.h>])
Packit 352660
Packit 352660
#
Packit 352660
if test "x$ac_cv_func_fstatvfs" = "xyes"; then
Packit 352660
	AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
Packit 352660
		[#include <sys/statvfs.h>])
Packit 352660
fi
Packit 352660
if test "x$ac_cv_func_fstatfs" = "xyes"; then
Packit 352660
	AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
Packit 352660
#ifdef HAVE_SYS_VFS_H
Packit 352660
#include <sys/vfs.h>
Packit 352660
#endif
Packit 352660
#ifdef HAVE_SYS_STATFS_H
Packit 352660
#include <sys/statfs.h>
Packit 352660
#endif
Packit 352660
#ifdef HAVE_SYS_PARAM_H
Packit 352660
#include <sys/param.h>
Packit 352660
#endif
Packit 352660
#ifdef HAVE_SYS_MOUNT_H
Packit 352660
#include <sys/mount.h>
Packit 352660
#endif])
Packit 352660
fi
Packit 352660
AC_CHECK_MEMBERS([struct dirent.d_type],,,
Packit 352660
	[#include <dirent.h>])
Packit 352660
Packit 352660
# Check the argument type of the gperf hash/lookup function
Packit 352660
AC_MSG_CHECKING([The type of len parameter of gperf hash/lookup function])
Packit 352660
fc_gperf_test="$(echo 'foo' | gperf -L ANSI-C)"
Packit 352660
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 352660
	#include <string.h>
Packit 352660
Packit 352660
	const char *in_word_set(register const char *, register size_t);
Packit 352660
	$fc_gperf_test
Packit 352660
	]])], [FC_GPERF_SIZE_T=size_t],
Packit 352660
	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 352660
		#include <string.h>
Packit 352660
Packit 352660
		const char *in_word_set(register const char *, register unsigned int);
Packit 352660
		$fc_gperf_test
Packit 352660
	]])], [FC_GPERF_SIZE_T="unsigned int"],
Packit 352660
	[AC_MSG_ERROR([Unable to determine the type of the len parameter of the gperf hash/lookup function])]
Packit 352660
)])
Packit 352660
AC_DEFINE_UNQUOTED(FC_GPERF_SIZE_T, $FC_GPERF_SIZE_T, [The type of len parameter of the gperf hash/lookup function])
Packit 352660
AC_MSG_RESULT($FC_GPERF_SIZE_T)
Packit 352660
Packit 352660
#
Packit 352660
# Checks for iconv
Packit 352660
#
Packit 352660
AC_ARG_ENABLE(iconv,
Packit 352660
	[AC_HELP_STRING([--enable-iconv],
Packit 352660
			[Use iconv to support non-Unicode SFNT name])],
Packit 352660
	,enable_iconv=no)
Packit 352660
AC_ARG_WITH(libiconv,
Packit 352660
	[AC_HELP_STRING([--with-libiconv=DIR],
Packit 352660
			[Use libiconv in DIR])],
Packit 352660
	[if test "x$withval" = "xyes"; then
Packit 352660
		libiconv_prefix=$prefix
Packit 352660
	 else
Packit 352660
		libiconv_prefix=$withval
Packit 352660
	 fi],
Packit 352660
	[libiconv_prefix=auto])
Packit 352660
AC_ARG_WITH(libiconv-includes,
Packit 352660
	[AC_HELP_STRING([--with-libiconv-includes=DIR],
Packit 352660
			[Use libiconv includes in DIR])],
Packit 352660
	[libiconv_includes=$withval],
Packit 352660
	[libiconv_includes=auto])
Packit 352660
AC_ARG_WITH(libiconv-lib,
Packit 352660
	[AC_HELP_STRING([--with-libiconv-lib=DIR],
Packit 352660
			[Use libiconv library in DIR])],
Packit 352660
	[libiconv_lib=$withval],
Packit 352660
	[libiconv_lib=auto])
Packit 352660
Packit 352660
# if no libiconv,libiconv-includes,libiconv-lib are specified,
Packit 352660
# libc's iconv has a priority.
Packit 352660
if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
Packit 352660
	libiconv_cflags="-I${libiconv_includes}"
Packit 352660
elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
Packit 352660
	libiconv_cflags="-I${libiconv_prefix}/include"
Packit 352660
else
Packit 352660
	libiconv_cflags=""
Packit 352660
fi
Packit 352660
libiconv_libs=""
Packit 352660
if test "x$libiconv_cflags" != "x"; then
Packit 352660
	if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
Packit 352660
		libiconv_libs="-L${libiconv_lib} -liconv"
Packit 352660
	elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
Packit 352660
		libiconv_libs="-L${libiconv_prefix}/lib -liconv"
Packit 352660
	else
Packit 352660
		libiconv_libs="-liconv"
Packit 352660
	fi
Packit 352660
fi
Packit 352660
Packit 352660
use_iconv=0
Packit 352660
if test "x$enable_iconv" != "xno"; then
Packit 352660
	AC_MSG_CHECKING([for a usable iconv])
Packit 352660
	if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
Packit 352660
		iconvsaved_CFLAGS="$CFLAGS"
Packit 352660
		iconvsaved_LIBS="$LIBS"
Packit 352660
		CFLAGS="$CFLAGS $libiconv_cflags"
Packit 352660
		LIBS="$LIBS $libiconv_libs"
Packit 352660
Packit 352660
		AC_TRY_LINK([#include <iconv.h>],
Packit 352660
			[iconv_open ("from", "to");],
Packit 352660
			[iconv_type="libiconv"
Packit 352660
			 use_iconv=1
Packit 352660
			 ICONV_CFLAGS="$libiconv_cflags"
Packit 352660
			 ICONV_LIBS="$libiconv_libs"
Packit 352660
			 ],
Packit 352660
			[use_iconv=0])
Packit 352660
Packit 352660
		CFLAGS="$iconvsaved_CFLAGS"
Packit 352660
		LIBS="$iconvsaved_LIBS"
Packit 352660
	fi
Packit 352660
	if test "x$use_iconv" = "x0"; then
Packit 352660
		AC_TRY_LINK([#include <iconv.h>],
Packit 352660
			[iconv_open ("from", "to");],
Packit 352660
			[iconv_type="libc"
Packit 352660
			 use_iconv=1],
Packit 352660
			[iconv_type="not found"
Packit 352660
			 use_iconv=0])
Packit 352660
	fi
Packit 352660
Packit 352660
	AC_MSG_RESULT([$iconv_type])
Packit 352660
	AC_SUBST(ICONV_CFLAGS)
Packit 352660
	AC_SUBST(ICONV_LIBS)
Packit 352660
fi
Packit 352660
AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
Packit 352660
#
Packit 352660
# Checks for FreeType
Packit 352660
#
Packit 352660
dnl See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT for versioning in freetype
Packit aeb97e
PKG_CHECK_MODULES(FREETYPE, freetype2 >= 20.0.14)
Packit aeb97e
PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 20.0.14"
Packit 352660
Packit 352660
AC_SUBST(FREETYPE_LIBS)
Packit 352660
AC_SUBST(FREETYPE_CFLAGS)
Packit 352660
Packit 352660
fontconfig_save_libs="$LIBS"
Packit 352660
fontconfig_save_cflags="$CFLAGS"
Packit 352660
LIBS="$LIBS $FREETYPE_LIBS"
Packit 352660
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
Packit 352660
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)
Packit 352660
Packit 352660
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 352660
	#include <ft2build.h>
Packit 352660
	#include FT_CONFIG_OPTIONS_H
Packit 352660
	#ifndef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
Packit 352660
	#  error "No pcf long family names support"
Packit 352660
	#endif
Packit 352660
	]])], [have_pcf_long_family_names=yes], [have_pcf_long_family_names=no])
Packit 352660
AM_CONDITIONAL(FREETYPE_PCF_LONG_FAMILY_NAMES, test "x$have_pcf_long_family_names" = xyes)
Packit 352660
Packit 352660
LIBS="$fontconfig_save_libs"
Packit 352660
CFLAGS="$fontconfig_save_cflags"
Packit 352660
Packit 352660
#
Packit 352660
# Check for uuid
Packit 352660
#
Packit 352660
if test "$os_win32" != "yes"; then
Packit 352660
	use_pkgconfig_for_uuid=yes
Packit 352660
	if test -n "${UUID_LIBS}"; then
Packit 352660
		save_UUID_LIBS=$UUID_LIBS
Packit 352660
	fi
Packit 352660
	PKG_CHECK_MODULES([UUID], [uuid],
Packit 352660
			  [use_pkgconfig_for_uuid=yes],
Packit 352660
			  [use_pkgconfig_for_uuid=no])
Packit 352660
	if test "x$use_pkgconfig_for_uuid" = "xno"; then
Packit 352660
		AC_MSG_CHECKING([where uuid functions comes from])
Packit 352660
		AC_TRY_LINK([#include <uuid/uuid.h>],
Packit 352660
			[uuid_t a; uuid_generate(a);],
Packit 352660
			[AC_MSG_RESULT([builtin])
Packit 352660
			 UUID_CFLAGS=""
Packit 352660
			 UUID_LIBS=""
Packit 352660
			],[AC_MSG_ERROR([
Packit 352660
*** uuid is required. install util-linux.
Packit 352660
			])])
Packit 352660
	else
Packit 352660
		if test -z "${save_UUID_LIBS+x}" && test "x${UUID_LIBS}" != "x"; then
Packit 352660
			PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY uuid"
Packit 352660
		fi
Packit 352660
	fi
Packit 352660
else
Packit 352660
	UUID_CFLAGS=""
Packit 352660
	UUID_LIBS=""
Packit 352660
fi
Packit 352660
AC_SUBST(UUID_CFLAGS)
Packit 352660
AC_SUBST(UUID_LIBS)
Packit 352660
Packit 352660
#
Packit 352660
# Check expat configuration
Packit 352660
#
Packit 352660
AC_ARG_WITH(expat,
Packit 352660
	[AC_HELP_STRING([--with-expat=DIR],
Packit 352660
			[Use Expat in DIR])],
Packit 352660
	[expat_prefix=$withval],
Packit 352660
	[expat_prefix=auto])
Packit 352660
AC_ARG_WITH(expat-includes,
Packit 352660
	[AC_HELP_STRING([--with-expat-includes=DIR],
Packit 352660
			[Use Expat includes in DIR])],
Packit 352660
	[expat_includes=$withval],
Packit 352660
	[expat_includes=auto])
Packit 352660
AC_ARG_WITH(expat-lib,
Packit 352660
	[AC_HELP_STRING([--with-expat-lib=DIR])],
Packit 352660
	[expat_lib=$withval],
Packit 352660
	[expat_lib=auto])
Packit 352660
Packit 352660
if test "$enable_libxml2" != "yes"; then
Packit 352660
	use_pkgconfig_for_expat=yes
Packit 352660
	if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
Packit 352660
		PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
Packit 352660
	else
Packit 352660
		use_pkgconfig_for_expat=no
Packit 352660
	fi
Packit 352660
	if test "x$use_pkgconfig_for_expat" = "xno"; then
Packit 352660
		if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
Packit 352660
			EXPAT_CFLAGS="-I${expat_includes}"
Packit 352660
		elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
Packit 352660
			EXPAT_CFLAGS="-I${expat_prefix}/include"
Packit 352660
		else
Packit 352660
			EXPAT_CFLAGS=""
Packit 352660
		fi
Packit 352660
		if test "$expat_lib" != "auto"; then
Packit 352660
			EXPAT_LIBS="-L${expat_lib} -lexpat"
Packit 352660
		elif test "$expat_prefix" != "auto"; then
Packit 352660
			EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
Packit 352660
		else
Packit 352660
			EXPAT_LIBS="-lexpat"
Packit 352660
		fi
Packit 352660
		PKG_EXPAT_CFLAGS=$EXPAT_CFLAGS
Packit 352660
		PKG_EXPAT_LIBS=$EXPAT_LIBS
Packit 352660
	else
Packit 352660
		PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
Packit 352660
		PKG_EXPAT_CFLAGS=
Packit 352660
		PKG_EXPAT_LIBS=
Packit 352660
	fi
Packit 352660
Packit 352660
	expatsaved_CPPFLAGS="$CPPFLAGS"
Packit 352660
	expatsaved_LIBS="$LIBS"
Packit 352660
	CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
Packit 352660
	LIBS="$LIBS $EXPAT_LIBS"
Packit 352660
Packit 352660
	AC_CHECK_HEADER(expat.h)
Packit 352660
	if test "$ac_cv_header_expat_h" = "no"; then
Packit 352660
		AC_CHECK_HEADER(xmlparse.h)
Packit 352660
		if test "$ac_cv_header_xmlparse_h" = "yes"; then
Packit 352660
			HAVE_XMLPARSE_H=1
Packit 352660
			AC_SUBST(HAVE_XMLPARSE_H)
Packit 352660
			AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
Packit 352660
				[Use xmlparse.h instead of expat.h])
Packit 352660
		else
Packit 352660
			AC_MSG_ERROR([
Packit 352660
*** expat is required. or try to use --enable-libxml2])
Packit 352660
		fi
Packit 352660
	fi
Packit 352660
	AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
Packit 352660
	if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
Packit 352660
		AC_MSG_ERROR([
Packit 352660
*** expat is required. or try to use --enable-libxml2])
Packit 352660
	fi
Packit 352660
	CPPFLAGS="$expatsaved_CPPFLAGS"
Packit 352660
	LIBS="$expatsaved_LIBS"
Packit 352660
Packit 352660
	AC_SUBST(EXPAT_CFLAGS)
Packit 352660
	AC_SUBST(EXPAT_LIBS)
Packit 352660
	AC_SUBST(PKG_EXPAT_CFLAGS)
Packit 352660
	AC_SUBST(PKG_EXPAT_LIBS)
Packit 352660
fi
Packit 352660
Packit 352660
#
Packit 352660
# Check libxml2 configuration
Packit 352660
#
Packit 352660
AC_ARG_ENABLE(libxml2,
Packit 352660
	[AC_HELP_STRING([--enable-libxml2],
Packit 352660
			[Use libxml2 instead of Expat])])
Packit 352660
Packit 352660
if test "$enable_libxml2" = "yes"; then
Packit 352660
    PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
Packit 352660
    PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0 >= 2.6"
Packit 352660
    AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
Packit 352660
Packit 352660
    AC_SUBST(LIBXML2_CFLAGS)
Packit 352660
    AC_SUBST(LIBXML2_LIBS)
Packit 352660
Packit 352660
    fc_saved_CFLAGS="$CFLAGS"
Packit 352660
    CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
Packit 352660
    AC_MSG_CHECKING([SAX1 support in libxml2])
Packit 352660
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 352660
	#include <libxml/xmlversion.h>
Packit 352660
	#if !defined(LIBXML_SAX1_ENABLED)
Packit 352660
	#  include "error: No SAX1 support in libxml2"
Packit 352660
	#endif
Packit 352660
	]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
Packit 352660
*** SAX1 support in libxml2 is required. enable it or use expat instead.])])
Packit 352660
    CFLAGS="$fc_saved_CFLAGS"
Packit 352660
fi
Packit 352660
Packit 352660
#
Packit 352660
# Check json-c
Packit 352660
#
Packit 352660
PKG_CHECK_MODULES([JSONC], [json-c], [use_jsonc=yes], [use_jsonc=no])
Packit 352660
Packit 352660
AM_CONDITIONAL(ENABLE_JSONC, test "x$use_jsonc" = "xyes")
Packit 352660
AC_SUBST(JSONC_CFLAGS)
Packit 352660
AC_SUBST(JSONC_LIBS)
Packit 352660
Packit 352660
#
Packit 352660
# Set default hinting
Packit 352660
#
Packit 352660
Packit 352660
AC_ARG_WITH(default-hinting,
Packit 352660
	[AC_HELP_STRING([--with-default-hinting=NAME],
Packit 352660
			[Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])],
Packit 352660
	preferred_hinting="$withval", preferred_hinting=slight)
Packit 352660
Packit 352660
case "$preferred_hinting" in
Packit 352660
none|slight|medium|full)
Packit 352660
	PREFERRED_HINTING="$preferred_hinting"
Packit 352660
	AC_SUBST(PREFERRED_HINTING)
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full])
Packit 352660
	;;
Packit 352660
esac
Packit 352660
Packit 352660
#
Packit 352660
# Set default font directory
Packit 352660
#
Packit 352660
Packit 352660
AC_ARG_WITH(default-fonts,
Packit 352660
	[AC_HELP_STRING([--with-default-fonts=DIR],
Packit 352660
			[Use fonts from DIR when config is busted])],
Packit 352660
	default_fonts="$withval", default_fonts=yes)
Packit 352660
Packit 352660
case "$default_fonts" in
Packit 352660
yes)
Packit 352660
	if test "$os_win32" = "yes"; then
Packit 352660
		FC_DEFAULT_FONTS="WINDOWSFONTDIR"
Packit 352660
		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
Packit 352660
				   [Windows font directory])
Packit 352660
	else
Packit 352660
		FC_DEFAULT_FONTS="/usr/share/fonts"
Packit 352660
		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
Packit 352660
				   [System font directory])
Packit 352660
	fi
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	FC_DEFAULT_FONTS="$default_fonts"
Packit 352660
	AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
Packit 352660
			   [System font directory])
Packit 352660
	;;
Packit 352660
esac
Packit 352660
Packit 352660
AC_SUBST(FC_DEFAULT_FONTS)
Packit 352660
Packit 352660
#
Packit 352660
# Add more fonts if available.  By default, add only the directories
Packit 352660
# with outline fonts; those with bitmaps can be added as desired in
Packit 352660
# local.conf or ~/.fonts.conf
Packit 352660
#
Packit 352660
AC_ARG_WITH(add-fonts,
Packit 352660
	[AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
Packit 352660
			[Find additional fonts in DIR1,DIR2,... ])],
Packit 352660
	add_fonts="$withval", add_fonts=yes)
Packit 352660
Packit 352660
case "$add_fonts" in
Packit 352660
yes)
Packit 352660
	FC_ADD_FONTS=""
Packit 352660
	for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
Packit 352660
		case x"$FC_ADD_FONTS" in
Packit 352660
		x)
Packit 352660
			sub="$dir/fonts"
Packit 352660
			if test -d "$sub"; then
Packit 352660
				case x$FC_ADD_FONTS in
Packit 352660
				x)
Packit 352660
					FC_ADD_FONTS="$sub"
Packit 352660
					;;
Packit 352660
				*)
Packit 352660
					FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
Packit 352660
					;;
Packit 352660
				esac
Packit 352660
			fi
Packit 352660
			;;
Packit 352660
		esac
Packit 352660
	done
Packit 352660
	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
Packit 352660
	;;
Packit 352660
no)
Packit 352660
	FC_ADD_FONTS=""
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	FC_ADD_FONTS="$add_fonts"
Packit 352660
	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
Packit 352660
	;;
Packit 352660
esac
Packit 352660
Packit 352660
AC_SUBST(FC_ADD_FONTS)
Packit 352660
Packit 352660
FC_FONTPATH=""
Packit 352660
Packit 352660
case "$FC_ADD_FONTS" in
Packit 352660
"")
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	FC_FONTPATH=`echo $FC_ADD_FONTS | 
Packit 352660
			sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
Packit 352660
	;;
Packit 352660
esac
Packit 352660
Packit 352660
AC_SUBST(FC_FONTPATH)
Packit 352660
Packit 352660
#
Packit 352660
# Set default cache directory path
Packit 352660
#
Packit 352660
AC_ARG_WITH(cache-dir,
Packit 352660
	[AC_HELP_STRING([--with-cache-dir=DIR],
Packit 352660
			[Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
Packit 352660
	fc_cachedir="$withval", fc_cachedir=yes)
Packit 352660
Packit 352660
case $fc_cachedir in
Packit 352660
no|yes)
Packit 352660
	if test "$os_win32" = "yes"; then
Packit 352660
		fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
Packit 352660
	else
Packit 352660
		fc_cachedir='${localstatedir}/cache/${PACKAGE}'
Packit 352660
	fi
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	;;
Packit 352660
esac
Packit 352660
AC_SUBST(fc_cachedir)
Packit 352660
FC_CACHEDIR=${fc_cachedir}
Packit 352660
AC_SUBST(FC_CACHEDIR)
Packit 352660
Packit 352660
FC_FONTDATE=`LC_ALL=C date`
Packit 352660
Packit 352660
AC_SUBST(FC_FONTDATE)
Packit 352660
Packit 352660
#
Packit 352660
# Set configuration paths
Packit 352660
#
Packit 352660
Packit 352660
AC_ARG_WITH(templatedir,
Packit 352660
	[AC_HELP_STRING([--with-templatedir=DIR],
Packit 352660
			[Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
Packit 352660
	[templatedir="$withval"],
Packit 352660
	[templatedir=yes])
Packit 352660
AC_ARG_WITH(baseconfigdir,
Packit 352660
	[AC_HELP_STRING([--with-baseconfigdir=DIR],
Packit 352660
			[Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
Packit 352660
	[baseconfigdir="$withval"],
Packit 352660
	[baseconfigdir=yes])
Packit 352660
AC_ARG_WITH(configdir,
Packit 352660
	[AC_HELP_STRING([--with-configdir=DIR],
Packit 352660
			[Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
Packit 352660
	[configdir="$withval"],
Packit 352660
	[configdir=yes])
Packit 352660
AC_ARG_WITH(xmldir,
Packit 352660
	[AC_HELP_STRING([--with-xmldir=DIR],
Packit 352660
			[Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
Packit 352660
	[xmldir="$withval"],
Packit 352660
	[xmldir=yes])
Packit 352660
Packit 352660
case "$templatedir" in
Packit 352660
no|yes)
Packit 352660
	templatedir='${datadir}'/fontconfig/conf.avail
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	;;
Packit 352660
esac
Packit 352660
case "$baseconfigdir" in
Packit 352660
no|yes)
Packit 352660
	baseconfigdir='${sysconfdir}'/fonts
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	;;
Packit 352660
esac
Packit 352660
case "$configdir" in
Packit 352660
no|yes)
Packit 352660
	configdir='${BASECONFIGDIR}'/conf.d
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	;;
Packit 352660
esac
Packit 352660
case "$xmldir" in
Packit 352660
no|yes)
Packit 352660
	xmldir='${datadir}'/xml/fontconfig
Packit 352660
	;;
Packit 352660
*)
Packit 352660
	;;
Packit 352660
esac
Packit 352660
Packit 352660
TEMPLATEDIR=${templatedir}
Packit 352660
BASECONFIGDIR=${baseconfigdir}
Packit 352660
CONFIGDIR=${configdir}
Packit 352660
XMLDIR=${xmldir}
Packit 352660
AC_SUBST(TEMPLATEDIR)
Packit 352660
AC_SUBST(BASECONFIGDIR)
Packit 352660
AC_SUBST(CONFIGDIR)
Packit 352660
AC_SUBST(XMLDIR)
Packit 352660
Packit 352660
Packit 352660
dnl ===========================================================================
Packit 352660
Packit 352660
#
Packit 352660
# Thread-safety primitives
Packit 352660
#
Packit 352660
Packit 352660
AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [
Packit 352660
	fc_cv_have_intel_atomic_primitives=false
Packit 352660
	AC_TRY_LINK([
Packit 352660
		void memory_barrier (void) { __sync_synchronize (); }
Packit 352660
		int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
Packit 352660
		int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
Packit 352660
		void mutex_unlock (int *m) { __sync_lock_release (m); }
Packit 352660
		], [], fc_cv_have_intel_atomic_primitives=true
Packit 352660
	)
Packit 352660
])
Packit 352660
if $fc_cv_have_intel_atomic_primitives; then
Packit 352660
	AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
Packit 352660
fi
Packit 352660
Packit 352660
AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [
Packit 352660
	fc_cv_have_solaris_atomic_ops=false
Packit 352660
	AC_TRY_LINK([
Packit 352660
		#include <atomic.h>
Packit 352660
		/* This requires Solaris Studio 12.2 or newer: */
Packit 352660
		#include <mbarrier.h>
Packit 352660
		void memory_barrier (void) { __machine_rw_barrier (); }
Packit 352660
		int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); }
Packit 352660
		void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); }
Packit 352660
		], [], fc_cv_have_solaris_atomic_ops=true
Packit 352660
	)
Packit 352660
])
Packit 352660
if $fc_cv_have_solaris_atomic_ops; then
Packit 352660
	AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations])
Packit 352660
fi
Packit 352660
Packit 352660
if test "$os_win32" = no && ! $have_pthread; then
Packit 352660
	AC_CHECK_HEADERS(sched.h)
Packit 352660
	AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield]))
Packit 352660
fi
Packit 352660
Packit 352660
have_pthread=false
Packit 352660
if test "$os_win32" = no; then
Packit 352660
	AX_PTHREAD([have_pthread=true])
Packit 352660
fi
Packit 352660
if $have_pthread; then
Packit 352660
	LIBS="$PTHREAD_LIBS $LIBS"
Packit 352660
	CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
Packit 352660
	CC="$PTHREAD_CC"
Packit 352660
	AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
Packit 352660
fi
Packit 352660
AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
Packit 352660
Packit 352660
Packit 352660
dnl ===========================================================================
Packit 352660
Packit 352660
#
Packit 352660
# Let people not build/install docs if they don't have docbook
Packit 352660
#
Packit 352660
Packit 352660
AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
Packit 352660
Packit 352660
AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
Packit 352660
Packit 352660
default_docs="yes"
Packit 352660
#
Packit 352660
# Check if docs exist or can be created
Packit 352660
#
Packit 352660
if test x$HASDOCBOOK = xno; then
Packit 352660
	if test -f $srcdir/doc/fonts-conf.5; then
Packit 352660
		:
Packit 352660
	else
Packit 352660
		default_docs="no"
Packit 352660
	fi
Packit 352660
fi
Packit 352660
Packit 352660
AC_ARG_ENABLE(docs,
Packit 352660
	[AC_HELP_STRING([--disable-docs],
Packit 352660
			[Don't build and install documentation])],
Packit 352660
	,
Packit 352660
	enable_docs=$default_docs)
Packit 352660
Packit 352660
AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
Packit 352660
Packit 352660
if test "x$enable_docs" = xyes; then
Packit 352660
	tmp=funcs.$$
Packit 352660
	cat $srcdir/doc/*.fncs | awk '
Packit 352660
	/^@TITLE@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
Packit 352660
	/^@FUNC@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
Packit 352660
	/^@@/		{ done = 0; }' > $tmp
Packit 352660
	DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
Packit 352660
	echo DOCMAN3 $DOCMAN3
Packit 352660
	rm -f $tmp
Packit 352660
else
Packit 352660
	DOCMAN3=""
Packit 352660
fi
Packit 352660
AC_SUBST(DOCMAN3)
Packit 352660
Packit 352660
Packit 352660
dnl Figure out what cache format suffix to use for this architecture
Packit 352660
AC_C_BIGENDIAN
Packit 352660
AC_CHECK_SIZEOF([void *])
Packit 352660
AC_CHECK_ALIGNOF([double])
Packit 352660
AC_CHECK_ALIGNOF([void *])
Packit 352660
Packit 352660
dnl include the header file for workaround of miscalculating size on autoconf
Packit 352660
dnl particularly for fat binaries
Packit 352660
AH_BOTTOM([#include "config-fixups.h"])
Packit 352660
Packit 352660
dnl
Packit 352660
dnl
Packit 352660
AC_SUBST(PKGCONFIG_REQUIRES)
Packit 352660
AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY)
Packit 352660
Packit 352660
dnl
Packit 352660
AC_CONFIG_FILES([
Packit 352660
Makefile
Packit 352660
fontconfig/Makefile
Packit 352660
fc-lang/Makefile
Packit 352660
fc-case/Makefile
Packit 352660
src/Makefile
Packit 352660
conf.d/Makefile
Packit 352660
fc-cache/Makefile
Packit 352660
fc-cat/Makefile
Packit 352660
fc-conflist/Makefile
Packit 352660
fc-list/Makefile
Packit 352660
fc-match/Makefile
Packit 352660
fc-pattern/Makefile
Packit 352660
fc-query/Makefile
Packit 352660
fc-scan/Makefile
Packit 352660
fc-validate/Makefile
Packit 352660
doc/Makefile
Packit 352660
doc/version.sgml
Packit 352660
its/Makefile
Packit 352660
po/Makefile.in
Packit 352660
po-conf/Makefile.in
Packit 352660
test/Makefile
Packit 352660
fontconfig.spec
Packit 352660
fontconfig.pc
Packit 352660
fontconfig-zip
Packit 352660
])
Packit 352660
AC_OUTPUT