-AC_INIT(fontconfig/fontconfig.h)
-
-AC_PREREQ(2.13)
-
-FC_MAJOR=1
-FC_MINOR=0
-FC_SUB=1
-FC_PRE=
-FC_IFACE_AGE=0
-FC_BIN_AGE=0
-
-AC_SUBST(FC_MAJOR)
-AC_SUBST(FC_MINOR)
-AC_SUBST(FC_SUB)
-AC_SUBST(FC_IFACE_AGE)
-AC_SUBST(FC_BIN_AGE)
-
-LT_RELEASE=$FC_MAJOR.$FC_MINOR
-LT_CURRENT=`expr $FC_SUB - $FC_IFACE_AGE`
-LT_REVISION=$FC_IFACE_AGE
-LT_AGE=`expr $FC_BIN_AGE - $FC_IFACE_AGE`
-AC_SUBST(LT_RELEASE)
+dnl
+dnl $Id$
+dnl
+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 the above copyright notice appear in all copies and that both that
+dnl copyright notice and this permission notice appear in supporting
+dnl documentation, and that the name of Keith Packard not be used in
+dnl advertising or publicity pertaining to distribution of the software without
+dnl specific, written prior permission. Keith Packard makes no
+dnl representations about the suitability of this software for any purpose. It
+dnl is provided "as is" without express or implied warranty.
+dnl
+dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+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.
+dnl
+dnl Process this file with autoconf to create configure.
+
+AC_INIT(fonts.dtd)
+
+dnl ==========================================================================
+dnl Versioning
+dnl ==========================================================================
+
+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.2.90)
+
+dnl libtool versioning
+
+LT_CURRENT=1
+LT_REVISION=4
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
+LT_AGE=0
+
+LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
+AC_SUBST(LT_VERSION_INFO)
+
+LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
+AC_SUBST(LT_CURRENT_MINUS_AGE)
-AM_INIT_AUTOMAKE("fontconfig", $FC_MAJOR.$FC_MINOR.$FC_SUB$FC_PRE)
+dnl ==========================================================================
-AC_CANONICAL_HOST
AM_CONFIG_HEADER(config.h)
-AC_ARG_WITH(freetype_includes, [ --with-freetype-includes=DIR Use FreeType includes in DIR], freetype_includes=$withval, freetype_includes=yes)
-AC_ARG_WITH(freetype_lib, [ --with-freetype-lib=DIR Use FreeType library in DIR], freetype_lib=$withval, freetype_lib=yes)
-AC_ARG_WITH(freetype_config, [ --with-freeetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
-AC_ARG_WITH(xml2_includes, [ --with-xml2-includes=DIR Use xml2 includes in DIR], xml2_includes=$withval, xml2_includes=yes)
-AC_ARG_WITH(xml2_lib, [ --with-xml2-lib=DIR Use xml2 library in DIR], xml2_lib=$withval, xml2_lib=yes)
-AC_ARG_WITH(xml2_config, [ --with-freeetype-config=PROG Use FreeType configuration program PROG], xml2_config=$withval, xml2_config=yes)
-AC_ARG_WITH(fallback_fonts, [ --with-fallback-fonts=DIR Use fonts from DIR when config is busted], fallback_fonts="$withval", fallback_fonts=yes)
-AC_ISC_POSIX
AC_PROG_CC
-AC_STDC_HEADERS
-AC_PROG_MAKE_SET
AC_PROG_INSTALL
-
AC_PROG_LN_S
-
-dnl
-dnl Libtool
-dnl
-AM_DISABLE_STATIC
+AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
-AC_SUBST(LIBTOOL_DEPS)
-if libtool --features | grep "enable static" >/dev/null; then
- STATIC="-static"
-else
- STATIC=
+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
-AC_SUBST(STATIC)
+AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
-AC_SUBST(DEBUG_CFLAGS)
-AC_SUBST(GLOBAL_CFLAGS)
+dnl ==========================================================================
-AC_CHECK_FUNCS(getopt_long getopt)
+# Checks for header files.
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
-case "$freetype_config" in
-no)
- ;;
-yes)
- AC_CHECK_PROG(ft_config, freetype-config, freetype-config, no)
- ;;
-*)
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_PID_T
+
+# Checks for library functions.
+AC_FUNC_VPRINTF
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long])
+
+#
+# Checks for FreeType
+#
+
+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)
+ if test "$ft_config" = "no"; then
+ AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
+ fi
+else
ft_config="$freetype_config"
- ;;
-esac
+fi
+
+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
+#
+
+fontconfig_save_libs=$LIBS
+LIBS="$LIBS $FREETYPE_LIBS"
+AC_CHECK_FUNCS(FT_Get_First_Char)
+LIBS=$fontconfig_save_libs
-case "$freetype_includes" in
+#
+# 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)
+
+case "$expat" in
no)
- freetype_includes=""
;;
-yes)
- case "$ft_config" in
+*)
+ case "$expat_includes" in
+ yes|no)
+ EXPAT_CFLAGS=""
+ ;;
+ *)
+ EXPAT_CFLAGS="-I$expat_includes"
+ ;;
+ esac
+ case "$expat_lib" in
+ yes)
+ case "$expat" in
+ yes)
+ EXPAT_LIBS="-lexpat"
+ ;;
+ *)
+ EXPAT_LIBS="-L$expat/lib -lexpat"
+ ;;
+ esac
+ ;;
no)
- freetype_includes=""
;;
*)
- freetype_includes="`$ft_config --cflags`"
+ EXPAT_LIBS="-L$expat_lib -lexpat"
;;
esac
- ;;
-*)
- freetype_includes="-I$freetype_includes"
- ;;
-esac
-case "$freetype_lib" in
-no)
- freetype_lib=""
- ;;
-yes)
- case "$ft_config" in
+ expatsaved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
+ expatsaved_LIBS="$LIBS"
+ LIBS="$LIBS $EXPAT_LIBS"
+
+ AC_CHECK_HEADER(expat.h)
+ case "$ac_cv_header_expat_h" in
no)
- freetype_lib=""
+ AC_CHECK_HEADER(xmlparse.h)
+ case "$ac_cv_header_xmlparse_h" in
+ no)
+ have_expat_header=no;
+ ;;
+ yes)
+ HAVE_XMLPARSE_H=1
+ AC_SUBST(HAVE_XMLPARSE_H)
+ AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
+ [Use xmlparse.h instead of expat.h])
+ have_expat_header=yes
+ ;;
+ esac
;;
- *)
- freetype_lib="`$ft_config --libs`"
+ yes)
+ have_expat_header=yes
+ ;;
+ esac
+ case "$have_expat_header" in
+ no)
+ expat=no
+ ;;
+ yes)
+ 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="$expatsaved_CPPFLAGS"
+ LIBS="$expatsaved_LIBS"
;;
-*)
- freetype_lib="-L$freetype_lib -lfreetype"
+esac
+AC_SUBST(EXPAT_LIBS)
+AC_SUBST(EXPAT_CFLAGS)
+
+case "$expat" in
+no)
+ AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.])
;;
esac
-case "$fallback_fonts" in
+#
+# Set default font directory
+#
+
+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)
- AC_DEFINE_UNQUOTED(FC_FALLBACK_FONTS, "/usr/X11R6/lib/X11/fonts/Type1")
+ 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
;;
*)
- AC_DEFINE_UNQUOTED(FC_FALLBACK_FONTS, "$fallback_fonts")
+ FC_DEFAULT_FONTS="$default_fonts"
+ AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
+ [System font directory])
;;
esac
-saved_LIBS="$LIBS"
-LIBS="$LIBS $freetype_lib"
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $freetype_includes"
-AC_CHECK_HEADERS(ft2build.h)
+AC_SUBST(FC_DEFAULT_FONTS)
-case "$ac_cv_header_ft2build_h" in
-no)
- CPPFLAGS="$saved_CPPFLAGS"
- LIBS="$saved_LIBS"
- ;;
+#
+# 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(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
+
+case "$add_fonts" in
yes)
- AC_CHECK_FUNCS(FT_Init_FreeType)
- case "$ac_cv_func_FT_Init_FreeType" in
- no)
- CPPFLAGS="$saved_CPPFLAGS"
- LIBS="$saved_LIBS"
- ;;
- yes)
- AC_DEFINE(HAVE_FREETYPE)
- ;;
- esac
+ 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
+ for sub in "$dir"/fonts/*; do
+ if ls "$sub" | grep -q -i '\.pf\|\.tt\|\.ot'; then
+ case x$FC_ADD_FONTS in
+ x)
+ FC_ADD_FONTS="$sub"
+ ;;
+ *)
+ FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
+ ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done
+ AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
;;
-esac
-
-case "$xml2_config" in
no)
- ;;
-yes)
- AC_CHECK_PROG(xml2_config_prog, xml2-config, xml2-config, no)
+ FC_ADD_FONTS=""
;;
*)
+ FC_ADD_FONTS="$add_fonts"
+ AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
;;
esac
-case "$xml2_includes" in
-no)
- xml2_includes=""
- ;;
-yes)
- case "$xml2_config_prog" in
- no)
- xml2_includes=""
- ;;
- *)
- xml2_includes="`$xml2_config_prog --cflags`"
- ;;
- esac
+AC_SUBST(FC_ADD_FONTS)
+
+FC_FONTPATH=""
+
+case "$FC_ADD_FONTS" in
+"")
;;
*)
- xml2_includes="-I$xml2_includes"
+ FC_FONTPATH=`echo $FC_ADD_FONTS |
+ sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
;;
esac
-case "$xml2_lib" in
-no)
- xml2_lib=""
- ;;
-yes)
- case "$xml2_config_prog" in
- no)
- xml2_lib=""
- ;;
- *)
- xml2_lib="`$xml2_config_prog --libs`"
- ;;
- esac
+AC_SUBST(FC_FONTPATH)
+
+FC_FONTDATE=`date`
+
+AC_SUBST(FC_FONTDATE)
+
+AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
+
+#
+# Set CONFDIR and FONTCONFIG_PATH
+#
+
+case "$confdir" in
+no|yes)
+ confdir='${sysconfdir}'/fonts
;;
*)
- xml2_lib="-L$xml2_lib -lxml2"
;;
esac
+AC_SUBST(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`
+AC_SUBST(ORTH_FILES)
+
+#
+# Let people not build/install docs if they don't have docbook
+#
+
+AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
+
+AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=yes)
+
+if test "x$enable_docs" = xyes; then
+ if test "x$HASDOCBOOK" != xyes; then
+ enable_docs=no
+ fi
+fi
+
+AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
+
+#
+# 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")
+
+if test "x$with_docdir" = "x" ; then
+ DOCDIR='${datadir}/doc/fontconfig'
+else
+ DOCDIR=$with_docdir
+fi
-saved_LIBS="$LIBS"
-LIBS="$LIBS $xml2_lib"
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $xml2_includes"
-AC_CHECK_HEADERS(xmlversion.h)
+AC_SUBST(DOCDIR)
-AC_OUTPUT(Makefile src/Makefile fontconfig/Makefile fc-cache/Makefile fc-list/Makefile)
+AC_OUTPUT([
+Makefile
+fontconfig/Makefile
+fc-lang/Makefile
+fc-glyphname/Makefile
+src/Makefile
+src/fontconfig.def
+fc-cache/Makefile
+fc-list/Makefile
+fc-match/Makefile
+doc/Makefile
+doc/version.sgml
+test/Makefile
+fontconfig.spec
+fontconfig.pc
+fonts.conf
+fontconfig-zip
+])