summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2006-06-21 07:00:34 -0400
committerBehdad Esfahbod <behdad@behdad.org>2006-06-21 07:05:14 -0400
commitf71313d427565cb37a25393ff8a5a2ffdcfb798b (patch)
tree6569269762f050a9c6303c8add913ad4433b6824 /configure.in
parentc88bab66ab258e0bbd2cb80eaf4edc9e5f1ad6f0 (diff)
Minor refinements, mostly to configure.in.
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in113
1 files changed, 62 insertions, 51 deletions
diff --git a/configure.in b/configure.in
index 9f0611998..3feeca033 100644
--- a/configure.in
+++ b/configure.in
@@ -87,30 +87,41 @@ PKG_PROG_PKG_CONFIG
dnl ===========================================================================
dnl
dnl Define a macro to enable backends.
-dnl - Macro: CAIRO_BACKEND_ENABLE (ID, NAME, NAMESPACE, FEATURE, DEFAULT, REQUIRES, COMMANDS-TO-CHECK-IT)
+dnl - Macro: CAIRO_BACKEND_ENABLE (NAMESPACE, NAME, ARG, FEATURE_NAME, DEFAULT, REQUIRES, COMMANDS)
dnl
-dnl Where COMMANDS should set $use_ID to something other than yes if the
-dnl backend cannot be built.
+dnl where:
dnl
-dnl Check the CAIRO_BACKEND_ENABLE line for fontconfig to understand each
-dnl parameter.
+dnl NAMESPACE is the sub-namespace in function names, eg. "ft" for cairo_ft_...
+dnl NAME is the human-readable name of the backend, eg. "FreeType font"
+dnl ARG is what enables the backend, eg. "freetype" for --enable-freetype
+dnl FEATURE_NAME is what's used in cairo-features.h, eg. FT_FONT for CAIRO_HAS_FT_FONT
+dnl DEFAULT is the default state of the backend:
+dnl "no" for experimental backends, eg. your favorite new backend
+dnl "yes" for mandatory backends, eg. png
+dnl "auto" for other supported backends, eg. xlib
+dnl REQUIRES is the list of pkg-config modules that should be Require'd in the
+dnl backend-specific .pc file.
+dnl COMMANDS are run to check whether the backend can be enabled. Their
+dnl result may be cached, so user should not count on them being run.
+dnl They should set use_$(NAMESPACE) to something other than yes if the
+dnl backend cannot be built, eg. "no (requires SomeThing)"
dnl
AC_DEFUN([CAIRO_BACKEND_ENABLE],
- [AC_ARG_ENABLE([$1],
- AS_HELP_STRING([--enable-$1=@<:@no/auto/yes@:>@],
- [Enable cairo's $2 backend @<:@default=$3@:>@]),
+ [AC_ARG_ENABLE([$3],
+ AS_HELP_STRING([--enable-$3=@<:@no/auto/yes@:>@],
+ [Enable cairo's $2 backend @<:@default=$5@:>@]),
use_$1=$enableval, use_$1=$5)
if test "x$use_$1" = xno; then
- use_$1="no (disabled, use --enable-$1 to enable)"
+ use_$1="no (disabled, use --enable-$3 to enable)"
else
- AC_CACHE_CHECK([for cairo's $1 backend], cairo_cv_use_$1,
+ AC_CACHE_CHECK([for cairo's $2 backend], cairo_cv_use_$1,
[echo
saved_use_$1=$use_$1
use_$1=yes
$7
cairo_cv_use_$1=$use_$1
use_$1=$saved_use_$1
- AC_MSG_CHECKING([whether cairo's $1 backend could be enabled])])
+ AC_MSG_CHECKING([whether cairo's $2 backend could be enabled])])
case $use_$1 in
yes)
if test "x$cairo_cv_use_$1" = xyes; then
@@ -123,15 +134,16 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
use_$1=$cairo_cv_use_$1
;;
*)
- AC_MSG_ERROR([invalid argument passed to --enable-$1: $use_$1, should be one of @<:@no/auto/yes@:>@])
+ AC_MSG_ERROR([invalid argument passed to --enable-$3: $use_$1, should be one of @<:@no/auto/yes@:>@])
;;
esac
if test "x$use_$1" = xyes; then
CAIRO_FEATURES="$CAIRO_FEATURES $4"
- AC_MSG_NOTICE([creating src/cairo-$3.pc])
+ outfile=`echo src/cairo-$1.pc | sed -e s/_/-/g`
+ AC_MSG_NOTICE([creating $outfile])
mkdir -p src
AS_IF([sed \
- -e "s/@backend_name@/$3/g" \
+ -e "s/@backend_name@/$1/g" \
-e "s/@Backend_Name@/$2/g" \
-e "s/@BACKEND_REQUIRES@/$6/g" \
-e "s,@prefix@,$prefix,g" \
@@ -139,9 +151,9 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-$3.pc],,[
- rm -f "src/cairo-$3.pc"
- AC_MSG_ERROR([failed creating src/cairo-$3.pc])
+ $srcdir/src/cairo-backend.pc.in > $outfile],,[
+ rm -f "$outfile"
+ AC_MSG_ERROR([failed creating $outfile])
])
fi
fi
@@ -172,7 +184,7 @@ dnl ===========================================================================
CAIRO_BACKEND_ENABLE(quartz, Quartz, quartz, QUARTZ_SURFACE, no, [], [
dnl There is no pkgconfig for quartz; lets do a header check
- AC_CHECK_HEADER(Carbon/Carbon.h, [use_quartz=yes], [use_quartz="no (Carbon headers not found)"])
+ AC_CHECK_HEADER(Carbon/Carbon.h, , [use_quartz="no (Carbon headers not found)"])
QUARTZ_LIBS="-Xlinker -framework -Xlinker Carbon"
])
@@ -181,7 +193,7 @@ CAIRO_LIBS="$CAIRO_LIBS $QUARTZ_LIBS"
dnl ===========================================================================
CAIRO_BACKEND_ENABLE(xcb, XCB, xcb, XCB_SURFACE, no, [xcb xcb-render], [
- PKG_CHECK_MODULES(XCB, xcb xcb-render, [use_xcb=yes], [
+ PKG_CHECK_MODULES(XCB, xcb xcb-render, , [
use_xcb="no (requires XCB http://xcb.freedesktop.org)"])
])
@@ -203,10 +215,10 @@ esac
CAIRO_BACKEND_ENABLE(win32, Microsoft Windows, win32, WIN32_SURFACE, auto, [], [
case "$host" in
*-*-mingw*|*-*-cygwin*)
- use_win32=yes
+ :
;;
*)
- use_win32="no (the Microsoft Windows backend requires a Win32 platform)"
+ use_win32="no (requires a Win32 platform)"
;;
esac
])
@@ -216,7 +228,7 @@ if test "x$use_win32" = "xyes"; then
CAIRO_LIBS="$CAIRO_LIBS -lgdi32 -lmsimg32"
fi
-CAIRO_BACKEND_ENABLE(win32_font, Microsoft Windows Fonts, win32-font, WIN32_FONT, auto, [], [
+CAIRO_BACKEND_ENABLE(win32_font, Microsoft Windows font, win32-font, WIN32_FONT, auto, [], [
use_win32_font=$use_win32
])
@@ -227,10 +239,10 @@ dnl ===========================================================================
CAIRO_BACKEND_ENABLE(beos, BeOS/Zeta, beos, BEOS_SURFACE, no, [], [
case "$host" in
*-*-beos)
- use_beos=yes
+ :
;;
*)
- use_beos="no (the BeOS backend requires a BeOS platform)"
+ use_beos="no (requires a BeOS platform)"
;;
esac
])
@@ -277,21 +289,21 @@ AC_SUBST(PNG_REQUIRES)
dnl ===========================================================================
+GLITZ_MIN_VERSION=0.5.1
CAIRO_BACKEND_ENABLE(glitz, glitz, glitz, GLITZ_SURFACE, no, [glitz], [
- PKG_CHECK_MODULES(GLITZ, glitz >= 0.5.1, [
- GLITZ_REQUIRES=glitz
- use_glitz=yes], [use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"])
+ PKG_CHECK_MODULES(GLITZ, glitz >= $GLITZ_MIN_VERSION, [
+ GLITZ_REQUIRES=glitz], [use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"])
])
if test "x$use_glitz" = "xyes";then
- PKG_CHECK_MODULES(GLITZ_AGL, glitz-agl >= 0.5.1,
- [have_glitz_agl=yes], [have_glitz_agl=no])
- PKG_CHECK_MODULES(GLITZ_EGL, glitz-egl >= 0.5.1,
- [have_glitz_egl=yes], [have_glitz_egl=no])
- PKG_CHECK_MODULES(GLITZ_GLX, glitz-glx >= 0.5.1,
- [have_glitz_glx=yes], [have_glitz_glx=no])
- PKG_CHECK_MODULES(GLITZ_WGL, glitz-wgl >= 0.5.1,
- [have_glitz_wgl=yes], [have_glitz_wgl=no])
+ PKG_CHECK_MODULES(GLITZ_AGL, glitz-agl >= $GLITZ_MIN_VERSION,
+ [have_glitz_agl=yes], [have_glitz_agl=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_EGL, glitz-egl >= $GLITZ_MIN_VERSION,
+ [have_glitz_egl=yes], [have_glitz_egl=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_GLX, glitz-glx >= $GLITZ_MIN_VERSION,
+ [have_glitz_glx=yes], [have_glitz_glx=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_WGL, glitz-wgl >= $GLITZ_MIN_VERSION,
+ [have_glitz_wgl=yes], [have_glitz_wgl=no; echo $MYSTUFF_PKG_ERRORS])
if test "x$have_glitz_agl" = "xyes";then
AC_DEFINE(CAIRO_CAN_TEST_GLITZ_AGL_SURFACE, 1, [define if glitz backend can be tested against agl])
@@ -320,7 +332,7 @@ AC_SUBST(GLITZ_REQUIRES)
dnl ===========================================================================
CAIRO_BACKEND_ENABLE(directfb, directfb, directfb, DIRECTFB_SURFACE, no, [directfb], [
- PKG_CHECK_MODULES(DIRECTFB, directfb, [use_directfb=yes], [
+ PKG_CHECK_MODULES(DIRECTFB, directfb, , [
use_directfb="no (requires directfb http://www.directfb.org)"])
])
@@ -329,9 +341,8 @@ CAIRO_LIBS="$CAIRO_LIBS $DIRECTFB_LIBS"
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(freetype, freetype font, ft, FT_FONT, auto, [freetype2 fontconfig], [
- PKG_CHECK_MODULES(FONTCONFIG, fontconfig,
- [use_freetype=yes], [use_freetype=no])
+CAIRO_BACKEND_ENABLE(ft, FreeType font, freetype, FT_FONT, auto, [freetype2 fontconfig], [
+ PKG_CHECK_MODULES(FONTCONFIG, fontconfig, , [use_ft=no])
_CHECK_FUNCS_WITH_FLAGS(FcFini, $FONTCONFIG_CFLAGS, $FONTCONFIG_LIBS)
])
@@ -344,7 +355,7 @@ CAIRO_LIBS="$CAIRO_LIBS $FONTCONFIG_LIBS"
# Requires.private, but at least up to 2003-06-07, there was no
# freetype2.pc in the release.
#
-# Freetype versions come in three forms:
+# FreeType versions come in three forms:
# release (such as 2.1.5)
# libtool (such as 9.4.3) (returned by freetype-config and pkg-config)
# platform-specific/soname (such as 6.3.4)
@@ -358,7 +369,7 @@ FREETYPE_MIN_RELEASE=2.1.0
# libtool-specific version - this is what is checked
FREETYPE_MIN_VERSION=8.0.2
-if test "x$use_freetype" = "xyes"; then
+if test "x$use_ft" = "xyes"; then
PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
[freetype_pkgconfig=yes], [freetype_pkgconfig=no])
@@ -374,7 +385,7 @@ if test "x$use_freetype" = "xyes"; then
fi
if test "$FREETYPE_CONFIG" = "no" ; then
AC_MSG_WARN([No freetype-config script found in path or FREETYPE_CONFIG])
- use_freetype=no
+ use_ft=no
else
AC_MSG_CHECKING(freetype2 libtool version)
@@ -385,7 +396,7 @@ if test "x$use_freetype" = "xyes"; then
if test $VERSION_DEC -lt $MIN_VERSION_DEC; then
AC_MSG_RESULT($FREETYPE_VERSION - Too old)
AC_MSG_WARN([$FREETYPE_VERSION - version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required])
- use_freetype=no
+ use_ft=no
else
AC_MSG_RESULT($FREETYPE_VERSION - OK)
@@ -401,7 +412,7 @@ fi
have_ft_load_sfnt_table=no
-if test "x$use_freetype" = "xyes"; then
+if test "x$use_ft" = "xyes"; then
AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CONFIG_CFLAGS)
@@ -439,7 +450,7 @@ dnl ===========================================================================
CAIRO_BACKEND_ENABLE(ps, PostScript, ps, PS_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_ps="no (PS backend requires FreeType 2.1.4 or newer)"
+ use_ps="no (requires FreeType 2.1.4 or newer)"
fi
])
@@ -461,7 +472,7 @@ dnl ===========================================================================
CAIRO_BACKEND_ENABLE(pdf, PDF, pdf, PDF_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_pdf="no (PDF backend requires FreeType 2.1.4 or newer)"
+ use_pdf="no (requires FreeType 2.1.4 or newer)"
fi
])
@@ -490,7 +501,7 @@ dnl ===========================================================================
CAIRO_BACKEND_ENABLE(svg, SVG, svg, SVG_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_svg="no (SVG backend requires FreeType 2.1.4 or newer)"
+ use_svg="no (requires FreeType 2.1.4 or newer)"
fi
])
@@ -512,9 +523,9 @@ dnl ===========================================================================
dnl This check should default to 'auto' once we have code to actually
dnl check for the atsui font backend.
-CAIRO_BACKEND_ENABLE(atsui, atsui font, atsui, ATSUI_FONT, no, [], [
+CAIRO_BACKEND_ENABLE(atsui, ATSUI font, atsui, ATSUI_FONT, no, [], [
dnl There is no pkgconfig for atsui; lets do a header check
- AC_CHECK_HEADER(Carbon/Carbon.h, [use_atsui=yes], [use_atsui=no])
+ AC_CHECK_HEADER(Carbon/Carbon.h, , [use_atsui=no])
])
dnl ===========================================================================
@@ -747,7 +758,7 @@ echo " BeOS: $use_beos"
echo " DirectFB: $use_directfb"
echo ""
echo "the following font backends:"
-echo " FreeType: $use_freetype"
+echo " FreeType: $use_ft"
echo " Win32: $use_win32_font"
echo " ATSUI: $use_atsui"
echo ""
@@ -762,7 +773,7 @@ echo "using CFLAGS:"
echo $CAIRO_CFLAGS
echo ""
-if test x"$use_freetype" != "xyes" && \
+if test x"$use_ft" != "xyes" && \
test x"$use_win32_font" != "xyes" && \
test x"$use_atsui" != "xyes" ; then