11cc69409Smrgdnl
2ca08ab68Smrgdnl  fontconfig/configure.in
31cc69409Smrgdnl
4ca08ab68Smrgdnl  Copyright © 2003 Keith Packard
51cc69409Smrgdnl
6ca08ab68Smrgdnl  Permission to use, copy, modify, distribute, and sell this software and its
7ca08ab68Smrgdnl  documentation for any purpose is hereby granted without fee, provided that
8ca08ab68Smrgdnl  the above copyright notice appear in all copies and that both that
9ca08ab68Smrgdnl  copyright notice and this permission notice appear in supporting
10ca08ab68Smrgdnl  documentation, and that the name of the author(s) not be used in
11ca08ab68Smrgdnl  advertising or publicity pertaining to distribution of the software without
12ca08ab68Smrgdnl  specific, written prior permission.  The authors make no
13ca08ab68Smrgdnl  representations about the suitability of this software for any purpose.  It
14ca08ab68Smrgdnl  is provided "as is" without express or implied warranty.
151cc69409Smrgdnl
16ca08ab68Smrgdnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17ca08ab68Smrgdnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18ca08ab68Smrgdnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19ca08ab68Smrgdnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20ca08ab68Smrgdnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21ca08ab68Smrgdnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22ca08ab68Smrgdnl  PERFORMANCE OF THIS SOFTWARE.
23ca08ab68Smrgdnl
24ca08ab68Smrgdnl Process this file with autoconf to create configure.
25ca08ab68Smrg
26ae02b298SmrgAC_PREREQ([2.71])
27ca08ab68Smrg
28ca08ab68Smrgdnl ==========================================================================
291cc69409Smrgdnl                               Versioning
30ca08ab68Smrgdnl ==========================================================================
31ca08ab68Smrg
32ca08ab68Smrgdnl This is the package version number, not the shared library
33ca08ab68Smrgdnl version.  This same version number must appear in fontconfig/fontconfig.h
34ca08ab68Smrgdnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
35ca08ab68Smrgdnl not possible to extract the version number here from fontconfig.h
36ae02b298SmrgAC_INIT([fontconfig],[2.15.0],[https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/new])
37a4e54154SmrgAM_INIT_AUTOMAKE([1.11 parallel-tests dist-xz])
38ca08ab68Smrgm4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
39ca08ab68Smrg
40ca08ab68Smrgdnl ==========================================================================
41ca08ab68Smrg
42ca08ab68SmrgAC_CONFIG_HEADERS(config.h)
43ca08ab68SmrgAC_CONFIG_MACRO_DIR([m4])
44ca08ab68Smrg
45ca08ab68SmrgAC_PROG_CC
46c9710b42SmrgAC_USE_SYSTEM_EXTENSIONS
47c9710b42SmrgAC_SYS_LARGEFILE
48ca08ab68SmrgAC_PROG_INSTALL
49ca08ab68SmrgAC_PROG_LN_S
50ca08ab68SmrgAC_PROG_MAKE_SET
51ca08ab68SmrgPKG_PROG_PKG_CONFIG
52c9710b42Smrgm4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
53c9710b42Smrg
54c9710b42SmrgAM_MISSING_PROG([GIT], [git])
55c9710b42SmrgAM_MISSING_PROG([GPERF], [gperf])
56a4e54154SmrgAM_PATH_PYTHON([3])
57ca08ab68Smrg
58ca08ab68SmrgAC_MSG_CHECKING([for RM macro])
59ca08ab68Smrg_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
60ca08ab68Smrgif test "x$_predefined_rm" = "x"; then
61ca08ab68Smrg	AC_MSG_RESULT([no predefined RM])
62ca08ab68Smrg	AC_CHECK_PROG(RM, rm, [rm -f])
63ca08ab68Smrgelse
64ca08ab68Smrg	AC_MSG_RESULT($_predefined_rm)
65ca08ab68Smrgfi
66ca08ab68Smrg
67b09479dcSmrgdnl Initialize libtool
68b09479dcSmrgLT_PREREQ([2.2])
69b09479dcSmrgLT_INIT([disable-static win32-dll])
70b09479dcSmrg
71b09479dcSmrgdnl libtool versioning
72b09479dcSmrg
73b09479dcSmrgdnl bump revision when fixing bugs
74b09479dcSmrgdnl bump current and age, reset revision to zero when adding APIs
75b09479dcSmrgdnl bump current, leave age, reset revision to zero when changing/removing APIS
76a32e9e42SmrgLIBT_CURRENT=13
77ae02b298SmrgLIBT_REVISION=1
78b09479dcSmrgAC_SUBST(LIBT_CURRENT)
79b09479dcSmrgAC_SUBST(LIBT_REVISION)
80a32e9e42SmrgLIBT_AGE=12
81b09479dcSmrg
82b09479dcSmrgLIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
83b09479dcSmrgAC_SUBST(LIBT_VERSION_INFO)
84b09479dcSmrg
85b09479dcSmrgLIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
86b09479dcSmrgAC_SUBST(LIBT_CURRENT_MINUS_AGE)
87b09479dcSmrg
88b09479dcSmrgPKGCONFIG_REQUIRES=
89b09479dcSmrgPKGCONFIG_REQUIRES_PRIVATELY=
90b09479dcSmrg
91ca08ab68Smrgdnl ==========================================================================
92a4e54154SmrgAC_CANONICAL_HOST
93a4e54154Smrgos_win32=no
94a4e54154Smrgos_darwin=no
95a4e54154Smrgcase "${host_os}" in
96a4e54154Smrg	cygwin*|mingw*)
97a4e54154Smrg		os_win32=yes
98a4e54154Smrg		;;
99a4e54154Smrg	darwin*)
100a4e54154Smrg		os_darwin=yes
101a4e54154Smrg		;;
102ca08ab68Smrgesac
103ca08ab68SmrgAM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
104a4e54154SmrgAM_CONDITIONAL(OS_DARWIN, test "$os_darwin" = "yes")
105ca08ab68Smrg
106a32e9e42Smrgdnl ==========================================================================
107a32e9e42Smrgdnl gettext stuff
108a32e9e42Smrgdnl ==========================================================================
109a32e9e42SmrgGETTEXT_PACKAGE=$PACKAGE
110a32e9e42SmrgAC_SUBST(GETTEXT_PACKAGE)
111a32e9e42SmrgAC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
112a32e9e42Smrg
113a4e54154SmrgAM_GNU_GETTEXT_VERSION([0.19.7])
114a32e9e42SmrgAM_GNU_GETTEXT([external])
115a32e9e42Smrg
116a32e9e42Smrgdnl ==========================================================================
117a32e9e42Smrg
118ca08ab68Smrgif test "$os_win32" = "yes"; then
119ca08ab68Smrg  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
120ca08ab68Smrgfi
121ca08ab68SmrgAM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
122ca08ab68Smrg
123953daebaSmrgAC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
124ca08ab68SmrgWARN_CFLAGS=""
125953daebaSmrgWARNING_CPP_DIRECTIVE="no"
126ca08ab68Smrgif test "x$GCC" = "xyes"; then
127ca08ab68Smrg	WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
128ca08ab68Smrg	-Wmissing-prototypes -Wmissing-declarations \
129ca08ab68Smrg	-Wnested-externs -fno-strict-aliasing"
130953daebaSmrg	WARNING_CPP_DIRECTIVE="yes"
131953daebaSmrgelif test "x$SUNCC" = "xyes"; then
132953daebaSmrg	WARN_CFLAGS="-v -fd"
133953daebaSmrg	WARNING_CPP_DIRECTIVE="yes"
134953daebaSmrgfi
135953daebaSmrgif test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then
136ca08ab68Smrg	AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
137ca08ab68Smrg	[Can use #warning in C files])
138ca08ab68Smrgfi
139ca08ab68SmrgAC_SUBST(WARN_CFLAGS)
140ca08ab68Smrg
141ca08ab68Smrg
142ca08ab68Smrgdnl ==========================================================================
143ca08ab68Smrg
144c9710b42SmrgAX_CC_FOR_BUILD()
145c9710b42SmrgAC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
146ca08ab68SmrgAM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
147ca08ab68SmrgAM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
148ca08ab68Smrg
149ca08ab68Smrgdnl ==========================================================================
150ca08ab68Smrg
151ca08ab68SmrgAC_ARG_WITH(arch,
152ae02b298Smrg	[AS_HELP_STRING([--with-arch=ARCH],[Force architecture to ARCH])],
153ca08ab68Smrg	arch="$withval", arch=auto)
154ca08ab68Smrg
155ca08ab68Smrgif test "x$arch" != xauto; then
156ca08ab68Smrg	AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
157ca08ab68Smrgfi
158ca08ab68Smrg
159ca08ab68Smrg
160ca08ab68Smrgdnl ==========================================================================
161ca08ab68Smrg
162ca08ab68Smrg# Checks for header files.
163ca08ab68SmrgAC_HEADER_DIRENT
164ae02b298Smrg# Autoupdate added the next two lines to ensure that your configure
165ae02b298Smrg# script's behavior did not change.  They are probably safe to remove.
166ae02b298SmrgAC_CHECK_INCLUDES_DEFAULT
167ae02b298SmrgAC_PROG_EGREP
168ae02b298Smrg
169a4e54154SmrgAC_CHECK_HEADERS([dirent.h fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
170c9710b42SmrgAX_CREATE_STDINT_H([src/fcstdint.h])
171ca08ab68Smrg
172ca08ab68Smrg# Checks for typedefs, structures, and compiler characteristics.
173ca08ab68SmrgAC_C_CONST
174ca08ab68SmrgAC_C_INLINE
175ca08ab68SmrgAC_C_FLEXIBLE_ARRAY_MEMBER
176ca08ab68SmrgAC_TYPE_PID_T
177ca08ab68Smrg
178ca08ab68Smrg# Checks for library functions.
179ca08ab68SmrgAC_FUNC_VPRINTF
180ca08ab68SmrgAC_FUNC_MMAP
181a32e9e42SmrgAC_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])
182ca08ab68Smrg
183ca08ab68Smrgdnl AC_CHECK_FUNCS doesn't check for header files.
184ca08ab68Smrgdnl posix_fadvise() may be not available in older libc.
185b09479dcSmrgAC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
186953daebaSmrgAC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.])
187953daebaSmrg
188953daebaSmrg#
189953daebaSmrgAC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include <sys/stat.h>])
190ca08ab68Smrg
191ca08ab68Smrg#
192ca08ab68Smrgif test "x$ac_cv_func_fstatvfs" = "xyes"; then
193ca08ab68Smrg	AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
194ca08ab68Smrg		[#include <sys/statvfs.h>])
195ca08ab68Smrgfi
196ca08ab68Smrgif test "x$ac_cv_func_fstatfs" = "xyes"; then
197ca08ab68Smrg	AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
198ca08ab68Smrg#ifdef HAVE_SYS_VFS_H
199ca08ab68Smrg#include <sys/vfs.h>
200ca08ab68Smrg#endif
201ca08ab68Smrg#ifdef HAVE_SYS_STATFS_H
202ca08ab68Smrg#include <sys/statfs.h>
203ca08ab68Smrg#endif
204ca08ab68Smrg#ifdef HAVE_SYS_PARAM_H
205ca08ab68Smrg#include <sys/param.h>
206ca08ab68Smrg#endif
207ca08ab68Smrg#ifdef HAVE_SYS_MOUNT_H
208ca08ab68Smrg#include <sys/mount.h>
209ca08ab68Smrg#endif])
210ca08ab68Smrgfi
211ca08ab68SmrgAC_CHECK_MEMBERS([struct dirent.d_type],,,
212ca08ab68Smrg	[#include <dirent.h>])
213953daebaSmrg
214953daebaSmrg# Check the argument type of the gperf hash/lookup function
215953daebaSmrgAC_MSG_CHECKING([The type of len parameter of gperf hash/lookup function])
216953daebaSmrgfc_gperf_test="$(echo 'foo' | gperf -L ANSI-C)"
217953daebaSmrgAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
218953daebaSmrg	#include <string.h>
219953daebaSmrg
220953daebaSmrg	const char *in_word_set(register const char *, register size_t);
221953daebaSmrg	$fc_gperf_test
222953daebaSmrg	]])], [FC_GPERF_SIZE_T=size_t],
223953daebaSmrg	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
224953daebaSmrg		#include <string.h>
225953daebaSmrg
226953daebaSmrg		const char *in_word_set(register const char *, register unsigned int);
227953daebaSmrg		$fc_gperf_test
228953daebaSmrg	]])], [FC_GPERF_SIZE_T="unsigned int"],
229953daebaSmrg	[AC_MSG_ERROR([Unable to determine the type of the len parameter of the gperf hash/lookup function])]
230953daebaSmrg)])
231953daebaSmrgAC_DEFINE_UNQUOTED(FC_GPERF_SIZE_T, $FC_GPERF_SIZE_T, [The type of len parameter of the gperf hash/lookup function])
232953daebaSmrgAC_MSG_RESULT($FC_GPERF_SIZE_T)
233ca08ab68Smrg
234ca08ab68Smrg#
235ca08ab68Smrg# Checks for iconv
236ca08ab68Smrg#
237ca08ab68SmrgAC_ARG_ENABLE(iconv,
238ae02b298Smrg	[AS_HELP_STRING([--enable-iconv],[Use iconv to support non-Unicode SFNT name])],
239ca08ab68Smrg	,enable_iconv=no)
240ca08ab68SmrgAC_ARG_WITH(libiconv,
241ae02b298Smrg	[AS_HELP_STRING([--with-libiconv=DIR],[Use libiconv in DIR])],
242ca08ab68Smrg	[if test "x$withval" = "xyes"; then
243ca08ab68Smrg		libiconv_prefix=$prefix
244ca08ab68Smrg	 else
245ca08ab68Smrg		libiconv_prefix=$withval
246ca08ab68Smrg	 fi],
247ca08ab68Smrg	[libiconv_prefix=auto])
248ca08ab68SmrgAC_ARG_WITH(libiconv-includes,
249ae02b298Smrg	[AS_HELP_STRING([--with-libiconv-includes=DIR],[Use libiconv includes in DIR])],
250ca08ab68Smrg	[libiconv_includes=$withval],
251ca08ab68Smrg	[libiconv_includes=auto])
252ca08ab68SmrgAC_ARG_WITH(libiconv-lib,
253ae02b298Smrg	[AS_HELP_STRING([--with-libiconv-lib=DIR],[Use libiconv library in DIR])],
254ca08ab68Smrg	[libiconv_lib=$withval],
255ca08ab68Smrg	[libiconv_lib=auto])
256ca08ab68Smrg
257ca08ab68Smrg# if no libiconv,libiconv-includes,libiconv-lib are specified,
258ca08ab68Smrg# libc's iconv has a priority.
259ca08ab68Smrgif test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
260ca08ab68Smrg	libiconv_cflags="-I${libiconv_includes}"
261ca08ab68Smrgelif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
262ca08ab68Smrg	libiconv_cflags="-I${libiconv_prefix}/include"
263ca08ab68Smrgelse
264ca08ab68Smrg	libiconv_cflags=""
265ca08ab68Smrgfi
266ca08ab68Smrglibiconv_libs=""
267ca08ab68Smrgif test "x$libiconv_cflags" != "x"; then
268ca08ab68Smrg	if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
269ca08ab68Smrg		libiconv_libs="-L${libiconv_lib} -liconv"
270ca08ab68Smrg	elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
271ca08ab68Smrg		libiconv_libs="-L${libiconv_prefix}/lib -liconv"
272ca08ab68Smrg	else
273ca08ab68Smrg		libiconv_libs="-liconv"
274ca08ab68Smrg	fi
275ca08ab68Smrgfi
276ca08ab68Smrg
277ca08ab68Smrguse_iconv=0
278ca08ab68Smrgif test "x$enable_iconv" != "xno"; then
279ca08ab68Smrg	AC_MSG_CHECKING([for a usable iconv])
280ca08ab68Smrg	if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
281ca08ab68Smrg		iconvsaved_CFLAGS="$CFLAGS"
282ca08ab68Smrg		iconvsaved_LIBS="$LIBS"
283ca08ab68Smrg		CFLAGS="$CFLAGS $libiconv_cflags"
284ca08ab68Smrg		LIBS="$LIBS $libiconv_libs"
285ca08ab68Smrg
286ae02b298Smrg		AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], [[iconv_open ("from", "to");]])],[iconv_type="libiconv"
2876fc018e4Smrg			 use_iconv=1
2886fc018e4Smrg			 ICONV_CFLAGS="$libiconv_cflags"
2896fc018e4Smrg			 ICONV_LIBS="$libiconv_libs"
290ae02b298Smrg			 ],[use_iconv=0])
291ca08ab68Smrg
292ca08ab68Smrg		CFLAGS="$iconvsaved_CFLAGS"
293ca08ab68Smrg		LIBS="$iconvsaved_LIBS"
294ca08ab68Smrg	fi
295ca08ab68Smrg	if test "x$use_iconv" = "x0"; then
296ae02b298Smrg		AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], [[iconv_open ("from", "to");]])],[iconv_type="libc"
297ae02b298Smrg			 use_iconv=1],[iconv_type="not found"
298ca08ab68Smrg			 use_iconv=0])
299ca08ab68Smrg	fi
300ca08ab68Smrg
301ca08ab68Smrg	AC_MSG_RESULT([$iconv_type])
302ca08ab68Smrg	AC_SUBST(ICONV_CFLAGS)
303ca08ab68Smrg	AC_SUBST(ICONV_LIBS)
304ca08ab68Smrgfi
305ca08ab68SmrgAC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
306ca08ab68Smrg#
307ca08ab68Smrg# Checks for FreeType
308ca08ab68Smrg#
309a32e9e42Smrgdnl See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT for versioning in freetype
310a32e9e42SmrgPKG_CHECK_MODULES(FREETYPE, freetype2 >= 21.0.15)
311a32e9e42SmrgPKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 21.0.15"
312ca08ab68Smrg
313ca08ab68SmrgAC_SUBST(FREETYPE_LIBS)
314ca08ab68SmrgAC_SUBST(FREETYPE_CFLAGS)
315ca08ab68Smrg
316ca08ab68Smrgfontconfig_save_libs="$LIBS"
317ca08ab68Smrgfontconfig_save_cflags="$CFLAGS"
318ca08ab68SmrgLIBS="$LIBS $FREETYPE_LIBS"
319ca08ab68SmrgCFLAGS="$CFLAGS $FREETYPE_CFLAGS"
320a32e9e42SmrgAC_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)
321953daebaSmrg
322a32e9e42SmrgAC_COMPILE_IFELSE([AC_LANG_SOURCE([[
323a32e9e42Smrg	#include <ft2build.h>
324a32e9e42Smrg	#include FT_CONFIG_OPTIONS_H
325a32e9e42Smrg	#ifndef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
326a32e9e42Smrg	#  error "No pcf long family names support"
327a32e9e42Smrg	#endif
328a32e9e42Smrg	]])], [have_pcf_long_family_names=yes], [have_pcf_long_family_names=no])
329a32e9e42SmrgAM_CONDITIONAL(FREETYPE_PCF_LONG_FAMILY_NAMES, test "x$have_pcf_long_family_names" = xyes)
330953daebaSmrg
331ca08ab68SmrgLIBS="$fontconfig_save_libs"
332a32e9e42SmrgCFLAGS="$fontconfig_save_cflags"
333a32e9e42Smrg
334ca08ab68Smrg#
335ca08ab68Smrg# Check expat configuration
336ca08ab68Smrg#
337ca08ab68SmrgAC_ARG_WITH(expat,
338ae02b298Smrg	[AS_HELP_STRING([--with-expat=DIR],[Use Expat in DIR])],
339ca08ab68Smrg	[expat_prefix=$withval],
340ca08ab68Smrg	[expat_prefix=auto])
341ca08ab68SmrgAC_ARG_WITH(expat-includes,
342ae02b298Smrg	[AS_HELP_STRING([--with-expat-includes=DIR],[Use Expat includes in DIR])],
343ca08ab68Smrg	[expat_includes=$withval],
344ca08ab68Smrg	[expat_includes=auto])
345ca08ab68SmrgAC_ARG_WITH(expat-lib,
346ae02b298Smrg	[AS_HELP_STRING([--with-expat-lib=DIR])],
347ca08ab68Smrg	[expat_lib=$withval],
348ca08ab68Smrg	[expat_lib=auto])
349ca08ab68Smrg
350ca08ab68Smrgif test "$enable_libxml2" != "yes"; then
351ca08ab68Smrg	use_pkgconfig_for_expat=yes
352ca08ab68Smrg	if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
353ca08ab68Smrg		PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
354ca08ab68Smrg	else
355ca08ab68Smrg		use_pkgconfig_for_expat=no
356ca08ab68Smrg	fi
357ca08ab68Smrg	if test "x$use_pkgconfig_for_expat" = "xno"; then
358ca08ab68Smrg		if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
359ca08ab68Smrg			EXPAT_CFLAGS="-I${expat_includes}"
360ca08ab68Smrg		elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
361ca08ab68Smrg			EXPAT_CFLAGS="-I${expat_prefix}/include"
362ca08ab68Smrg		else
363ca08ab68Smrg			EXPAT_CFLAGS=""
364ca08ab68Smrg		fi
365ca08ab68Smrg		if test "$expat_lib" != "auto"; then
366ca08ab68Smrg			EXPAT_LIBS="-L${expat_lib} -lexpat"
367ca08ab68Smrg		elif test "$expat_prefix" != "auto"; then
368ca08ab68Smrg			EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
369ca08ab68Smrg		else
370ca08ab68Smrg			EXPAT_LIBS="-lexpat"
371ca08ab68Smrg		fi
372a32e9e42Smrg		PKG_EXPAT_CFLAGS=$EXPAT_CFLAGS
373a32e9e42Smrg		PKG_EXPAT_LIBS=$EXPAT_LIBS
3746fc018e4Smrg	else
3756fc018e4Smrg		PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
376a32e9e42Smrg		PKG_EXPAT_CFLAGS=
377a32e9e42Smrg		PKG_EXPAT_LIBS=
378ca08ab68Smrg	fi
379ca08ab68Smrg
380ca08ab68Smrg	expatsaved_CPPFLAGS="$CPPFLAGS"
381ca08ab68Smrg	expatsaved_LIBS="$LIBS"
382ca08ab68Smrg	CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
383ca08ab68Smrg	LIBS="$LIBS $EXPAT_LIBS"
384ca08ab68Smrg
385ca08ab68Smrg	AC_CHECK_HEADER(expat.h)
386ca08ab68Smrg	if test "$ac_cv_header_expat_h" = "no"; then
387ca08ab68Smrg		AC_CHECK_HEADER(xmlparse.h)
388ca08ab68Smrg		if test "$ac_cv_header_xmlparse_h" = "yes"; then
389ca08ab68Smrg			HAVE_XMLPARSE_H=1
390ca08ab68Smrg			AC_SUBST(HAVE_XMLPARSE_H)
391ca08ab68Smrg			AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
392ca08ab68Smrg				[Use xmlparse.h instead of expat.h])
393ca08ab68Smrg		else
394ca08ab68Smrg			AC_MSG_ERROR([
395ca08ab68Smrg*** expat is required. or try to use --enable-libxml2])
396ca08ab68Smrg		fi
397ca08ab68Smrg	fi
398ca08ab68Smrg	AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
399ca08ab68Smrg	if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
400ca08ab68Smrg		AC_MSG_ERROR([
401ca08ab68Smrg*** expat is required. or try to use --enable-libxml2])
402ca08ab68Smrg	fi
403ca08ab68Smrg	CPPFLAGS="$expatsaved_CPPFLAGS"
404ca08ab68Smrg	LIBS="$expatsaved_LIBS"
405ca08ab68Smrg
406ca08ab68Smrg	AC_SUBST(EXPAT_CFLAGS)
407ca08ab68Smrg	AC_SUBST(EXPAT_LIBS)
408a32e9e42Smrg	AC_SUBST(PKG_EXPAT_CFLAGS)
409a32e9e42Smrg	AC_SUBST(PKG_EXPAT_LIBS)
410ca08ab68Smrgfi
411ca08ab68Smrg
412ca08ab68Smrg#
413ca08ab68Smrg# Check libxml2 configuration
414ca08ab68Smrg#
415ca08ab68SmrgAC_ARG_ENABLE(libxml2,
416ae02b298Smrg	[AS_HELP_STRING([--enable-libxml2],[Use libxml2 instead of Expat])])
417ca08ab68Smrg
418ca08ab68Smrgif test "$enable_libxml2" = "yes"; then
419ca08ab68Smrg    PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
420a32e9e42Smrg    PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0 >= 2.6"
421ca08ab68Smrg    AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
422ca08ab68Smrg
423ca08ab68Smrg    AC_SUBST(LIBXML2_CFLAGS)
424ca08ab68Smrg    AC_SUBST(LIBXML2_LIBS)
425ca08ab68Smrg
426ca08ab68Smrg    fc_saved_CFLAGS="$CFLAGS"
427ca08ab68Smrg    CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
428ca08ab68Smrg    AC_MSG_CHECKING([SAX1 support in libxml2])
429ca08ab68Smrg    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
430ca08ab68Smrg	#include <libxml/xmlversion.h>
431ca08ab68Smrg	#if !defined(LIBXML_SAX1_ENABLED)
432ca08ab68Smrg	#  include "error: No SAX1 support in libxml2"
433ca08ab68Smrg	#endif
434ca08ab68Smrg	]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
435ca08ab68Smrg*** SAX1 support in libxml2 is required. enable it or use expat instead.])])
436ca08ab68Smrg    CFLAGS="$fc_saved_CFLAGS"
437ca08ab68Smrgfi
438ca08ab68Smrg
439a32e9e42Smrg#
440a32e9e42Smrg# Check json-c
441a32e9e42Smrg#
442a32e9e42SmrgPKG_CHECK_MODULES([JSONC], [json-c], [use_jsonc=yes], [use_jsonc=no])
443a32e9e42Smrg
444a32e9e42SmrgAM_CONDITIONAL(ENABLE_JSONC, test "x$use_jsonc" = "xyes")
445a32e9e42SmrgAC_SUBST(JSONC_CFLAGS)
446a32e9e42SmrgAC_SUBST(JSONC_LIBS)
447a32e9e42Smrg
4481cc69409Smrg#
4491cc69409Smrg# Set default sub-pixel rendering
4501cc69409Smrg#
4511cc69409Smrg
4521cc69409SmrgAC_ARG_WITH(default-sub-pixel-rendering,
453ae02b298Smrg    [AS_HELP_STRING([--with-default-sub-pixel-rendering=NAME],[Enable your preferred sub-pixel rendering configuration (none/bgr/rgb/vbgr/vrgb) [default=none]])],
4541cc69409Smrg    preferred_sub_pixel_rendering="$withval", preferred_sub_pixel_rendering=none)
4551cc69409Smrg
4561cc69409Smrgcase "$preferred_sub_pixel_rendering" in
4571cc69409Smrgnone|bgr|rgb|vbgr|vrgb)
4581cc69409Smrg    PREFERRED_SUB_PIXEL_RENDERING="$preferred_sub_pixel_rendering"
4591cc69409Smrg    AC_SUBST(PREFERRED_SUB_PIXEL_RENDERING)
4601cc69409Smrg    ;;
4611cc69409Smrg*)
4621cc69409Smrg    AC_MSG_ERROR([Invalid sub-pixel rendering. please choose one of none, bgr, rgb, vbgr, or vrgb])
4631cc69409Smrg    ;;
4641cc69409Smrgesac
4651cc69409Smrg
466953daebaSmrg#
467953daebaSmrg# Set default hinting
468953daebaSmrg#
469953daebaSmrg
470953daebaSmrgAC_ARG_WITH(default-hinting,
471ae02b298Smrg	[AS_HELP_STRING([--with-default-hinting=NAME],[Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])],
472953daebaSmrg	preferred_hinting="$withval", preferred_hinting=slight)
473953daebaSmrg
474953daebaSmrgcase "$preferred_hinting" in
475953daebaSmrgnone|slight|medium|full)
476953daebaSmrg	PREFERRED_HINTING="$preferred_hinting"
477953daebaSmrg	AC_SUBST(PREFERRED_HINTING)
478953daebaSmrg	;;
479953daebaSmrg*)
480953daebaSmrg	AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full])
481953daebaSmrg	;;
482953daebaSmrgesac
483953daebaSmrg
484ca08ab68Smrg#
485ca08ab68Smrg# Set default font directory
486ca08ab68Smrg#
487ca08ab68Smrg
488ca08ab68SmrgAC_ARG_WITH(default-fonts,
489ae02b298Smrg	[AS_HELP_STRING([--with-default-fonts=DIR1,DIR2,...],[Use fonts from DIR1,DIR2,... when config is busted])],
490ca08ab68Smrg	default_fonts="$withval", default_fonts=yes)
491ca08ab68Smrg
492ca08ab68Smrgcase "$default_fonts" in
493ca08ab68Smrgyes)
494ca08ab68Smrg	if test "$os_win32" = "yes"; then
495a4e54154Smrg		default_fonts="WINDOWSFONTDIR,WINDOWSUSERFONTDIR"
496a4e54154Smrg	elif test "$os_darwin" = "yes"; then
497a4e54154Smrg		default_fonts="/System/Library/Fonts,/Library/Fonts,~/Library/Fonts,/System/Library/Assets/com_apple_MobileAsset_Font3,/System/Library/Assets/com_apple_MobileAsset_Font4"
498ca08ab68Smrg	else
499a4e54154Smrg		default_fonts="/usr/share/fonts"
500ca08ab68Smrg	fi
501ca08ab68Smrg	;;
502ca08ab68Smrgesac
503ca08ab68Smrg
504a4e54154SmrgFC_DEFAULT_FONTS=""
505a4e54154Smrgif test x${default_fonts+set} = xset; then
506a4e54154Smrg	fc_IFS=$IFS
507a4e54154Smrg	IFS=","
508a4e54154Smrg	for p in $default_fonts; do
509a4e54154Smrg		if test x"$FC_DEFAULT_FONTS" != x; then
510a4e54154Smrg			FC_DEFAULT_FONTS="$FC_DEFAULT_FONTS "
511a4e54154Smrg		fi
512a4e54154Smrg		FC_DEFAULT_FONTS="$FC_DEFAULT_FONTS<dir>$p</dir>"
513a4e54154Smrg	done
514a4e54154Smrg	IFS=$fc_IFS
515a4e54154Smrgfi
516a4e54154Smrg
517a4e54154SmrgAC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$FC_DEFAULT_FONTS",
518a4e54154Smrg			   [System font directory])
519a4e54154Smrg
520ca08ab68SmrgAC_SUBST(FC_DEFAULT_FONTS)
521ca08ab68Smrg
522ca08ab68Smrg#
523ca08ab68Smrg# Add more fonts if available.  By default, add only the directories
524ca08ab68Smrg# with outline fonts; those with bitmaps can be added as desired in
525ca08ab68Smrg# local.conf or ~/.fonts.conf
526ca08ab68Smrg#
527ca08ab68SmrgAC_ARG_WITH(add-fonts,
528ae02b298Smrg	[AS_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],[Find additional fonts in DIR1,DIR2,... ])],
529ca08ab68Smrg	add_fonts="$withval", add_fonts=yes)
530ca08ab68Smrg
531ca08ab68Smrgcase "$add_fonts" in
532ca08ab68Smrgyes)
533ca08ab68Smrg	FC_ADD_FONTS=""
534ca08ab68Smrg	for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
535ca08ab68Smrg		case x"$FC_ADD_FONTS" in
536ca08ab68Smrg		x)
537ca08ab68Smrg			sub="$dir/fonts"
538ca08ab68Smrg			if test -d "$sub"; then
539ca08ab68Smrg				case x$FC_ADD_FONTS in
540ca08ab68Smrg				x)
541ca08ab68Smrg					FC_ADD_FONTS="$sub"
542ca08ab68Smrg					;;
543ca08ab68Smrg				*)
544ca08ab68Smrg					FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
545ca08ab68Smrg					;;
546ca08ab68Smrg				esac
547ca08ab68Smrg			fi
548ca08ab68Smrg			;;
549ca08ab68Smrg		esac
550ca08ab68Smrg	done
551ca08ab68Smrg	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
552ca08ab68Smrg	;;
553ca08ab68Smrgno)
554ca08ab68Smrg	FC_ADD_FONTS=""
555ca08ab68Smrg	;;
556ca08ab68Smrg*)
557ca08ab68Smrg	FC_ADD_FONTS="$add_fonts"
558ca08ab68Smrg	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
559ca08ab68Smrg	;;
560ca08ab68Smrgesac
561ca08ab68Smrg
562ca08ab68SmrgAC_SUBST(FC_ADD_FONTS)
563ca08ab68Smrg
564ca08ab68SmrgFC_FONTPATH=""
565ca08ab68Smrg
566ca08ab68Smrgcase "$FC_ADD_FONTS" in
567ca08ab68Smrg"")
568ca08ab68Smrg	;;
569ca08ab68Smrg*)
5701cc69409Smrg	FC_FONTPATH=`echo $FC_ADD_FONTS |
571ca08ab68Smrg			sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
572ca08ab68Smrg	;;
573ca08ab68Smrgesac
574ca08ab68Smrg
575ca08ab68SmrgAC_SUBST(FC_FONTPATH)
576ca08ab68Smrg
577ca08ab68Smrg#
578ca08ab68Smrg# Set default cache directory path
579ca08ab68Smrg#
580ca08ab68SmrgAC_ARG_WITH(cache-dir,
581ae02b298Smrg	[AS_HELP_STRING([--with-cache-dir=DIR],[Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
582ca08ab68Smrg	fc_cachedir="$withval", fc_cachedir=yes)
583ca08ab68Smrg
584ca08ab68Smrgcase $fc_cachedir in
585ca08ab68Smrgno|yes)
586ca08ab68Smrg	if test "$os_win32" = "yes"; then
587b09479dcSmrg		fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
588ca08ab68Smrg	else
589ca08ab68Smrg		fc_cachedir='${localstatedir}/cache/${PACKAGE}'
590ca08ab68Smrg	fi
591ca08ab68Smrg	;;
592ca08ab68Smrg*)
593ca08ab68Smrg	;;
594ca08ab68Smrgesac
595ca08ab68SmrgAC_SUBST(fc_cachedir)
596ca08ab68SmrgFC_CACHEDIR=${fc_cachedir}
597ca08ab68SmrgAC_SUBST(FC_CACHEDIR)
598ca08ab68Smrg
599ca08ab68SmrgFC_FONTDATE=`LC_ALL=C date`
600ca08ab68Smrg
601ca08ab68SmrgAC_SUBST(FC_FONTDATE)
602ca08ab68Smrg
603ca08ab68Smrg#
604ca08ab68Smrg# Set configuration paths
605ca08ab68Smrg#
606ca08ab68Smrg
607ca08ab68SmrgAC_ARG_WITH(templatedir,
608ae02b298Smrg	[AS_HELP_STRING([--with-templatedir=DIR],[Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
609ca08ab68Smrg	[templatedir="$withval"],
610ca08ab68Smrg	[templatedir=yes])
611ca08ab68SmrgAC_ARG_WITH(baseconfigdir,
612ae02b298Smrg	[AS_HELP_STRING([--with-baseconfigdir=DIR],[Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
613ca08ab68Smrg	[baseconfigdir="$withval"],
614ca08ab68Smrg	[baseconfigdir=yes])
615ca08ab68SmrgAC_ARG_WITH(configdir,
616ae02b298Smrg	[AS_HELP_STRING([--with-configdir=DIR],[Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
617ca08ab68Smrg	[configdir="$withval"],
618ca08ab68Smrg	[configdir=yes])
619ca08ab68SmrgAC_ARG_WITH(xmldir,
620ae02b298Smrg	[AS_HELP_STRING([--with-xmldir=DIR],[Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
621ca08ab68Smrg	[xmldir="$withval"],
622ca08ab68Smrg	[xmldir=yes])
623ca08ab68Smrg
624ca08ab68Smrgcase "$templatedir" in
625ca08ab68Smrgno|yes)
626ca08ab68Smrg	templatedir='${datadir}'/fontconfig/conf.avail
627ca08ab68Smrg	;;
628ca08ab68Smrg*)
629ca08ab68Smrg	;;
630ca08ab68Smrgesac
631ca08ab68Smrgcase "$baseconfigdir" in
632ca08ab68Smrgno|yes)
633ca08ab68Smrg	baseconfigdir='${sysconfdir}'/fonts
634ca08ab68Smrg	;;
635ca08ab68Smrg*)
636ca08ab68Smrg	;;
637ca08ab68Smrgesac
638ca08ab68Smrgcase "$configdir" in
639ca08ab68Smrgno|yes)
6406fc018e4Smrg	configdir='${BASECONFIGDIR}'/conf.d
641ca08ab68Smrg	;;
642ca08ab68Smrg*)
643ca08ab68Smrg	;;
644ca08ab68Smrgesac
645ca08ab68Smrgcase "$xmldir" in
646ca08ab68Smrgno|yes)
647ca08ab68Smrg	xmldir='${datadir}'/xml/fontconfig
648ca08ab68Smrg	;;
649ca08ab68Smrg*)
650ca08ab68Smrg	;;
651ca08ab68Smrgesac
652ca08ab68Smrg
653ca08ab68SmrgTEMPLATEDIR=${templatedir}
654ca08ab68SmrgBASECONFIGDIR=${baseconfigdir}
655ca08ab68SmrgCONFIGDIR=${configdir}
656ca08ab68SmrgXMLDIR=${xmldir}
657ca08ab68SmrgAC_SUBST(TEMPLATEDIR)
658ca08ab68SmrgAC_SUBST(BASECONFIGDIR)
659ca08ab68SmrgAC_SUBST(CONFIGDIR)
660ca08ab68SmrgAC_SUBST(XMLDIR)
661ca08ab68Smrg
662c9710b42Smrg
663c9710b42Smrgdnl ===========================================================================
664c9710b42Smrg
665c9710b42Smrg#
666c9710b42Smrg# Thread-safety primitives
667c9710b42Smrg#
668c9710b42Smrg
669a4e54154SmrgAC_CACHE_CHECK([stdatomic.h atomic primitives], fc_cv_have_stdatomic_atomic_primitives, [
670a4e54154Smrg	fc_cv_have_stdatomic_atomic_primitives=false
671ae02b298Smrg	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
672a4e54154Smrg		#include <stdatomic.h>
673a4e54154Smrg
674a4e54154Smrg		void memory_barrier (void) { atomic_thread_fence (memory_order_acq_rel); }
675a4e54154Smrg		int atomic_add (atomic_int *i) { return atomic_fetch_add_explicit (i, 1, memory_order_relaxed); }
676a4e54154Smrg		int mutex_trylock (atomic_flag *m) { return atomic_flag_test_and_set_explicit (m, memory_order_acquire); }
677a4e54154Smrg		void mutex_unlock (atomic_flag *m) { atomic_flag_clear_explicit (m, memory_order_release); }
678ae02b298Smrg		]], [[]])],[fc_cv_have_stdatomic_atomic_primitives=true
679ae02b298Smrg	],[])
680a4e54154Smrg])
681a4e54154Smrgif $fc_cv_have_stdatomic_atomic_primitives; then
6821cc69409Smrg	AC_DEFINE(HAVE_STDATOMIC_PRIMITIVES, 1, [Have C99 stdatomic atomic primitives])
683a4e54154Smrgfi
684a4e54154Smrg
685c9710b42SmrgAC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [
686c9710b42Smrg	fc_cv_have_intel_atomic_primitives=false
687ae02b298Smrg	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
688c9710b42Smrg		void memory_barrier (void) { __sync_synchronize (); }
689c9710b42Smrg		int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); }
690c9710b42Smrg		int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); }
691c9710b42Smrg		void mutex_unlock (int *m) { __sync_lock_release (m); }
692ae02b298Smrg		]], [[]])],[fc_cv_have_intel_atomic_primitives=true
693ae02b298Smrg	],[])
694c9710b42Smrg])
695c9710b42Smrgif $fc_cv_have_intel_atomic_primitives; then
696c9710b42Smrg	AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
697c9710b42Smrgfi
698c9710b42Smrg
699c9710b42SmrgAC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [
700c9710b42Smrg	fc_cv_have_solaris_atomic_ops=false
701ae02b298Smrg	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
702c9710b42Smrg		#include <atomic.h>
703c9710b42Smrg		/* This requires Solaris Studio 12.2 or newer: */
704c9710b42Smrg		#include <mbarrier.h>
705c9710b42Smrg		void memory_barrier (void) { __machine_rw_barrier (); }
706c9710b42Smrg		int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); }
707c9710b42Smrg		void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); }
708ae02b298Smrg		]], [[]])],[fc_cv_have_solaris_atomic_ops=true
709ae02b298Smrg	],[])
710c9710b42Smrg])
711c9710b42Smrgif $fc_cv_have_solaris_atomic_ops; then
712c9710b42Smrg	AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations])
713c9710b42Smrgfi
714c9710b42Smrg
715c9710b42Smrgif test "$os_win32" = no && ! $have_pthread; then
716c9710b42Smrg	AC_CHECK_HEADERS(sched.h)
717c9710b42Smrg	AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield]))
718c9710b42Smrgfi
719c9710b42Smrg
720c9710b42Smrghave_pthread=false
721c9710b42Smrgif test "$os_win32" = no; then
722c9710b42Smrg	AX_PTHREAD([have_pthread=true])
723c9710b42Smrgfi
724c9710b42Smrgif $have_pthread; then
725c9710b42Smrg	LIBS="$PTHREAD_LIBS $LIBS"
726c9710b42Smrg	CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
727c9710b42Smrg	CC="$PTHREAD_CC"
728c9710b42Smrg	AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
729c9710b42Smrgfi
730c9710b42SmrgAM_CONDITIONAL(HAVE_PTHREAD, $have_pthread)
731c9710b42Smrg
732c9710b42Smrg
733c9710b42Smrgdnl ===========================================================================
734c9710b42Smrg
735ca08ab68Smrg#
736ca08ab68Smrg# Let people not build/install docs if they don't have docbook
737ca08ab68Smrg#
738ca08ab68Smrg
739eceda581SmrgAC_ARG_ENABLE(docbook,
740eceda581Smrg	[AS_HELP_STRING([--disable-docbook],
741eceda581Smrg		[Disable building docs with docbook2html (default: no)])],,)
742eceda581Smrg
743eceda581Smrgif test x$enable_docbook != xno; then
744eceda581Smrg	AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
745eceda581Smrgfi
746ca08ab68Smrg
747ca08ab68SmrgAM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
748ca08ab68Smrg
749ca08ab68Smrgdefault_docs="yes"
750ca08ab68Smrg#
751ca08ab68Smrg# Check if docs exist or can be created
752ca08ab68Smrg#
753ca08ab68Smrgif test x$HASDOCBOOK = xno; then
754ca08ab68Smrg	if test -f $srcdir/doc/fonts-conf.5; then
755ca08ab68Smrg		:
756ca08ab68Smrg	else
757ca08ab68Smrg		default_docs="no"
758ca08ab68Smrg	fi
759ca08ab68Smrgfi
760ca08ab68Smrg
761ca08ab68SmrgAC_ARG_ENABLE(docs,
762ae02b298Smrg	[AS_HELP_STRING([--disable-docs],[Don't build and install documentation])],
763ca08ab68Smrg	,
764ca08ab68Smrg	enable_docs=$default_docs)
765ca08ab68Smrg
766ca08ab68SmrgAM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
767ca08ab68Smrg
768ca08ab68Smrgif test "x$enable_docs" = xyes; then
769ca08ab68Smrg	tmp=funcs.$$
770ca08ab68Smrg	cat $srcdir/doc/*.fncs | awk '
771ca08ab68Smrg	/^@TITLE@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
772ca08ab68Smrg	/^@FUNC@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
773ca08ab68Smrg	/^@@/		{ done = 0; }' > $tmp
774ca08ab68Smrg	DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
775ca08ab68Smrg	echo DOCMAN3 $DOCMAN3
776ca08ab68Smrg	rm -f $tmp
777ca08ab68Smrgelse
778ca08ab68Smrg	DOCMAN3=""
779ca08ab68Smrgfi
780ca08ab68SmrgAC_SUBST(DOCMAN3)
781ca08ab68Smrg
782a4e54154Smrgdnl ===========================================================================
783a4e54154Smrgdefault_cache_build="yes"
784a4e54154Smrgif test $cross_compiling = "yes"; then
785a4e54154Smrg	default_cache_build="no"
786a4e54154Smrgfi
787a4e54154SmrgAC_ARG_ENABLE(cache-build,
788ae02b298Smrg	[AS_HELP_STRING([--disable-cache-build],[Don't run fc-cache during the build])],
789a4e54154Smrg	,
790a4e54154Smrg	enable_cache_build=$default_cache_build)
791a4e54154Smrg
792a4e54154SmrgAM_CONDITIONAL(ENABLE_CACHE_BUILD, test "x$enable_cache_build" = xyes)
793a4e54154Smrg
794ca08ab68Smrg
795ca08ab68Smrgdnl Figure out what cache format suffix to use for this architecture
796ca08ab68SmrgAC_C_BIGENDIAN
797ca08ab68SmrgAC_CHECK_SIZEOF([void *])
798ca08ab68SmrgAC_CHECK_ALIGNOF([double])
799953daebaSmrgAC_CHECK_ALIGNOF([void *])
800ca08ab68Smrg
801ca08ab68Smrgdnl include the header file for workaround of miscalculating size on autoconf
802ca08ab68Smrgdnl particularly for fat binaries
803ca08ab68SmrgAH_BOTTOM([#include "config-fixups.h"])
804ca08ab68Smrg
8056fc018e4Smrgdnl
8066fc018e4Smrgdnl
8076fc018e4SmrgAC_SUBST(PKGCONFIG_REQUIRES)
8086fc018e4SmrgAC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY)
8096fc018e4Smrg
8106fc018e4Smrgdnl
811c9710b42SmrgAC_CONFIG_FILES([
812ca08ab68SmrgMakefile
813ca08ab68Smrgfontconfig/Makefile
814ca08ab68Smrgfc-lang/Makefile
815ca08ab68Smrgfc-case/Makefile
816ca08ab68Smrgsrc/Makefile
817ca08ab68Smrgconf.d/Makefile
818ca08ab68Smrgfc-cache/Makefile
819ca08ab68Smrgfc-cat/Makefile
820a32e9e42Smrgfc-conflist/Makefile
821ca08ab68Smrgfc-list/Makefile
822ca08ab68Smrgfc-match/Makefile
823ca08ab68Smrgfc-pattern/Makefile
824ca08ab68Smrgfc-query/Makefile
825ca08ab68Smrgfc-scan/Makefile
826c9710b42Smrgfc-validate/Makefile
827ca08ab68Smrgdoc/Makefile
828ca08ab68Smrgdoc/version.sgml
829a32e9e42Smrgits/Makefile
830a32e9e42Smrgpo/Makefile.in
831a32e9e42Smrgpo-conf/Makefile.in
832ca08ab68Smrgtest/Makefile
833ca08ab68Smrgfontconfig.pc
834ca08ab68Smrgfontconfig-zip
835ca08ab68Smrg])
836c9710b42SmrgAC_OUTPUT
837