configure.ac 16.8 KB
Newer Older
Keith Packard's avatar
Keith Packard committed
1
dnl 
Behdad Esfahbod's avatar
Behdad Esfahbod committed
2
dnl  fontconfig/configure.in
Keith Packard's avatar
Keith Packard committed
3
dnl 
4
dnl  Copyright © 2003 Keith Packard
Keith Packard's avatar
Keith Packard committed
5
6
7
8
9
dnl 
dnl  Permission to use, copy, modify, distribute, and sell this software and its
dnl  documentation for any purpose is hereby granted without fee, provided that
dnl  the above copyright notice appear in all copies and that both that
dnl  copyright notice and this permission notice appear in supporting
10
dnl  documentation, and that the name of the author(s) not be used in
Keith Packard's avatar
Keith Packard committed
11
dnl  advertising or publicity pertaining to distribution of the software without
12
dnl  specific, written prior permission.  The authors make no
Keith Packard's avatar
Keith Packard committed
13
14
15
dnl  representations about the suitability of this software for any purpose.  It
dnl  is provided "as is" without express or implied warranty.
dnl 
16
dnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
Keith Packard's avatar
Keith Packard committed
17
dnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18
dnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
Keith Packard's avatar
Keith Packard committed
19
20
21
22
dnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
dnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
dnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
dnl  PERFORMANCE OF THIS SOFTWARE.
23
dnl
Keith Packard's avatar
Keith Packard committed
24
dnl Process this file with autoconf to create configure.
Keith Packard's avatar
Keith Packard committed
25

26
AC_PREREQ(2.61)
27
28
AC_INIT(fonts.dtd)

Keith Packard's avatar
Keith Packard committed
29
30
31
dnl ==========================================================================
dnl                               Versioning              
dnl ==========================================================================
32

33
34
35
36
dnl This is the package version number, not the shared library
dnl version.  This same version number must appear in fontconfig/fontconfig.h
dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
dnl not possible to extract the version number here from fontconfig.h
Akira TAGOH's avatar
Akira TAGOH committed
37
AM_INIT_AUTOMAKE(fontconfig, 2.10.2)
Behdad Esfahbod's avatar
Behdad Esfahbod committed
38
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
Keith Packard's avatar
Keith Packard committed
39

Keith Packard's avatar
Keith Packard committed
40
41
dnl libtool versioning

42
43
44
dnl bump revision when fixing bugs
dnl bump current and age, reset revision to zero when adding APIs
dnl bump current, leave age, reset revision to zero when changing/removing APIS
Akira TAGOH's avatar
Akira TAGOH committed
45
LIBT_CURRENT=7
Akira TAGOH's avatar
Akira TAGOH committed
46
LIBT_REVISION=2
47
48
AC_SUBST(LIBT_CURRENT)
AC_SUBST(LIBT_REVISION)
Akira TAGOH's avatar
Akira TAGOH committed
49
LIBT_AGE=6
50

51
52
LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
AC_SUBST(LIBT_VERSION_INFO)
Keith Packard's avatar
Keith Packard committed
53

54
55
LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
AC_SUBST(LIBT_CURRENT_MINUS_AGE)
Tor Lillqvist's avatar
Tor Lillqvist committed
56

Keith Packard's avatar
Keith Packard committed
57
58
dnl ==========================================================================

59
AC_CONFIG_HEADERS(config.h)
Akira TAGOH's avatar
Akira TAGOH committed
60
AC_CONFIG_MACRO_DIR([m4])
61

Keith Packard's avatar
Keith Packard committed
62
63
64
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
Tor Lillqvist's avatar
Tor Lillqvist committed
65
AC_LIBTOOL_WIN32_DLL
Keith Packard's avatar
Keith Packard committed
66
67
AM_PROG_LIBTOOL
AC_PROG_MAKE_SET
Akira TAGOH's avatar
Akira TAGOH committed
68
PKG_PROG_PKG_CONFIG
Keith Packard's avatar
Keith Packard committed
69

