AC_INIT(src/cairo.h) dnl =========================================================================== # Package version number, (as distinct from shared library version) CAIRO_VERSION=0.3.0 # libtool shared library version # Increment if the interface has additions, changes, removals. LT_CURRENT=1 # Increment any time the source changes; set to # 0 if you increment CURRENT LT_REVISION=0 # Increment if any interfaces have been added; set to 0 # if any interfaces have been removed. removal has # precedence over adding, so set to 0 if both happened. LT_AGE=0 VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" AC_SUBST(VERSION_INFO) dnl =========================================================================== AM_INIT_AUTOMAKE(cairo, $CAIRO_VERSION) AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE AC_PROG_CC AC_PROG_CPP AM_PROG_LIBTOOL AC_STDC_HEADERS AC_C_BIGENDIAN AC_CHECK_LIBM LIBS="$LIBS $LIBM" AC_CHECK_FUNCS(sincos) dnl =========================================================================== AC_ARG_ENABLE(xlib, [ --disable-xlib Disable cairo's Xlib backend], [use_xlib=$enableval], [use_xlib=yes]) if test "x$use_xlib" = "xyes"; then dnl Check for Xrender header files if the Xrender package is not installed: PKG_CHECK_MODULES(XRENDER, xrender >= 0.6, [ XRENDER_REQUIRES=xrender use_xlib=yes], [ AC_CHECK_HEADER(X11/extensions/Xrender.h, [ AC_PATH_XTRA XRENDER_LIBS="$X_LIBS -lXrender -lXext -lX11 $X_EXTRA_LIBS" use_xlib=yes], [ use_xlib="no (requires Xrender http://freedesktop.org/software/xlibs)"])]) fi if test "x$use_xlib" != "xyes"; then XLIB_SURFACE_FEATURE=CAIRO_HAS_NO_XLIB_SURFACE AM_CONDITIONAL(CAIRO_HAS_XLIB_SURFACE, false) else XLIB_SURFACE_FEATURE=CAIRO_HAS_XLIB_SURFACE AM_CONDITIONAL(CAIRO_HAS_XLIB_SURFACE, true) fi AC_SUBST(XLIB_SURFACE_FEATURE) AC_SUBST(XRENDER_REQUIRES) CAIRO_CFLAGS="$CAIRO_CFLAGS $XRENDER_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $XRENDER_LIBS" AC_ARG_ENABLE(quartz, [ --disable-quartz Disable cairo's quartz backend], [use_quartz=$enableval], [use_quartz=yes]) if test "x$use_quartz" = "xyes"; then dnl There is no pkgconfig for quartz; lets do a header check AC_CHECK_HEADER(Carbon/Carbon.h, [use_quartz=yes], [use_quartz=no]) fi if test "x$use_quartz" != "xyes"; then QUARTZ_SURFACE_FEATURE=CAIRO_HAS_NO_QUARTZ_SURFACE AM_CONDITIONAL(CAIRO_HAS_QUARTZ_SURFACE, false) else QUARTZ_SURFACE_FEATURE=CAIRO_HAS_QUARTZ_SURFACE QUARTZ_LIBS="-Xlinker -framework -Xlinker Carbon" AM_CONDITIONAL(CAIRO_HAS_QUARTZ_SURFACE, true) fi AC_SUBST(QUARTZ_SURFACE_FEATURE) CAIRO_LIBS="$CAIRO_LIBS $QUARTZ_LIBS" dnl =========================================================================== AC_ARG_ENABLE(xcb, [ --disable-xcb Disable cairo's XCB backend], [use_xcb=$enableval], [use_xcb=yes]) if test "x$use_xcb" = "xyes"; then PKG_CHECK_MODULES(XCB, xcb, [use_xcb=yes], [ use_xcb="no (requires XCB http://freedesktop.org/software/xcb)"]) fi if test "x$use_xcb" != "xyes"; then XCB_SURFACE_FEATURE=CAIRO_HAS_NO_XCB_SURFACE AM_CONDITIONAL(CAIRO_HAS_XCB_SURFACE, false) else XCB_SURFACE_FEATURE=CAIRO_HAS_XCB_SURFACE AM_CONDITIONAL(CAIRO_HAS_XCB_SURFACE, true) fi CAIRO_CFLAGS="$CAIRO_CFLAGS $XCB_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $XCB_LIBS" AC_SUBST(XCB_SURFACE_FEATURE) dnl =========================================================================== AC_ARG_ENABLE(ps, [ --disable-ps Disable cairo's PostScript backend], [use_ps=$enableval], [use_ps=yes]) if test "x$use_ps" != "xyes"; then PS_SURFACE_FEATURE=CAIRO_HAS_NO_PS_SURFACE AM_CONDITIONAL(CAIRO_HAS_PS_SURFACE, false) else PS_SURFACE_FEATURE=CAIRO_HAS_PS_SURFACE PS_LIBS=-lz AM_CONDITIONAL(CAIRO_HAS_PS_SURFACE, true) fi CAIRO_LIBS="$CAIRO_LIBS $PS_LIBS" AC_SUBST(PS_SURFACE_FEATURE) AC_SUBST(PS_LIBS) dnl =========================================================================== AC_ARG_ENABLE(pdf, [ --disable-pdf Disable cairo's PDF backend], [use_pdf=$enableval], [use_pdf=yes]) if test "x$use_pdf" != "xyes"; then PDF_SURFACE_FEATURE=CAIRO_HAS_NO_PDF_SURFACE AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, false) else PDF_SURFACE_FEATURE=CAIRO_HAS_PDF_SURFACE PDF_LIBS=-lz AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, true) fi CAIRO_LIBS="$CAIRO_LIBS $PDF_LIBS" AC_SUBST(PDF_SURFACE_FEATURE) AC_SUBST(PDF_LIBS) dnl =========================================================================== AC_ARG_ENABLE(png, [ --disable-png Disable cairo's PNG backend], [use_png=$enableval], [use_png=yes]) if test "x$use_png" = "xyes"; then PKG_CHECK_MODULES(PNG, libpng12, [ PNG_REQUIRES=libpng12 use_png=yes], [ PKG_CHECK_MODULES(PNG, libpng10, [ PNG_REQUIRES=libpng10 use_png=yes], [use_png="no (requires libpng http://www.libpng.org)"])]) fi if test "x$use_png" != "xyes"; then PNG_SURFACE_FEATURE=CAIRO_HAS_NO_PNG_SURFACE AM_CONDITIONAL(CAIRO_HAS_PNG_SURFACE, false) else PNG_SURFACE_FEATURE=CAIRO_HAS_PNG_SURFACE AM_CONDITIONAL(CAIRO_HAS_PNG_SURFACE, true) fi CAIRO_CFLAGS="$CAIRO_CFLAGS $PNG_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $PNG_LIBS" AC_SUBST(PNG_SURFACE_FEATURE) AC_SUBST(PNG_REQUIRES) dnl =========================================================================== AC_ARG_ENABLE(glitz, [ --disable-glitz Disable cairo's glitz backend], [use_glitz=$enableval], [use_glitz=yes]) if test "x$use_glitz" = "xyes"; then PKG_CHECK_MODULES(GLITZ, glitz >= 0.3.0, [ GLITZ_REQUIRES=glitz use_glitz=yes], [use_glitz="no (requires glitz http://freedesktop.org/software/glitz)"]) fi if test "x$use_glitz" != "xyes"; then GLITZ_SURFACE_FEATURE=CAIRO_HAS_NO_GLITZ_SURFACE AM_CONDITIONAL(CAIRO_HAS_GLITZ_SURFACE, false) else GLITZ_SURFACE_FEATURE=CAIRO_HAS_GLITZ_SURFACE AM_CONDITIONAL(CAIRO_HAS_GLITZ_SURFACE, true) fi CAIRO_CFLAGS="$CAIRO_CFLAGS $GLITZ_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $GLITZ_LIBS" AC_SUBST(GLITZ_SURFACE_FEATURE) AC_SUBST(GLITZ_REQUIRES) dnl =========================================================================== AC_ARG_ENABLE(sanity-checking, [ --disable-sanity Disable cairo's sanity checking routines], [check_sanity=$enableval], [check_sanity=yes]) if test "x$check_sanity" != "xyes"; then SANITY_CHECKING_FEATURE=CAIRO_NO_SANITY_CHECKING else SANITY_CHECKING_FEATURE=CAIRO_DO_SANITY_CHECKING fi AC_SUBST(SANITY_CHECKING_FEATURE) dnl =========================================================================== PKG_CHECK_MODULES(PIXMAN, libpixman >= 0.1.2) CAIRO_CFLAGS="$CAIRO_CFLAGS $PIXMAN_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $PIXMAN_LIBS" dnl =========================================================================== AC_ARG_ENABLE(freetype, [ --disable-freetype Disable cairo's freetype font backend], [use_freetype=$enableval], [use_freetype=yes]) if test "x$use_freetype" = "xyes"; then PKG_CHECK_MODULES(FONTCONFIG, fontconfig, [use_freetype=yes], [use_freetype=no]) fi CAIRO_CFLAGS="$CAIRO_CFLAGS $FONTCONFIG_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $FONTCONFIG_LIBS" # Test for freetype2 separate from pkg-config since at least up to # 2003-06-07, there was no freetype2.pc in the release. # # Freetype versions come in three forms: # release (such as 2.1.5) # libtool (such as 9.4.3) (returned by freetype-config) # platform-specific/soname (such as 6.3.4) # and they recommend you never use the platform-specific version # (see docs/VERSION.DLL in freetype2 sources) # # Set these as appropriate: # release number - for information only 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 -z "$FREETYPE_CONFIG"; then AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) fi if test "$FREETYPE_CONFIG" = "no" ; then AC_MSG_ERROR(No freetype-config script found in path or FREETYPE_CONFIG) fi AC_MSG_CHECKING(freetype2 libtool version) FREETYPE_VERSION=`$FREETYPE_CONFIG --version` VERSION_DEC=`echo $FREETYPE_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'` MIN_VERSION_DEC=`echo $FREETYPE_MIN_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'` if test $VERSION_DEC -lt $MIN_VERSION_DEC; then AC_MSG_ERROR($FREETYPE_VERSION - version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required) fi AC_MSG_RESULT($FREETYPE_VERSION - OK) FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` AC_SUBST(FREETYPE_CFLAGS) AC_SUBST(FREETYPE_LIBS) fi CAIRO_CFLAGS="$CAIRO_CFLAGS $FREETYPE_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS $FREETYPE_LIBS" if test "x$use_freetype" != "xyes"; then FT_FONT_FEATURE=CAIRO_HAS_NO_FT_FONT AM_CONDITIONAL(CAIRO_HAS_FT_FONT, false) else FT_FONT_FEATURE=CAIRO_HAS_FT_FONT AM_CONDITIONAL(CAIRO_HAS_FT_FONT, true) fi AC_SUBST(FT_FONT_FEATURE) dnl =========================================================================== dnl This check should default to 'yes' once we have code to actually dnl check for the atsui font backend. AC_ARG_ENABLE(atsui, [ --disable-atsui Disable cairo's atsui font backend], [use_atsui=$enableval], [use_atsui=yes]) if test "x$use_atsui" = "xyes"; then dnl There is no pkgconfig for atsui; lets do a header check AC_CHECK_HEADER(Carbon/Carbon.h, [use_atsui=yes], [use_atsui=no]) fi if test "x$use_atsui" != "xyes"; then ATSUI_FONT_FEATURE=CAIRO_HAS_NO_ATSUI_FONT AM_CONDITIONAL(CAIRO_HAS_ATSUI_FONT, false) else ATSUI_FONT_FEATURE=CAIRO_HAS_ATSUI_FONT AM_CONDITIONAL(CAIRO_HAS_ATSUI_FONT, true) fi AC_SUBST(ATSUI_FONT_FEATURE) dnl =========================================================================== dnl Checks for precise integer types AC_CHECK_TYPES([uint64_t, uint128_t]) dnl Use lots of warning flags with GCC 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 CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS" CAIRO_LIBS="$CAIRO_LIBS" AC_SUBST(CAIRO_CFLAGS) AC_SUBST(CAIRO_LIBS) dnl =========================================================================== AC_OUTPUT([ cairo.pc Makefile src/Makefile src/cairo-features.h test/Makefile ]) dnl =========================================================================== echo "" echo "cairo will be compiled with the following surface backends:" echo " Xlib: $use_xlib" echo " Quartz: $use_quartz" echo " XCB: $use_xcb" echo " PostScript: $use_ps" echo " PDF: $use_pdf" echo " PNG: $use_png" echo " glitz: $use_glitz" echo "" echo "and the following font backends:" echo " freetype: $use_freetype" echo " atsui: $use_atsui" echo ""