configure.ac revision ca08ab68
1ca08ab68Smrgdnl 
2ca08ab68Smrgdnl  fontconfig/configure.in
3ca08ab68Smrgdnl 
4ca08ab68Smrgdnl  Copyright © 2003 Keith Packard
5ca08ab68Smrgdnl 
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.
15ca08ab68Smrgdnl 
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
26ca08ab68SmrgAC_PREREQ(2.61)
27ca08ab68SmrgAC_INIT(fonts.dtd)
28ca08ab68Smrg
29ca08ab68Smrgdnl ==========================================================================
30ca08ab68Smrgdnl                               Versioning              
31ca08ab68Smrgdnl ==========================================================================
32ca08ab68Smrg
33ca08ab68Smrgdnl This is the package version number, not the shared library
34ca08ab68Smrgdnl version.  This same version number must appear in fontconfig/fontconfig.h
35ca08ab68Smrgdnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
36ca08ab68Smrgdnl not possible to extract the version number here from fontconfig.h
37ca08ab68SmrgAM_INIT_AUTOMAKE(fontconfig, 2.10.2)
38ca08ab68Smrgm4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
39ca08ab68Smrg
40ca08ab68Smrgdnl libtool versioning
41ca08ab68Smrg
42ca08ab68Smrgdnl bump revision when fixing bugs
43ca08ab68Smrgdnl bump current and age, reset revision to zero when adding APIs
44ca08ab68Smrgdnl bump current, leave age, reset revision to zero when changing/removing APIS
45ca08ab68SmrgLIBT_CURRENT=7
46ca08ab68SmrgLIBT_REVISION=2
47ca08ab68SmrgAC_SUBST(LIBT_CURRENT)
48ca08ab68SmrgAC_SUBST(LIBT_REVISION)
49ca08ab68SmrgLIBT_AGE=6
50ca08ab68Smrg
51ca08ab68SmrgLIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
52ca08ab68SmrgAC_SUBST(LIBT_VERSION_INFO)
53ca08ab68Smrg
54ca08ab68SmrgLIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
55ca08ab68SmrgAC_SUBST(LIBT_CURRENT_MINUS_AGE)
56ca08ab68Smrg
57ca08ab68Smrgdnl ==========================================================================
58ca08ab68Smrg
59ca08ab68SmrgAC_CONFIG_HEADERS(config.h)
60ca08ab68SmrgAC_CONFIG_MACRO_DIR([m4])
61ca08ab68Smrg
62ca08ab68SmrgAC_PROG_CC
63ca08ab68SmrgAC_PROG_INSTALL
64ca08ab68SmrgAC_PROG_LN_S
65ca08ab68SmrgAC_LIBTOOL_WIN32_DLL
66ca08ab68SmrgAM_PROG_LIBTOOL
67ca08ab68SmrgAC_PROG_MAKE_SET
68ca08ab68SmrgPKG_PROG_PKG_CONFIG
69ca08ab68Smrg
70ca08ab68SmrgAC_MSG_CHECKING([for RM macro])
71ca08ab68Smrg_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
72ca08ab68Smrgif test "x$_predefined_rm" = "x"; then
73ca08ab68Smrg	AC_MSG_RESULT([no predefined RM])
74ca08ab68Smrg	AC_CHECK_PROG(RM, rm, [rm -f])
75ca08ab68Smrgelse
76ca08ab68Smrg	AC_MSG_RESULT($_predefined_rm)
77ca08ab68Smrgfi
78ca08ab68Smrg
79ca08ab68Smrgdnl ==========================================================================
80ca08ab68Smrg
81ca08ab68Smrgcase "$host" in
82ca08ab68Smrg  *-*-mingw*)
83ca08ab68Smrg    os_win32=yes
84ca08ab68Smrg    ;;
85ca08ab68Smrg  *)
86ca08ab68Smrg    os_win32=no
87ca08ab68Smrgesac
88ca08ab68SmrgAM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
89ca08ab68Smrg
90ca08ab68Smrgif test "$os_win32" = "yes"; then
91ca08ab68Smrg  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
92ca08ab68Smrgfi
93ca08ab68SmrgAM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
94ca08ab68Smrg
95ca08ab68SmrgWARN_CFLAGS=""
96ca08ab68Smrgif test "x$GCC" = "xyes"; then
97ca08ab68Smrg	WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
98ca08ab68Smrg	-Wmissing-prototypes -Wmissing-declarations \
99ca08ab68Smrg	-Wnested-externs -fno-strict-aliasing"
100ca08ab68Smrg	AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
101ca08ab68Smrg	[Can use #warning in C files])
102ca08ab68Smrgfi
103ca08ab68SmrgAC_SUBST(WARN_CFLAGS)
104ca08ab68Smrg
105ca08ab68Smrg
106ca08ab68Smrgdnl ==========================================================================
107ca08ab68Smrg
108ca08ab68SmrgAM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
109ca08ab68SmrgAM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
110ca08ab68Smrg
111ca08ab68Smrgdnl ==========================================================================
112ca08ab68Smrg
113ca08ab68SmrgAC_ARG_WITH(arch,
114ca08ab68Smrg	[AC_HELP_STRING([--with-arch=ARCH],
115ca08ab68Smrg			[Force architecture to ARCH])],
116ca08ab68Smrg	arch="$withval", arch=auto)
117ca08ab68Smrg
118ca08ab68Smrgif test "x$arch" != xauto; then
119ca08ab68Smrg	AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
120ca08ab68Smrgfi
121ca08ab68Smrg
122ca08ab68Smrg
123ca08ab68Smrgdnl ==========================================================================
124ca08ab68Smrg
125ca08ab68Smrg# Checks for header files.
126ca08ab68SmrgAC_HEADER_DIRENT
127ca08ab68SmrgAC_HEADER_STDC
128ca08ab68SmrgAC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
129ca08ab68Smrg
130ca08ab68Smrg# Checks for typedefs, structures, and compiler characteristics.
131ca08ab68SmrgAC_C_CONST
132ca08ab68SmrgAC_C_INLINE
133ca08ab68SmrgAC_C_FLEXIBLE_ARRAY_MEMBER
134ca08ab68SmrgAC_TYPE_PID_T
135ca08ab68Smrg
136ca08ab68Smrg# Checks for library functions.
137ca08ab68SmrgAC_FUNC_VPRINTF
138ca08ab68SmrgAC_FUNC_MMAP
139ca08ab68SmrgAC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs])
140ca08ab68Smrg
141ca08ab68Smrgdnl AC_CHECK_FUNCS doesn't check for header files.
142ca08ab68Smrgdnl posix_fadvise() may be not available in older libc.
143ca08ab68Smrgfc_saved_CFLAGS="$CFLAGS"
144ca08ab68SmrgCFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
145ca08ab68SmrgAC_MSG_CHECKING([for posix_fadvise])
146ca08ab68SmrgAC_LINK_IFELSE([AC_LANG_SOURCE([[
147ca08ab68Smrg	#include <fcntl.h>
148ca08ab68Smrg	int main(void) {
149ca08ab68Smrg	    return posix_fadvise(0, 0, 0, 0);
150ca08ab68Smrg	}
151ca08ab68Smrg	]])],[
152ca08ab68Smrg		AC_MSG_RESULT([yes])
153ca08ab68Smrg		AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the `posix_fadvise' function.])
154ca08ab68Smrg	],[AC_MSG_RESULT([no])])
155ca08ab68SmrgCFLAGS="$fc_saved_CFLAGS"
156ca08ab68Smrg
157ca08ab68Smrg#
158ca08ab68Smrgif test "x$ac_cv_func_fstatvfs" = "xyes"; then
159ca08ab68Smrg	AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
160ca08ab68Smrg		[#include <sys/statvfs.h>])
161ca08ab68Smrgfi
162ca08ab68Smrgif test "x$ac_cv_func_fstatfs" = "xyes"; then
163ca08ab68Smrg	AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
164ca08ab68Smrg#ifdef HAVE_SYS_VFS_H
165ca08ab68Smrg#include <sys/vfs.h>
166ca08ab68Smrg#endif
167ca08ab68Smrg#ifdef HAVE_SYS_STATFS_H
168ca08ab68Smrg#include <sys/statfs.h>
169ca08ab68Smrg#endif
170ca08ab68Smrg#ifdef HAVE_SYS_PARAM_H
171ca08ab68Smrg#include <sys/param.h>
172ca08ab68Smrg#endif
173ca08ab68Smrg#ifdef HAVE_SYS_MOUNT_H
174ca08ab68Smrg#include <sys/mount.h>
175ca08ab68Smrg#endif])
176ca08ab68Smrgfi
177ca08ab68SmrgAC_CHECK_MEMBERS([struct dirent.d_type],,,
178ca08ab68Smrg	[#include <dirent.h>])
179ca08ab68Smrg#
180ca08ab68Smrg# regex
181ca08ab68Smrg#
182ca08ab68Smrgif 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
183ca08ab68Smrg	AC_DEFINE(USE_REGEX,,[Use regex])
184ca08ab68Smrgfi
185ca08ab68Smrg
186ca08ab68Smrg#
187ca08ab68Smrg# Checks for iconv
188ca08ab68Smrg#
189ca08ab68SmrgAC_ARG_ENABLE(iconv,
190ca08ab68Smrg	[AC_HELP_STRING([--enable-iconv],
191ca08ab68Smrg			[Use iconv to support non-Unicode SFNT name])],
192ca08ab68Smrg	,enable_iconv=no)
193ca08ab68SmrgAC_ARG_WITH(libiconv,
194ca08ab68Smrg	[AC_HELP_STRING([--with-libiconv=DIR],
195ca08ab68Smrg			[Use libiconv in DIR])],
196ca08ab68Smrg	[if test "x$withval" = "xyes"; then
197ca08ab68Smrg		libiconv_prefix=$prefix
198ca08ab68Smrg	 else
199ca08ab68Smrg		libiconv_prefix=$withval
200ca08ab68Smrg	 fi],
201ca08ab68Smrg	[libiconv_prefix=auto])
202ca08ab68SmrgAC_ARG_WITH(libiconv-includes,
203ca08ab68Smrg	[AC_HELP_STRING([--with-libiconv-includes=DIR],
204ca08ab68Smrg			[Use libiconv includes in DIR])],
205ca08ab68Smrg	[libiconv_includes=$withval],
206ca08ab68Smrg	[libiconv_includes=auto])
207ca08ab68SmrgAC_ARG_WITH(libiconv-lib,
208ca08ab68Smrg	[AC_HELP_STRING([--with-libiconv-lib=DIR],
209ca08ab68Smrg			[Use libiconv library in DIR])],
210ca08ab68Smrg	[libiconv_lib=$withval],
211ca08ab68Smrg	[libiconv_lib=auto])
212ca08ab68Smrg
213ca08ab68Smrg# if no libiconv,libiconv-includes,libiconv-lib are specified,
214ca08ab68Smrg# libc's iconv has a priority.
215ca08ab68Smrgif test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
216ca08ab68Smrg	libiconv_cflags="-I${libiconv_includes}"
217ca08ab68Smrgelif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
218ca08ab68Smrg	libiconv_cflags="-I${libiconv_prefix}/include"
219ca08ab68Smrgelse
220ca08ab68Smrg	libiconv_cflags=""
221ca08ab68Smrgfi
222ca08ab68Smrglibiconv_libs=""
223ca08ab68Smrgif test "x$libiconv_cflags" != "x"; then
224ca08ab68Smrg	if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
225ca08ab68Smrg		libiconv_libs="-L${libiconv_lib} -liconv"
226ca08ab68Smrg	elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
227ca08ab68Smrg		libiconv_libs="-L${libiconv_prefix}/lib -liconv"
228ca08ab68Smrg	else
229ca08ab68Smrg		libiconv_libs="-liconv"
230ca08ab68Smrg	fi
231ca08ab68Smrgfi
232ca08ab68Smrg
233ca08ab68Smrguse_iconv=0
234ca08ab68Smrgif test "x$enable_iconv" != "xno"; then
235ca08ab68Smrg	AC_MSG_CHECKING([for a usable iconv])
236ca08ab68Smrg	if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
237ca08ab68Smrg		iconvsaved_CFLAGS="$CFLAGS"
238ca08ab68Smrg		iconvsaved_LIBS="$LIBS"
239ca08ab68Smrg		CFLAGS="$CFLAGS $libiconv_cflags"
240ca08ab68Smrg		LIBS="$LIBS $libiconv_libs"
241ca08ab68Smrg
242ca08ab68Smrg		AC_TRY_LINK([#include <iconv.h>],
243ca08ab68Smrg			[iconv_open ("from", "to");],
244ca08ab68Smrg			[iconv_type="libiconv"
245ca08ab68Smrg			 use_iconv=1],
246ca08ab68Smrg			[use_iconv=0])
247ca08ab68Smrg
248ca08ab68Smrg		CFLAGS="$iconvsaved_CFLAGS"
249ca08ab68Smrg		LIBS="$iconvsaved_LIBS"
250ca08ab68Smrg		ICONV_CFLAGS="$libiconv_cflags"
251ca08ab68Smrg		ICONV_LIBS="$libiconv_libs"
252ca08ab68Smrg	fi
253ca08ab68Smrg	if test "x$use_iconv" = "x0"; then
254ca08ab68Smrg		AC_TRY_LINK([#include <iconv.h>],
255ca08ab68Smrg			[iconv_open ("from", "to");],
256ca08ab68Smrg			[iconv_type="libc"
257ca08ab68Smrg			 use_iconv=1],
258ca08ab68Smrg			[iconv_type="not found"
259ca08ab68Smrg			 use_iconv=0])
260ca08ab68Smrg	fi
261ca08ab68Smrg
262ca08ab68Smrg	AC_MSG_RESULT([$iconv_type])
263ca08ab68Smrg	AC_SUBST(ICONV_CFLAGS)
264ca08ab68Smrg	AC_SUBST(ICONV_LIBS)
265ca08ab68Smrgfi
266ca08ab68SmrgAC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
267ca08ab68Smrg#
268ca08ab68Smrg# Checks for FreeType
269ca08ab68Smrg#
270ca08ab68SmrgPKG_CHECK_MODULES(FREETYPE, freetype2)
271ca08ab68Smrg
272ca08ab68SmrgAC_SUBST(FREETYPE_LIBS)
273ca08ab68SmrgAC_SUBST(FREETYPE_CFLAGS)
274ca08ab68Smrg
275ca08ab68Smrgfontconfig_save_libs="$LIBS"
276ca08ab68Smrgfontconfig_save_cflags="$CFLAGS"
277ca08ab68SmrgLIBS="$LIBS $FREETYPE_LIBS"
278ca08ab68SmrgCFLAGS="$CFLAGS $FREETYPE_CFLAGS"
279ca08ab68SmrgAC_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)
280ca08ab68SmrgAC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
281ca08ab68Smrg		HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
282ca08ab68Smrg		HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
283ca08ab68Smrg[#include <ft2build.h>
284ca08ab68Smrg#include FT_FREETYPE_H])
285ca08ab68SmrgAC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
286ca08ab68Smrg		   [FT_Bitmap_Size structure includes y_ppem field])
287ca08ab68SmrgCFLAGS="$fontconfig_save_cflags"
288ca08ab68SmrgLIBS="$fontconfig_save_libs"
289ca08ab68Smrg
290ca08ab68Smrg#
291ca08ab68Smrg# Check expat configuration
292ca08ab68Smrg#
293ca08ab68SmrgAC_ARG_WITH(expat,
294ca08ab68Smrg	[AC_HELP_STRING([--with-expat=DIR],
295ca08ab68Smrg			[Use Expat in DIR])],
296ca08ab68Smrg	[expat_prefix=$withval],
297ca08ab68Smrg	[expat_prefix=auto])
298ca08ab68SmrgAC_ARG_WITH(expat-includes,
299ca08ab68Smrg	[AC_HELP_STRING([--with-expat-includes=DIR],
300ca08ab68Smrg			[Use Expat includes in DIR])],
301ca08ab68Smrg	[expat_includes=$withval],
302ca08ab68Smrg	[expat_includes=auto])
303ca08ab68SmrgAC_ARG_WITH(expat-lib,
304ca08ab68Smrg	[AC_HELP_STRING([--with-expat-lib=DIR])],
305ca08ab68Smrg	[expat_lib=$withval],
306ca08ab68Smrg	[expat_lib=auto])
307ca08ab68Smrg
308ca08ab68Smrgif test "$enable_libxml2" != "yes"; then
309ca08ab68Smrg	use_pkgconfig_for_expat=yes
310ca08ab68Smrg	if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
311ca08ab68Smrg		PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
312ca08ab68Smrg	else
313ca08ab68Smrg		use_pkgconfig_for_expat=no
314ca08ab68Smrg	fi
315ca08ab68Smrg	if test "x$use_pkgconfig_for_expat" = "xno"; then
316ca08ab68Smrg		if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
317ca08ab68Smrg			EXPAT_CFLAGS="-I${expat_includes}"
318ca08ab68Smrg		elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
319ca08ab68Smrg			EXPAT_CFLAGS="-I${expat_prefix}/include"
320ca08ab68Smrg		else
321ca08ab68Smrg			EXPAT_CFLAGS=""
322ca08ab68Smrg		fi
323ca08ab68Smrg		if test "$expat_lib" != "auto"; then
324ca08ab68Smrg			EXPAT_LIBS="-L${expat_lib} -lexpat"
325ca08ab68Smrg		elif test "$expat_prefix" != "auto"; then
326ca08ab68Smrg			EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
327ca08ab68Smrg		else
328ca08ab68Smrg			EXPAT_LIBS="-lexpat"
329ca08ab68Smrg		fi
330ca08ab68Smrg	fi
331ca08ab68Smrg
332ca08ab68Smrg	expatsaved_CPPFLAGS="$CPPFLAGS"
333ca08ab68Smrg	expatsaved_LIBS="$LIBS"
334ca08ab68Smrg	CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
335ca08ab68Smrg	LIBS="$LIBS $EXPAT_LIBS"
336ca08ab68Smrg
337ca08ab68Smrg	AC_CHECK_HEADER(expat.h)
338ca08ab68Smrg	if test "$ac_cv_header_expat_h" = "no"; then
339ca08ab68Smrg		AC_CHECK_HEADER(xmlparse.h)
340ca08ab68Smrg		if test "$ac_cv_header_xmlparse_h" = "yes"; then
341ca08ab68Smrg			HAVE_XMLPARSE_H=1
342ca08ab68Smrg			AC_SUBST(HAVE_XMLPARSE_H)
343ca08ab68Smrg			AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
344ca08ab68Smrg				[Use xmlparse.h instead of expat.h])
345ca08ab68Smrg		else
346ca08ab68Smrg			AC_MSG_ERROR([
347ca08ab68Smrg*** expat is required. or try to use --enable-libxml2])
348ca08ab68Smrg		fi
349ca08ab68Smrg	fi
350ca08ab68Smrg	AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
351ca08ab68Smrg	if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
352ca08ab68Smrg		AC_MSG_ERROR([
353ca08ab68Smrg*** expat is required. or try to use --enable-libxml2])
354ca08ab68Smrg	fi
355ca08ab68Smrg	CPPFLAGS="$expatsaved_CPPFLAGS"
356ca08ab68Smrg	LIBS="$expatsaved_LIBS"
357ca08ab68Smrg
358ca08ab68Smrg	AC_SUBST(EXPAT_CFLAGS)
359ca08ab68Smrg	AC_SUBST(EXPAT_LIBS)
360ca08ab68Smrgfi
361ca08ab68Smrg
362ca08ab68Smrg#
363ca08ab68Smrg# Check libxml2 configuration
364ca08ab68Smrg#
365ca08ab68SmrgAC_ARG_ENABLE(libxml2,
366ca08ab68Smrg	[AC_HELP_STRING([--enable-libxml2],
367ca08ab68Smrg			[Use libxml2 instead of Expat])])
368ca08ab68Smrg
369ca08ab68Smrgif test "$enable_libxml2" = "yes"; then
370ca08ab68Smrg    PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
371ca08ab68Smrg    AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
372ca08ab68Smrg
373ca08ab68Smrg    AC_SUBST(LIBXML2_CFLAGS)
374ca08ab68Smrg    AC_SUBST(LIBXML2_LIBS)
375ca08ab68Smrg
376ca08ab68Smrg    fc_saved_CFLAGS="$CFLAGS"
377ca08ab68Smrg    CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
378ca08ab68Smrg    AC_MSG_CHECKING([SAX1 support in libxml2])
379ca08ab68Smrg    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
380ca08ab68Smrg	#include <libxml/xmlversion.h>
381ca08ab68Smrg	#if !defined(LIBXML_SAX1_ENABLED)
382ca08ab68Smrg	#  include "error: No SAX1 support in libxml2"
383ca08ab68Smrg	#endif
384ca08ab68Smrg	]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
385ca08ab68Smrg*** SAX1 support in libxml2 is required. enable it or use expat instead.])])
386ca08ab68Smrg    CFLAGS="$fc_saved_CFLAGS"
387ca08ab68Smrgfi
388ca08ab68Smrg
389ca08ab68Smrg#
390ca08ab68Smrg# Set default font directory
391ca08ab68Smrg#
392ca08ab68Smrg
393ca08ab68SmrgAC_ARG_WITH(default-fonts,
394ca08ab68Smrg	[AC_HELP_STRING([--with-default-fonts=DIR],
395ca08ab68Smrg			[Use fonts from DIR when config is busted])],
396ca08ab68Smrg	default_fonts="$withval", default_fonts=yes)
397ca08ab68Smrg
398ca08ab68Smrgcase "$default_fonts" in
399ca08ab68Smrgyes)
400ca08ab68Smrg	if test "$os_win32" = "yes"; then
401ca08ab68Smrg		FC_DEFAULT_FONTS="WINDOWSFONTDIR"
402ca08ab68Smrg		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
403ca08ab68Smrg				   [Windows font directory])
404ca08ab68Smrg	else
405ca08ab68Smrg		FC_DEFAULT_FONTS="/usr/share/fonts"
406ca08ab68Smrg		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
407ca08ab68Smrg				   [System font directory])
408ca08ab68Smrg	fi
409ca08ab68Smrg	;;
410ca08ab68Smrg*)
411ca08ab68Smrg	FC_DEFAULT_FONTS="$default_fonts"
412ca08ab68Smrg	AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
413ca08ab68Smrg			   [System font directory])
414ca08ab68Smrg	;;
415ca08ab68Smrgesac
416ca08ab68Smrg
417ca08ab68SmrgAC_SUBST(FC_DEFAULT_FONTS)
418ca08ab68Smrg
419ca08ab68Smrg#
420ca08ab68Smrg# Add more fonts if available.  By default, add only the directories
421ca08ab68Smrg# with outline fonts; those with bitmaps can be added as desired in
422ca08ab68Smrg# local.conf or ~/.fonts.conf
423ca08ab68Smrg#
424ca08ab68SmrgAC_ARG_WITH(add-fonts,
425ca08ab68Smrg	[AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
426ca08ab68Smrg			[Find additional fonts in DIR1,DIR2,... ])],
427ca08ab68Smrg	add_fonts="$withval", add_fonts=yes)
428ca08ab68Smrg
429ca08ab68Smrgcase "$add_fonts" in
430ca08ab68Smrgyes)
431ca08ab68Smrg	FC_ADD_FONTS=""
432ca08ab68Smrg	for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
433ca08ab68Smrg		case x"$FC_ADD_FONTS" in
434ca08ab68Smrg		x)
435ca08ab68Smrg			sub="$dir/fonts"
436ca08ab68Smrg			if test -d "$sub"; then
437ca08ab68Smrg				case x$FC_ADD_FONTS in
438ca08ab68Smrg				x)
439ca08ab68Smrg					FC_ADD_FONTS="$sub"
440ca08ab68Smrg					;;
441ca08ab68Smrg				*)
442ca08ab68Smrg					FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
443ca08ab68Smrg					;;
444ca08ab68Smrg				esac
445ca08ab68Smrg			fi
446ca08ab68Smrg			;;
447ca08ab68Smrg		esac
448ca08ab68Smrg	done
449ca08ab68Smrg	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
450ca08ab68Smrg	;;
451ca08ab68Smrgno)
452ca08ab68Smrg	FC_ADD_FONTS=""
453ca08ab68Smrg	;;
454ca08ab68Smrg*)
455ca08ab68Smrg	FC_ADD_FONTS="$add_fonts"
456ca08ab68Smrg	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
457ca08ab68Smrg	;;
458ca08ab68Smrgesac
459ca08ab68Smrg
460ca08ab68SmrgAC_SUBST(FC_ADD_FONTS)
461ca08ab68Smrg
462ca08ab68SmrgFC_FONTPATH=""
463ca08ab68Smrg
464ca08ab68Smrgcase "$FC_ADD_FONTS" in
465ca08ab68Smrg"")
466ca08ab68Smrg	;;
467ca08ab68Smrg*)
468ca08ab68Smrg	FC_FONTPATH=`echo $FC_ADD_FONTS | 
469ca08ab68Smrg			sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
470ca08ab68Smrg	;;
471ca08ab68Smrgesac
472ca08ab68Smrg
473ca08ab68SmrgAC_SUBST(FC_FONTPATH)
474ca08ab68Smrg
475ca08ab68Smrg#
476ca08ab68Smrg# Set default cache directory path
477ca08ab68Smrg#
478ca08ab68SmrgAC_ARG_WITH(cache-dir,
479ca08ab68Smrg	[AC_HELP_STRING([--with-cache-dir=DIR],
480ca08ab68Smrg			[Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
481ca08ab68Smrg	fc_cachedir="$withval", fc_cachedir=yes)
482ca08ab68Smrg
483ca08ab68Smrgcase $fc_cachedir in
484ca08ab68Smrgno|yes)
485ca08ab68Smrg	if test "$os_win32" = "yes"; then
486ca08ab68Smrg		fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
487ca08ab68Smrg	else
488ca08ab68Smrg		fc_cachedir='${localstatedir}/cache/${PACKAGE}'
489ca08ab68Smrg	fi
490ca08ab68Smrg	;;
491ca08ab68Smrg*)
492ca08ab68Smrg	;;
493ca08ab68Smrgesac
494ca08ab68SmrgAC_SUBST(fc_cachedir)
495ca08ab68SmrgFC_CACHEDIR=${fc_cachedir}
496ca08ab68SmrgAC_SUBST(FC_CACHEDIR)
497ca08ab68Smrg
498ca08ab68SmrgFC_FONTDATE=`LC_ALL=C date`
499ca08ab68Smrg
500ca08ab68SmrgAC_SUBST(FC_FONTDATE)
501ca08ab68Smrg
502ca08ab68Smrg#
503ca08ab68Smrg# Set configuration paths
504ca08ab68Smrg#
505ca08ab68Smrg
506ca08ab68SmrgAC_ARG_WITH(templatedir,
507ca08ab68Smrg	[AC_HELP_STRING([--with-templatedir=DIR],
508ca08ab68Smrg			[Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
509ca08ab68Smrg	[templatedir="$withval"],
510ca08ab68Smrg	[templatedir=yes])
511ca08ab68SmrgAC_ARG_WITH(baseconfigdir,
512ca08ab68Smrg	[AC_HELP_STRING([--with-baseconfigdir=DIR],
513ca08ab68Smrg			[Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
514ca08ab68Smrg	[baseconfigdir="$withval"],
515ca08ab68Smrg	[baseconfigdir=yes])
516ca08ab68SmrgAC_ARG_WITH(configdir,
517ca08ab68Smrg	[AC_HELP_STRING([--with-configdir=DIR],
518ca08ab68Smrg			[Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
519ca08ab68Smrg	[configdir="$withval"],
520ca08ab68Smrg	[configdir=yes])
521ca08ab68SmrgAC_ARG_WITH(xmldir,
522ca08ab68Smrg	[AC_HELP_STRING([--with-xmldir=DIR],
523ca08ab68Smrg			[Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
524ca08ab68Smrg	[xmldir="$withval"],
525ca08ab68Smrg	[xmldir=yes])
526ca08ab68Smrg
527ca08ab68Smrgcase "$templatedir" in
528ca08ab68Smrgno|yes)
529ca08ab68Smrg	templatedir='${datadir}'/fontconfig/conf.avail
530ca08ab68Smrg	;;
531ca08ab68Smrg*)
532ca08ab68Smrg	;;
533ca08ab68Smrgesac
534ca08ab68Smrgcase "$baseconfigdir" in
535ca08ab68Smrgno|yes)
536ca08ab68Smrg	baseconfigdir='${sysconfdir}'/fonts
537ca08ab68Smrg	;;
538ca08ab68Smrg*)
539ca08ab68Smrg	;;
540ca08ab68Smrgesac
541ca08ab68Smrgcase "$configdir" in
542ca08ab68Smrgno|yes)
543ca08ab68Smrg	configdir='${baseconfigdir}'/conf.d
544ca08ab68Smrg	;;
545ca08ab68Smrg*)
546ca08ab68Smrg	;;
547ca08ab68Smrgesac
548ca08ab68Smrgcase "$xmldir" in
549ca08ab68Smrgno|yes)
550ca08ab68Smrg	xmldir='${datadir}'/xml/fontconfig
551ca08ab68Smrg	;;
552ca08ab68Smrg*)
553ca08ab68Smrg	;;
554ca08ab68Smrgesac
555ca08ab68Smrg
556ca08ab68SmrgTEMPLATEDIR=${templatedir}
557ca08ab68SmrgBASECONFIGDIR=${baseconfigdir}
558ca08ab68SmrgCONFIGDIR=${configdir}
559ca08ab68SmrgXMLDIR=${xmldir}
560ca08ab68SmrgAC_SUBST(templatedir)
561ca08ab68SmrgAC_SUBST(TEMPLATEDIR)
562ca08ab68SmrgAC_SUBST(baseconfigdir)
563ca08ab68SmrgAC_SUBST(BASECONFIGDIR)
564ca08ab68SmrgAC_SUBST(configdir)
565ca08ab68SmrgAC_SUBST(CONFIGDIR)
566ca08ab68SmrgAC_SUBST(xmldir)
567ca08ab68SmrgAC_SUBST(XMLDIR)
568ca08ab68Smrg
569ca08ab68Smrg#
570ca08ab68Smrg# Let people not build/install docs if they don't have docbook
571ca08ab68Smrg#
572ca08ab68Smrg
573ca08ab68SmrgAC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
574ca08ab68Smrg
575ca08ab68SmrgAM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
576ca08ab68Smrg
577ca08ab68Smrgdefault_docs="yes"
578ca08ab68Smrg#
579ca08ab68Smrg# Check if docs exist or can be created
580ca08ab68Smrg#
581ca08ab68Smrgif test x$HASDOCBOOK = xno; then
582ca08ab68Smrg	if test -f $srcdir/doc/fonts-conf.5; then
583ca08ab68Smrg		:
584ca08ab68Smrg	else
585ca08ab68Smrg		default_docs="no"
586ca08ab68Smrg	fi
587ca08ab68Smrgfi
588ca08ab68Smrg
589ca08ab68SmrgAC_ARG_ENABLE(docs,
590ca08ab68Smrg	[AC_HELP_STRING([--disable-docs],
591ca08ab68Smrg			[Don't build and install documentation])],
592ca08ab68Smrg	,
593ca08ab68Smrg	enable_docs=$default_docs)
594ca08ab68Smrg
595ca08ab68SmrgAM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
596ca08ab68Smrg
597ca08ab68Smrgif test "x$enable_docs" = xyes; then
598ca08ab68Smrg	DOCSRC="doc"
599ca08ab68Smrg	tmp=funcs.$$
600ca08ab68Smrg	cat $srcdir/doc/*.fncs | awk '
601ca08ab68Smrg	/^@TITLE@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
602ca08ab68Smrg	/^@FUNC@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
603ca08ab68Smrg	/^@@/		{ done = 0; }' > $tmp
604ca08ab68Smrg	DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
605ca08ab68Smrg	echo DOCMAN3 $DOCMAN3
606ca08ab68Smrg	rm -f $tmp
607ca08ab68Smrgelse
608ca08ab68Smrg	DOCSRC=""
609ca08ab68Smrg	DOCMAN3=""
610ca08ab68Smrgfi
611ca08ab68Smrg
612ca08ab68SmrgAC_SUBST(DOCSRC)
613ca08ab68SmrgAC_SUBST(DOCMAN3)
614ca08ab68Smrg
615ca08ab68Smrg
616ca08ab68Smrgdnl Figure out what cache format suffix to use for this architecture
617ca08ab68SmrgAC_C_BIGENDIAN
618ca08ab68SmrgAC_CHECK_SIZEOF([void *])
619ca08ab68SmrgAC_CHECK_ALIGNOF([double])
620ca08ab68Smrg
621ca08ab68Smrgdnl include the header file for workaround of miscalculating size on autoconf
622ca08ab68Smrgdnl particularly for fat binaries
623ca08ab68SmrgAH_BOTTOM([#include "config-fixups.h"])
624ca08ab68Smrg
625ca08ab68SmrgAC_OUTPUT([
626ca08ab68SmrgMakefile
627ca08ab68Smrgfontconfig/Makefile
628ca08ab68Smrgfc-lang/Makefile
629ca08ab68Smrgfc-glyphname/Makefile
630ca08ab68Smrgfc-case/Makefile
631ca08ab68Smrgsrc/Makefile
632ca08ab68Smrgconf.d/Makefile
633ca08ab68Smrgfc-cache/Makefile
634ca08ab68Smrgfc-cat/Makefile
635ca08ab68Smrgfc-list/Makefile
636ca08ab68Smrgfc-match/Makefile
637ca08ab68Smrgfc-pattern/Makefile
638ca08ab68Smrgfc-query/Makefile
639ca08ab68Smrgfc-scan/Makefile
640ca08ab68Smrgdoc/Makefile
641ca08ab68Smrgdoc/version.sgml
642ca08ab68Smrgtest/Makefile
643ca08ab68Smrgfontconfig.spec
644ca08ab68Smrgfontconfig.pc
645ca08ab68Smrgfontconfig-zip
646ca08ab68Smrg])
647