70
71
72
73
74
75
76
77
78
AC_MSG_CHECKING([for RM macro])
_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
if test "x$_predefined_rm" = "x"; then
	AC_MSG_RESULT([no predefined RM])
	AC_CHECK_PROG(RM, rm, [rm -f])
else
	AC_MSG_RESULT($_predefined_rm)
fi

Tor Lillqvist's avatar
Tor Lillqvist committed
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
dnl ==========================================================================

case "$host" in
  *-*-mingw*)
    os_win32=yes
    ;;
  *)
    os_win32=no
esac
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

95
96
97
98
99
WARN_CFLAGS=""
if test "x$GCC" = "xyes"; then
	WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
	-Wmissing-prototypes -Wmissing-declarations \
	-Wnested-externs -fno-strict-aliasing"
100
101
	AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
	[Can use #warning in C files])
102
103
104
fi
AC_SUBST(WARN_CFLAGS)

105

Tor Lillqvist's avatar
Tor Lillqvist committed
106
107
dnl ==========================================================================

108
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
109
AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes")
110
111
112

dnl ==========================================================================

113
114
115
116
AC_ARG_WITH(arch,
	[AC_HELP_STRING([--with-arch=ARCH],
			[Force architecture to ARCH])],
	arch="$withval", arch=auto)
117

118
119
if test "x$arch" != xauto; then
	AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
120
121
122
123
124
fi


dnl ==========================================================================

125
126
127
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
128
AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
129
130
131

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
132
AC_C_INLINE
133
AC_C_FLEXIBLE_ARRAY_MEMBER
134
135
136
137
AC_TYPE_PID_T

# Checks for library functions.
AC_FUNC_VPRINTF
Patrick Lam's avatar
Patrick Lam committed
138
AC_FUNC_MMAP
139
140
141
142
AC_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])

