dnl
dnl $Id$
dnl
-dnl Copyright © 2003 Keith Packard
+dnl Copyright © 2003 Keith Packard
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
dnl Process this file with autoconf to create configure.
+AC_INIT(fonts.dtd)
+
dnl ==========================================================================
dnl Versioning
dnl ==========================================================================
-dnl The version number is also in fontconfig/fontconfig.h
-AC_INIT(ChangeLog,1.0.3,fontconfig@fontconfig.org)
+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
+AM_INIT_AUTOMAKE(fontconfig, 2.3.2)
+AM_MAINTAINER_MODE
-FONTCONFIG_HEADER=fontconfig/fontconfig.h
-FONTCONFIG_MAJOR=`awk '/^#define FC_MAJOR/ { print $3 }' $FONTCONFIG_HEADER`
-FONTCONFIG_MINOR=`awk '/^#define FC_MINOR/ { print $3 }' $FONTCONFIG_HEADER`
-FONTCONFIG_REVISION=`awk '/^#define FC_REVISION/ { print $3 }' $FONTCONFIG_HEADER`
-FONTCONFIG_VERSION="$FONTCONFIG_MAJOR.$FONTCONFIG_MINOR.$FONTCONFIG_REVISION"
+dnl libtool versioning
-AC_SUBST(FONTCONFIG_MAJOR)
-AC_SUBST(FONTCONFIG_MINOR)
-AC_SUBST(FONTCONFIG_REVISION)
-AC_SUBST(FONTCONFIG_VERSION)
+LT_CURRENT=1
+LT_REVISION=4
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+LT_AGE=0
-dnl libtool versioning
+LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
+AC_SUBST(LT_VERSION_INFO)
-LT_VERSION_NUMBER="$FONTCONFIG_MAJOR:$FONTCONFIG_MINOR:$FONTCONFIG_REVISION"
-AC_SUBST(LT_VERSION_NUMBER)
+LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
+AC_SUBST(LT_CURRENT_MINUS_AGE)
dnl ==========================================================================
-AM_INIT_AUTOMAKE(fontconfig, $FONTCONFIG_VERSION)
-
AM_CONFIG_HEADER(config.h)
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
+AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
AC_PROG_MAKE_SET
+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)
+
+WARN_CFLAGS=""
+
+if test "x$GCC" = "xyes"; then
+ WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
+ -Wmissing-prototypes -Wmissing-declarations \
+ -Wnested-externs -fno-strict-aliasing"
+fi
+AC_SUBST(WARN_CFLAGS)
+
+dnl ==========================================================================
+
+AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
+
+dnl ==========================================================================
+
+# Setup for compiling build tools (fc-glyphname, etc)
+AC_MSG_CHECKING([for a C compiler for build tools])
+if test $cross_compiling = yes; then
+ AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
+else
+ CC_FOR_BUILD=$CC
+fi
+AC_MSG_RESULT([$CC_FOR_BUILD])
+AC_SUBST(CC_FOR_BUILD)
+
+AC_MSG_CHECKING([for suffix of executable build tools])
+if test $cross_compiling = yes; then
+ cat >conftest.c <<\_______EOF
+int
+main ()
+{
+ exit (0);
+}
+_______EOF
+ for i in .exe ""; do
+ compile="$CC_FOR_BUILD conftest.c -o conftest$i"
+ if AC_TRY_EVAL(compile); then
+ if (./conftest) 2>&AC_FD_CC; then
+ EXEEXT_FOR_BUILD=$i
+ break
+ fi
+ fi
+ done
+ rm -f conftest*
+ if test "${EXEEXT_FOR_BUILD+set}" != set; then
+ AC_MSG_ERROR([Cannot determine suffix of executable build tools])
+ fi
+else
+ EXEEXT_FOR_BUILD=$EXEEXT
+fi
+AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
+AC_SUBST(EXEEXT_FOR_BUILD)
+
+dnl ==========================================================================
+
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
# Checks for library functions.
AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([memmove memset strchr strrchr strtol getopt getopt_long])
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv])
#
# Checks for FreeType
#
-AC_ARG_WITH(freetype_config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
+AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
if test "$freetype_config" = "yes"; then
AC_PATH_PROG(ft_config,freetype-config,no)
ft_config="$freetype_config"
fi
-FREETYPE_CFLAGS="$($ft_config --cflags)"
-FREETYPE_LIBS="$($ft_config --libs)"
+FREETYPE_CFLAGS="`$ft_config --cflags`"
+FREETYPE_LIBS="`$ft_config --libs`"
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
#
-# Check to see whether we have FT_Get_First_Char(), new in 2.0.9
+# Check to see whether we have:
+# FT_Get_Next_Char
+# FT_Get_BDF_Property
+# FT_Get_PS_Font_Info
+# FT_Has_PS_Glyph_Names
#
-fontconfig_save_libs=$LIBS
+fontconfig_save_libs="$LIBS"
+fontconfig_save_cflags="$CFLAGS"
LIBS="$LIBS $FREETYPE_LIBS"
-AC_CHECK_FUNCS(FT_Get_First_Char)
-LIBS=$fontconfig_save_libs
+CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
+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)
+AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
+ HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
+ HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
+[#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])
+CFLAGS="$fontconfig_save_cflags"
+LIBS="$fontconfig_save_libs"
#
# Check expat configuration
#
AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
-AC_ARG_WITH(expat_includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
-AC_ARG_WITH(expat_lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
+AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
+AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
case "$expat" in
no)
;;
*)
case "$expat_includes" in
- yes|no)
+ yes)
+ case "$expat" in
+ yes)
+ ;;
+ *)
+ EXPAT_CFLAGS="-I$expat/include"
+ ;;
+ esac
+ ;;
+ no)
EXPAT_CFLAGS=""
;;
*)
expat=no
;;
yes)
- AC_CHECK_FUNCS(XML_ParserCreate)
- case "$ac_cv_func_XML_ParserCreate" in
- no)
- expat=no
- ;;
+ AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
+ case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
yes)
HAVE_EXPAT=1
AC_SUBST(HAVE_EXPAT)
AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
[Found a useable expat library])
;;
+ *)
+ expat=no
+ ;;
esac
;;
esac
- CPPFLAGS="$saved_CPPFLAGS"
- LIBS="$saved_LIBS"
+ CPPFLAGS="$expatsaved_CPPFLAGS"
+ LIBS="$expatsaved_LIBS"
;;
esac
AC_SUBST(EXPAT_LIBS)
case "$expat" in
no)
- AC_MSG_ERROR([cannot find expat library])
+ AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.])
;;
esac
# Set default font directory
#
-AC_ARG_WITH(default_fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], defaultfonts="$withval", default_fonts=yes)
+AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
case "$default_fonts" in
yes)
- FC_DEFAULT_FONTS="/usr/share/fonts"
- AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
- [System font directory])
+ 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
;;
*)
FC_DEFAULT_FONTS="$default_fonts"
AC_SUBST(FC_DEFAULT_FONTS)
#
-# Add X fonts if available
+# 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
#
-AC_ARG_WITH(x_fonts, [ --with-x-fonts=DIR Find X fonts in DIR ], x_fonts="$withval", x_fonts=yes)
+AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
-case "$x_fonts" in
+case "$add_fonts" in
yes)
- FC_X_FONTS=""
- for dir in /usr/X11R6/lib /usr/X11/lib /usr/lib/X11; do
- case x"$FC_X_FONTS" in
+ FC_ADD_FONTS=""
+ for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
+ case x"$FC_ADD_FONTS" in
x)
- if test -d "$dir/fonts"; then
- FC_X_FONTS="$dir/fonts"
+ 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
fi
;;
esac
done
- AC_DEFINE_UNQUOTED(FC_X_FONTS,"$x_fonts",[X font directory])
+ AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
;;
no)
- FC_X_FONTS=""
+ FC_ADD_FONTS=""
;;
*)
- FC_X_FONTS="$x_fonts"
- AC_DEFINE_UNQUOTED(FC_X_FONTS,"$x_fonts",[X font directory])
+ FC_ADD_FONTS="$add_fonts"
+ AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
;;
esac
-AC_SUBST(FC_X_FONTS)
+AC_SUBST(FC_ADD_FONTS)
FC_FONTPATH=""
-case "$FC_X_FONTS" in
+case "$FC_ADD_FONTS" in
"")
;;
*)
- FC_FONTPATH="<dir>$FC_X_FONTS</dir>"
+ FC_FONTPATH=`echo $FC_ADD_FONTS |
+ sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
;;
esac
AC_SUBST(FC_FONTPATH)
-FC_FONTDATE=`date`
+FC_FONTDATE=`LC_ALL=C date`
AC_SUBST(FC_FONTDATE)
case "$confdir" in
no|yes)
- confdir=/etc/fonts
+ confdir='${sysconfdir}'/fonts
;;
*)
;;
esac
AC_SUBST(confdir)
-CONFDIR='${confdir}'
+CONFDIR=${confdir}
AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
AC_SUBST(CONFDIR)
# Find out what language orthographies are included
#
-ORTH_FILES=`cd fc-lang && echo *.orth`
+ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
AC_SUBST(ORTH_FILES)
+#
+# Let people not build/install docs if they don't have docbook
+#
+
+AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
+
+AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
+
+default_docs="yes"
+#
+# Check if docs exist or can be created
+#
+if test x$HASDOCBOOK = xno; then
+ if test -f doc/fonts-conf.5; then
+ :
+ else
+ default_docs="no"
+ fi
+fi
+
+AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
+
+AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
+
+if test "x$enable_docs" = xyes; then
+ DOCSRC="doc"
+ 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
+else
+ DOCSRC=""
+ DOCMAN3=""
+fi
+
+AC_SUBST(DOCSRC)
+AC_SUBST(DOCMAN3)
+
#
# Figure out where to install documentation
#
-AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
+AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
if test "x$with_docdir" = "x" ; then
DOCDIR='${datadir}/doc/fontconfig'
Makefile
fontconfig/Makefile
fc-lang/Makefile
+fc-glyphname/Makefile
+fc-case/Makefile
src/Makefile
+src/fontconfig.def
+conf.d/Makefile
fc-cache/Makefile
fc-list/Makefile
+fc-match/Makefile
doc/Makefile
+doc/version.sgml
+test/Makefile
fontconfig.spec
fontconfig.pc
fonts.conf
+fontconfig-zip
])