4 dnl Copyright © 2003 Keith Packard
6 dnl Permission to use, copy, modify, distribute, and sell this software and its
7 dnl documentation for any purpose is hereby granted without fee, provided that
8 dnl the above copyright notice appear in all copies and that both that
9 dnl copyright notice and this permission notice appear in supporting
10 dnl documentation, and that the name of Keith Packard not be used in
11 dnl advertising or publicity pertaining to distribution of the software without
12 dnl specific, written prior permission. Keith Packard makes no
13 dnl representations about the suitability of this software for any purpose. It
14 dnl is provided "as is" without express or implied warranty.
16 dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19 dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20 dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21 dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22 dnl PERFORMANCE OF THIS SOFTWARE.
24 dnl Process this file with autoconf to create configure.
28 dnl ==========================================================================
30 dnl ==========================================================================
32 dnl This is the package version number, not the shared library
33 dnl version. This same version number must appear in fontconfig/fontconfig.h
34 dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
35 dnl not possible to extract the version number here from fontconfig.h
36 AM_INIT_AUTOMAKE(fontconfig, 2.3.96)
39 dnl libtool versioning
47 LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
48 AC_SUBST(LT_VERSION_INFO)
50 LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
51 AC_SUBST(LT_CURRENT_MINUS_AGE)
53 dnl ==========================================================================
55 AM_CONFIG_HEADER(config.h)
64 dnl ==========================================================================
73 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
75 if test "$os_win32" = "yes"; then
76 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
78 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
81 if test "x$GCC" = "xyes"; then
82 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
83 -Wmissing-prototypes -Wmissing-declarations \
84 -Wnested-externs -fno-strict-aliasing"
85 AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
86 [Can use #warning in C files])
91 dnl ==========================================================================
93 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
95 dnl ==========================================================================
97 # Setup for compiling build tools (fc-glyphname, etc)
98 AC_MSG_CHECKING([for a C compiler for build tools])
99 if test $cross_compiling = yes; then
100 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
104 AC_MSG_RESULT([$CC_FOR_BUILD])
105 AC_SUBST(CC_FOR_BUILD)
107 AC_MSG_CHECKING([for suffix of executable build tools])
108 if test $cross_compiling = yes; then
109 cat >conftest.c <<\_______EOF
117 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
118 if AC_TRY_EVAL(compile); then
119 if (./conftest) 2>&AC_FD_CC; then
126 if test "${EXEEXT_FOR_BUILD+set}" != set; then
127 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
130 EXEEXT_FOR_BUILD=$EXEEXT
132 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
133 AC_SUBST(EXEEXT_FOR_BUILD)
135 dnl ==========================================================================
137 AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto)
139 if test $cross_compiling = yes; then
142 AC_MSG_ERROR([Cannot autodetect architecture in cross compile environment]
143 [Use --with-arch=ARCH to specify architecture])
149 AC_SUBST(ARCHITECTURE)
151 dnl ==========================================================================
153 # Checks for header files.
156 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
158 # Checks for typedefs, structures, and compiler characteristics.
163 # Checks for library functions.
166 AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand_r])
171 AC_MSG_CHECKING([for a usable iconv])
173 AC_TRY_LINK([#include <iconv.h>],
174 [iconv_open ("from", "to");],
177 if test x$use_iconv = x1; then
178 AC_MSG_RESULT([libc])
181 fontconfig_save_libs="$LIBS"
184 AC_TRY_LINK([#include <iconv.h>],
185 [iconv_open ("from", "to");],
189 if test x$use_iconv = x1; then
191 AC_MSG_RESULT([libiconv])
196 LIBS="$fontconfig_save_libs"
199 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
202 # Checks for FreeType
205 AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
207 if test "$freetype_config" = "yes"; then
208 AC_PATH_PROG(ft_config,freetype-config,no)
209 if test "$ft_config" = "no"; then
210 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
213 ft_config="$freetype_config"
216 FREETYPE_CFLAGS="`$ft_config --cflags`"
217 FREETYPE_LIBS="`$ft_config --libs`"
219 AC_SUBST(FREETYPE_LIBS)
220 AC_SUBST(FREETYPE_CFLAGS)
223 # Check to see whether we have:
225 # FT_Get_BDF_Property
226 # FT_Get_PS_Font_Info
227 # FT_Has_PS_Glyph_Names
230 fontconfig_save_libs="$LIBS"
231 fontconfig_save_cflags="$CFLAGS"
232 LIBS="$LIBS $FREETYPE_LIBS"
233 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
234 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)
235 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
236 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
237 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
238 [#include <ft2build.h>
239 #include FT_FREETYPE_H])
240 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
241 [FT_Bitmap_Size structure includes y_ppem field])
242 CFLAGS="$fontconfig_save_cflags"
243 LIBS="$fontconfig_save_libs"
246 # Check expat configuration
249 AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
250 AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
251 AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
253 if test "$enable_libxml2" != "yes"; then
258 case "$expat_includes" in
264 EXPAT_CFLAGS="-I$expat/include"
272 EXPAT_CFLAGS="-I$expat_includes"
282 EXPAT_LIBS="-L$expat/lib -lexpat"
289 EXPAT_LIBS="-L$expat_lib -lexpat"
293 expatsaved_CPPFLAGS="$CPPFLAGS"
294 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
295 expatsaved_LIBS="$LIBS"
296 LIBS="$LIBS $EXPAT_LIBS"
298 AC_CHECK_HEADER(expat.h)
299 case "$ac_cv_header_expat_h" in
301 AC_CHECK_HEADER(xmlparse.h)
302 case "$ac_cv_header_xmlparse_h" in
304 have_expat_header=no;
308 AC_SUBST(HAVE_XMLPARSE_H)
309 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
310 [Use xmlparse.h instead of expat.h])
311 have_expat_header=yes
316 have_expat_header=yes
319 case "$have_expat_header" in
324 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
325 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
329 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
330 [Found a useable expat library])
338 CPPFLAGS="$expatsaved_CPPFLAGS"
339 LIBS="$expatsaved_LIBS"
343 AC_SUBST(EXPAT_CFLAGS)
351 AC_MSG_WARN([Cannot find usable expat library. Trying to use libxml2 as fallback.])
357 # Check libxml2 configuration
360 AC_ARG_ENABLE(libxml2, [ --enable-libxml2 Use libxml2 instead of Expat])
364 if test "$enable_libxml2" = "yes" -o "$expat" = "no"; then
365 PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
366 AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
368 AC_SUBST(LIBXML2_CFLAGS)
369 AC_SUBST(LIBXML2_LIBS)
373 # Set default font directory
376 AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
378 case "$default_fonts" in
380 if test "$os_win32" = "yes"; then
381 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
382 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
383 [Windows font directory])
385 FC_DEFAULT_FONTS="/usr/share/fonts"
386 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
387 [System font directory])
391 FC_DEFAULT_FONTS="$default_fonts"
392 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
393 [System font directory])
397 AC_SUBST(FC_DEFAULT_FONTS)
400 # Add more fonts if available. By default, add only the directories
401 # with outline fonts; those with bitmaps can be added as desired in
402 # local.conf or ~/.fonts.conf
404 AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
409 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
410 case x"$FC_ADD_FONTS" in
413 if test -d "$sub"; then
414 case x$FC_ADD_FONTS in
419 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
426 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
432 FC_ADD_FONTS="$add_fonts"
433 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
437 AC_SUBST(FC_ADD_FONTS)
441 case "$FC_ADD_FONTS" in
445 FC_FONTPATH=`echo $FC_ADD_FONTS |
446 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
450 AC_SUBST(FC_FONTPATH)
453 # Set default cache directory path
455 AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default /var/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes)
459 fc_cachedir=`eval echo "${localstatedir}/cache/"${PACKAGE}`
464 AC_SUBST(fc_cachedir)
465 FC_CACHEDIR=${fc_cachedir}
466 AC_SUBST(FC_CACHEDIR)
468 FC_FONTDATE=`LC_ALL=C date`
470 AC_SUBST(FC_FONTDATE)
472 AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
475 # Set CONFDIR and FONTCONFIG_PATH
480 confdir='${sysconfdir}'/fonts
487 AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
491 # Find out what language orthographies are included
494 ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
498 # Let people not build/install docs if they don't have docbook
501 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
503 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
507 # Check if docs exist or can be created
509 if test x$HASDOCBOOK = xno; then
510 if test -f doc/fonts-conf.5; then
517 AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
519 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
521 if test "x$enable_docs" = xyes; then
524 cat $srcdir/doc/*.fncs | awk '
525 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
526 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
527 /^@@/ { done = 0; }' > $tmp
528 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
529 echo DOCMAN3 $DOCMAN3
540 # Figure out where to install documentation
543 AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
545 if test "x$with_docdir" = "x" ; then
546 DOCDIR='${datadir}/doc/fontconfig'
558 fc-glyphname/Makefile