dnl AC_CHECK_FUNCS doesn't check for header files.
dnl posix_fadvise() may be not available in older libc.
143
144
fc_saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
145
146
147
148
149
150
151
152
153
154
AC_MSG_CHECKING([for posix_fadvise])
AC_LINK_IFELSE([AC_LANG_SOURCE([[
	#include <fcntl.h>
	int main(void) {
	    return posix_fadvise(0, 0, 0, 0);
	}
	]])],[
		AC_MSG_RESULT([yes])
		AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the `posix_fadvise' function.])
	],[AC_MSG_RESULT([no])])
155
CFLAGS="$fc_saved_CFLAGS"
156

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#
if test "x$ac_cv_func_fstatvfs" = "xyes"; then
	AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,,
		[#include <sys/statvfs.h>])
fi
if test "x$ac_cv_func_fstatfs" = "xyes"; then
	AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [
#ifdef HAVE_SYS_VFS_H
#include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
#include <sys/statfs.h>
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
#include <sys/mount.h>
#endif])
fi
Akira TAGOH's avatar
Akira TAGOH committed
177
178
AC_CHECK_MEMBERS([struct dirent.d_type],,,
	[#include <dirent.h>])
179
180
181
182
#
# regex
#
if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then
183
	AC_DEFINE(USE_REGEX,,[Use regex])
184
185
fi

186
187
188
#
# Checks for iconv
#
189
190
AC_ARG_ENABLE(iconv,
	[AC_HELP_STRING([--enable-iconv],
Akira TAGOH's avatar
Akira TAGOH committed
191
192
			[Use iconv to support non-Unicode SFNT name])],
	,enable_iconv=no)
193
194
195
AC_ARG_WITH(libiconv,
	[AC_HELP_STRING([--with-libiconv=DIR],
			[Use libiconv in DIR])],
196
197
198
199
200
	[if test "x$withval" = "xyes"; then
		libiconv_prefix=$prefix
	 else
		libiconv_prefix=$withval
	 fi],
201
202
203
204
205
206
207
208
209
210
211
212
	[libiconv_prefix=auto])
AC_ARG_WITH(libiconv-includes,
	[AC_HELP_STRING([--with-libiconv-includes=DIR],
			[Use libiconv includes in DIR])],
	[libiconv_includes=$withval],
	[libiconv_includes=auto])
AC_ARG_WITH(libiconv-lib,
	[AC_HELP_STRING([--with-libiconv-lib=DIR],
			[Use libiconv library in DIR])],
	[libiconv_lib=$withval],
	[libiconv_lib=auto])

213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# if no libiconv,libiconv-includes,libiconv-lib are specified,
# libc's iconv has a priority.
if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then
	libiconv_cflags="-I${libiconv_includes}"
elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then
	libiconv_cflags="-I${libiconv_prefix}/include"
else
	libiconv_cflags=""
fi
libiconv_libs=""
if test "x$libiconv_cflags" != "x"; then
	if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then
		libiconv_libs="-L${libiconv_lib} -liconv"
	elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then
		libiconv_libs="-L${libiconv_prefix}/lib -liconv"
228
	else
229
		libiconv_libs="-liconv"
230
231
	fi
fi
232

233
use_iconv=0
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
if test "x$enable_iconv" != "xno"; then
	AC_MSG_CHECKING([for a usable iconv])
	if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then
		iconvsaved_CFLAGS="$CFLAGS"
		iconvsaved_LIBS="$LIBS"
		CFLAGS="$CFLAGS $libiconv_cflags"
		LIBS="$LIBS $libiconv_libs"

		AC_TRY_LINK([#include <iconv.h>],
			[iconv_open ("from", "to");],
			[iconv_type="libiconv"
			 use_iconv=1],
			[use_iconv=0])

		CFLAGS="$iconvsaved_CFLAGS"
		LIBS="$iconvsaved_LIBS"
		ICONV_CFLAGS="$libiconv_cflags"
		ICONV_LIBS="$libiconv_libs"
	fi
	if test "x$use_iconv" = "x0"; then
		AC_TRY_LINK([#include <iconv.h>],
			[iconv_open ("from", "to");],
			[iconv_type="libc"
			 use_iconv=1],
			[iconv_type="not found"
			 use_iconv=0])
	fi
261

262
263
264
265
	AC_MSG_RESULT([$iconv_type])
	AC_SUBST(ICONV_CFLAGS)
	AC_SUBST(ICONV_LIBS)
fi
266
AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
267
#
Keith Packard's avatar
Keith Packard committed
268
# Checks for FreeType
269
#
Akira TAGOH's avatar
Akira TAGOH committed
270
PKG_CHECK_MODULES(FREETYPE, freetype2)
Keith Packard's avatar
Keith Packard committed
271

Keith Packard's avatar
Keith Packard committed
272
273
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
274

275
276
fontconfig_save_libs="$LIBS"
fontconfig_save_cflags="$CFLAGS"
Keith Packard's avatar
Keith Packard committed
277
LIBS="$LIBS $FREETYPE_LIBS"
278
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
279
AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Select_Size)
280
281
282
AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
		HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
		HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
283
284
285
286
[#include <ft2build.h>
#include FT_FREETYPE_H])
AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
		   [FT_Bitmap_Size structure includes y_ppem field])
287
288
CFLAGS="$fontconfig_save_cflags"
LIBS="$fontconfig_save_libs"
289

290
291
292
#
# Check expat configuration
#
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
AC_ARG_WITH(expat,
	[AC_HELP_STRING([--with-expat=DIR],
			[Use Expat in DIR])],
	[expat_prefix=$withval],
	[expat_prefix=auto])
AC_ARG_WITH(expat-includes,
	[AC_HELP_STRING([--with-expat-includes=DIR],
			[Use Expat includes in DIR])],
	[expat_includes=$withval],
	[expat_includes=auto])
AC_ARG_WITH(expat-lib,
	[AC_HELP_STRING([--with-expat-lib=DIR])],
	[expat_lib=$withval],
	[expat_lib=auto])

308
if test "$enable_libxml2" != "yes"; then
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
	use_pkgconfig_for_expat=yes
	if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then
		PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no)
	else
		use_pkgconfig_for_expat=no
	fi
	if test "x$use_pkgconfig_for_expat" = "xno"; then
		if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then
			EXPAT_CFLAGS="-I${expat_includes}"
		elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then
			EXPAT_CFLAGS="-I${expat_prefix}/include"
		else
			EXPAT_CFLAGS=""
		fi
		if test "$expat_lib" != "auto"; then
			EXPAT_LIBS="-L${expat_lib} -lexpat"
		elif test "$expat_prefix" != "auto"; then
			EXPAT_LIBS="-L${expat_prefix}/lib -lexpat"
		else
			EXPAT_LIBS="-lexpat"
		fi
	fi

Akira TAGOH's avatar
Akira TAGOH committed
332
333
334
335
336
337
338
339
340
341
342
343
	expatsaved_CPPFLAGS="$CPPFLAGS"
	expatsaved_LIBS="$LIBS"
	CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
	LIBS="$LIBS $EXPAT_LIBS"

	AC_CHECK_HEADER(expat.h)
	if test "$ac_cv_header_expat_h" = "no"; then
		AC_CHECK_HEADER(xmlparse.h)
		if test "$ac_cv_header_xmlparse_h" = "yes"; then
			HAVE_XMLPARSE_H=1
			AC_SUBST(HAVE_XMLPARSE_H)
			AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
344
				[Use xmlparse.h instead of expat.h])
Akira TAGOH's avatar
Akira TAGOH committed
345
346
347
348
349
350
351
352
353
354
355
356
357
		else
			AC_MSG_ERROR([
*** expat is required. or try to use --enable-libxml2])
		fi
	fi
	AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
	if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then
		AC_MSG_ERROR([
*** expat is required. or try to use --enable-libxml2])
	fi
	CPPFLAGS="$expatsaved_CPPFLAGS"
	LIBS="$expatsaved_LIBS"

358
359
360
361
362
363
364
	AC_SUBST(EXPAT_CFLAGS)
	AC_SUBST(EXPAT_LIBS)
fi

#
# Check libxml2 configuration
#
365
366
367
AC_ARG_ENABLE(libxml2,
	[AC_HELP_STRING([--enable-libxml2],
			[Use libxml2 instead of Expat])])
368

Akira TAGOH's avatar
Akira TAGOH committed
369
if test "$enable_libxml2" = "yes"; then
370
371
372
373
374
    PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
    AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])

    AC_SUBST(LIBXML2_CFLAGS)
    AC_SUBST(LIBXML2_LIBS)
375
376
377
378
379
380
381
382
383
384
385
386

    fc_saved_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
    AC_MSG_CHECKING([SAX1 support in libxml2])
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
	#include <libxml/xmlversion.h>
	#if !defined(LIBXML_SAX1_ENABLED)
	#  include "error: No SAX1 support in libxml2"
	#endif
	]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([
*** SAX1 support in libxml2 is required. enable it or use expat instead.])])
    CFLAGS="$fc_saved_CFLAGS"
387
fi
Keith Packard's avatar
Keith Packard committed
388

Keith Packard's avatar
Keith Packard committed
389
390
391
392
#
# Set default font directory
#

393
394
395
396
AC_ARG_WITH(default-fonts,
	[AC_HELP_STRING([--with-default-fonts=DIR],
			[Use fonts from DIR when config is busted])],
	default_fonts="$withval", default_fonts=yes)
Keith Packard's avatar
Keith Packard committed
397
398
399

case "$default_fonts" in
yes)
400
401
402
403
404
405
406
407
408
	if test "$os_win32" = "yes"; then
		FC_DEFAULT_FONTS="WINDOWSFONTDIR"
		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
				   [Windows font directory])
	else
		FC_DEFAULT_FONTS="/usr/share/fonts"
		AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
				   [System font directory])
	fi
Keith Packard's avatar
Keith Packard committed
409
410
411
412
413
414
415
416
417
418
419
	;;
*)
	FC_DEFAULT_FONTS="$default_fonts"
	AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
			   [System font directory])
	;;
esac

AC_SUBST(FC_DEFAULT_FONTS)

#
420
421
422
# Add more fonts if available.  By default, add only the directories
# with outline fonts; those with bitmaps can be added as desired in
# local.conf or ~/.fonts.conf
Keith Packard's avatar
Keith Packard committed
423
#
424
425
426
427
AC_ARG_WITH(add-fonts,
	[AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...],
			[Find additional fonts in DIR1,DIR2,... ])],
	add_fonts="$withval", add_fonts=yes)
Keith Packard's avatar
Keith Packard committed
428

429
case "$add_fonts" in
Keith Packard's avatar
Keith Packard committed
430
yes)
431
	FC_ADD_FONTS=""
432
	for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
433
		case x"$FC_ADD_FONTS" in
Keith Packard's avatar
Keith Packard committed
434
		x)
435
436
437
438
439
440
441
442
443
444
			sub="$dir/fonts"
			if test -d "$sub"; then
				case x$FC_ADD_FONTS in
				x)
					FC_ADD_FONTS="$sub"
					;;
				*)
					FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
					;;
				esac
Keith Packard's avatar
Keith Packard committed
445
446
447
448
			fi
			;;
		esac
	done
449
	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
Keith Packard's avatar
Keith Packard committed
450
451
	;;
no)
452
	FC_ADD_FONTS=""
Keith Packard's avatar
Keith Packard committed
453
454
	;;
*)
455
456
	FC_ADD_FONTS="$add_fonts"
	AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
Keith Packard's avatar
Keith Packard committed
457
458
459
	;;
esac

460
AC_SUBST(FC_ADD_FONTS)
Keith Packard's avatar
Keith Packard committed
461
462
463

FC_FONTPATH=""

464
case "$FC_ADD_FONTS" in
Keith Packard's avatar
Keith Packard committed
465
466
467
"")
	;;
*)
468
469
	FC_FONTPATH=`echo $FC_ADD_FONTS | 
			sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
Keith Packard's avatar
Keith Packard committed
470
471
472
473
474
	;;
esac

AC_SUBST(FC_FONTPATH)

475
476
477
#
# Set default cache directory path
#
478
479
AC_ARG_WITH(cache-dir,
	[AC_HELP_STRING([--with-cache-dir=DIR],
480
			[Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])],
481
	fc_cachedir="$withval", fc_cachedir=yes)
482
483
484

case $fc_cachedir in
no|yes)
485
486
487
	if test "$os_win32" = "yes"; then
		fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
	else
488
		fc_cachedir='${localstatedir}/cache/${PACKAGE}'
489
	fi
490
491
492
493
494
495
496
497
	;;
*)
	;;
esac
AC_SUBST(fc_cachedir)
FC_CACHEDIR=${fc_cachedir}
AC_SUBST(FC_CACHEDIR)

498
FC_FONTDATE=`LC_ALL=C date`
Keith Packard's avatar
Keith Packard committed
499
500
501
502

AC_SUBST(FC_FONTDATE)

#
503
# Set configuration paths
Keith Packard's avatar
Keith Packard committed
504
505
#

506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
AC_ARG_WITH(templatedir,
	[AC_HELP_STRING([--with-templatedir=DIR],
			[Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])],
	[templatedir="$withval"],
	[templatedir=yes])
AC_ARG_WITH(baseconfigdir,
	[AC_HELP_STRING([--with-baseconfigdir=DIR],
			[Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])],
	[baseconfigdir="$withval"],
	[baseconfigdir=yes])
AC_ARG_WITH(configdir,
	[AC_HELP_STRING([--with-configdir=DIR],
			[Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])],
	[configdir="$withval"],
	[configdir=yes])
AC_ARG_WITH(xmldir,
	[AC_HELP_STRING([--with-xmldir=DIR],
			[Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])],
	[xmldir="$withval"],
	[xmldir=yes])

case "$templatedir" in
Keith Packard's avatar
Keith Packard committed
528
no|yes)
529
	templatedir='${datadir}'/fontconfig/conf.avail
Keith Packard's avatar
Keith Packard committed
530
531
532
533
	;;
*)
	;;
esac
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
case "$baseconfigdir" in
no|yes)
	baseconfigdir='${sysconfdir}'/fonts
	;;
*)
	;;
esac
case "$configdir" in
no|yes)
	configdir='${baseconfigdir}'/conf.d
	;;
*)
	;;
esac
case "$xmldir" in
no|yes)
	xmldir='${datadir}'/xml/fontconfig
	;;
*)
	;;
esac

TEMPLATEDIR=${templatedir}
BASECONFIGDIR=${baseconfigdir}
CONFIGDIR=${configdir}
XMLDIR=${xmldir}
AC_SUBST(templatedir)
AC_SUBST(TEMPLATEDIR)
AC_SUBST(baseconfigdir)
AC_SUBST(BASECONFIGDIR)
AC_SUBST(configdir)
AC_SUBST(CONFIGDIR)
AC_SUBST(xmldir)
AC_SUBST(XMLDIR)
Keith Packard's avatar
Keith Packard committed
568

Keith Packard's avatar
Keith Packard committed
569
570
571
572
573
574
#
# Let people not build/install docs if they don't have docbook
#

AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)

575
AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
Keith Packard's avatar
Keith Packard committed
576

577
578
579
580
581
default_docs="yes"
#
# Check if docs exist or can be created
#
if test x$HASDOCBOOK = xno; then
582
	if test -f $srcdir/doc/fonts-conf.5; then
583
584
585
586
		:
	else
		default_docs="no"
	fi
Keith Packard's avatar
Keith Packard committed
587
588
fi

589
590
591
592
593
AC_ARG_ENABLE(docs,
	[AC_HELP_STRING([--disable-docs],
			[Don't build and install documentation])],
	,
	enable_docs=$default_docs)
594

Keith Packard's avatar
Keith Packard committed
595
596
AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)

597
598
if test "x$enable_docs" = xyes; then
	DOCSRC="doc"
599
600
601
602
603
604
605
606
	tmp=funcs.$$
	cat $srcdir/doc/*.fncs | awk '
	/^@TITLE@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
	/^@FUNC@/	{ if (!done) { printf ("%s\n", $2); done = 1; } }
	/^@@/		{ done = 0; }' > $tmp
	DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
	echo DOCMAN3 $DOCMAN3
	rm -f $tmp
607
608
else
	DOCSRC=""
609
	DOCMAN3=""
610
611
612
fi

AC_SUBST(DOCSRC)
613
AC_SUBST(DOCMAN3)
614

615
616
617
618
619
620

dnl Figure out what cache format suffix to use for this architecture
AC_C_BIGENDIAN
AC_CHECK_SIZEOF([void *])
AC_CHECK_ALIGNOF([double])

621
622
623
dnl include the header file for workaround of miscalculating size on autoconf
dnl particularly for fat binaries
AH_BOTTOM([#include "config-fixups.h"])
624

Keith Packard's avatar
Keith Packard committed
625
AC_OUTPUT([
626
Makefile
Keith Packard's avatar
Keith Packard committed
627
628
fontconfig/Makefile
fc-lang/Makefile
629
fc-glyphname/Makefile
630
fc-case/Makefile
Keith Packard's avatar
Keith Packard committed
631
src/Makefile
632
conf.d/Makefile
Keith Packard's avatar
Keith Packard committed
633
fc-cache/Makefile
634
fc-cat/Makefile
Keith Packard's avatar
Keith Packard committed
635
fc-list/Makefile
636
fc-match/Makefile
Behdad Esfahbod's avatar
Behdad Esfahbod committed
637
fc-pattern/Makefile
Behdad Esfahbod's avatar
Behdad Esfahbod committed
638
fc-query/Makefile
639
fc-scan/Makefile
640
doc/Makefile
641
doc/version.sgml
Keith Packard's avatar
Keith Packard committed
642
test/Makefile
Keith Packard's avatar
Keith Packard committed
643
644
fontconfig.spec
fontconfig.pc
Tor Lillqvist's avatar
Tor Lillqvist committed
645
fontconfig-zip
Keith Packard's avatar
Keith Packard committed
646
])