Add stubs for Direct3D9 backend.
[cairo/gpu.git] / configure.ac
blobb0e4691df5bf8afb03d6c400428b2fc13235cc0f
1 AC_PREREQ(2.59)
2 CAIRO_PARSE_VERSION
3 AC_INIT([cairo],
4         [cairo_version_major.cairo_version_minor.cairo_version_micro],
5         [http://bugs.freedesktop.org/enter_bug.cgi?product=cairo])
6 AC_CONFIG_SRCDIR(src/cairo.h)
7 AC_CONFIG_HEADERS(config.h)
8 AC_CONFIG_AUX_DIR(build)
9 AC_CONFIG_MACRO_DIR(build)
10 AM_INIT_AUTOMAKE([1.9.6 gnu -Wall no-define])
11 AC_LIBTOOL_WIN32_DLL dnl Must be called before AC_PROG_LIBTOOL
12 AC_PROG_LIBTOOL dnl ([1.4]) Don't remove!
13 DOLT dnl Make my libtool fast!
14 GTK_DOC_CHECK([1.6])
16 dnl ===========================================================================
17 dnl
18 dnl The order of the includes here is rather important
19 dnl
20 m4_include(build/configure.ac.version)  dnl macros setting up various version declares
21 m4_include(build/configure.ac.tools)    dnl checks for tools we use
22 m4_include(build/configure.ac.features) dnl macros for backend/feature handling
23 m4_include(build/configure.ac.warnings) dnl checks for compiler warning
24 m4_include(build/configure.ac.system)   dnl checks for system functions, headers, libs
25 m4_include(build/configure.ac.analysis) dnl checks for analysis tools (lcov, etc)
26 m4_include(build/configure.ac.noversion) dnl disable builtin libtool versioning
27 AC_CACHE_SAVE
29 dnl ===========================================================================
31 AC_CHECK_LIB(z, compress,
32          [AC_CHECK_HEADER(zlib.h, [
33           have_libz=yes
34           AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if you have zlib available])
35          ],
36          [have_libz="no (requires zlib http://www.gzip.org/zlib/)"])],
37          [have_libz="no (requires zlib http://www.gzip.org/zlib/)"])
39 dnl ===========================================================================
41 CAIRO_ENABLE_SURFACE_BACKEND(xlib, Xlib, auto, [
42   xlib_REQUIRES="x11"
43   PKG_CHECK_MODULES(xlib, $xlib_REQUIRES, ,
44                     [AC_MSG_RESULT(no)
45                      xlib_REQUIRES=""
46                      AC_PATH_XTRA
47                      if test "x$no_x" = xyes; then
48                        use_xlib="no (requires X development libraries)"
49                      else
50                        xlib_NONPKGCONFIG_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
51                        xlib_NONPKGCONFIG_CFLAGS=$X_CFLAGS
52                      fi])
55 CAIRO_ENABLE_SURFACE_BACKEND(xlib_xrender, Xlib Xrender, auto, [
56   if test "x$use_xlib" != "xyes"; then
57     use_xlib_xrender="no (requires --enable-xlib)"
58   else
59     dnl Check for Xrender header files if the Xrender package is not installed:
60     xlib_xrender_BASE=cairo-xlib
61     xlib_xrender_REQUIRES="xrender >= 0.6"
62     PKG_CHECK_MODULES(xlib_xrender, $xlib_xrender_REQUIRES, ,
63                       [AC_MSG_RESULT(no)
64                        xlib_xrender_REQUIRES=""
65                        old_CPPFLAGS=$CPPFLAGS
66                        CPPFLAGS="$CPPFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS"
67                        AC_CHECK_HEADER(X11/extensions/Xrender.h,
68                                        [xlib_xrender_NONPKGCONFIG_LIBS="-lXrender"],
69                                        [use_xlib_xrender="no (requires $xlib_xrender_REQUIRES http://freedesktop.org/Software/xlibs)"])
70                        CPPFLAGS=$old_CPPFLAGS
71                       ])
72   fi
75 dnl ===========================================================================
77 CAIRO_ENABLE_SURFACE_BACKEND(xcb, XCB, no, [
78   xcb_REQUIRES="xcb >= 0.9.92 xcb-render >= 0.9.92 xcb-renderutil"
79   PKG_CHECK_MODULES(xcb, $xcb_REQUIRES, , [AC_MSG_RESULT(no)
80   use_xcb="no (requires $xcb_REQUIRES http://xcb.freedesktop.org)"])
83 dnl ===========================================================================
85 CAIRO_ENABLE_SURFACE_BACKEND(qt, Qt, no, [
86   qt_REQUIRES="QtGui >= 4.4.0"
87   PKG_CHECK_MODULES(qt, $qt_REQUIRES, ,
88                     [AC_MSG_RESULT(no)
89                      qt_REQUIRES=""
90                      use_qt="no (requires Qt4 development libraries)"
91                      ])
94 dnl ===========================================================================
96 CAIRO_ENABLE_SURFACE_BACKEND(quartz, Quartz, auto, [
97   dnl There is no pkgconfig for quartz; lets do a header check
98   AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h, , [use_quartz="no (requires ApplicationServices framework)"])
99   if test "x$use_quartz" != "xyes" ; then
100     dnl check for CoreGraphics as a separate framework
101     AC_CHECK_HEADER(CoreGraphics/CoreGraphics.h, , [use_quartz="no (requires CoreGraphics framework)"])
102     quartz_LIBS="-Xlinker -framework -Xlinker CoreGraphics"
103   else
104     quartz_LIBS="-Xlinker -framework -Xlinker ApplicationServices"
105   fi
108 CAIRO_ENABLE_FONT_BACKEND(quartz_font, Quartz, auto, [
109   use_quartz_font=$use_quartz
112 CAIRO_ENABLE_SURFACE_BACKEND(quartz_image, Quartz Image, no, [
113   use_quartz_image=$use_quartz
116 dnl ===========================================================================
118 CAIRO_ENABLE_SURFACE_BACKEND(win32, Microsoft Windows, auto, [
119   if test "x$have_windows" != xyes; then
120     use_win32="no (requires a Win32 platform)"
121   fi
122   win32_LIBS="-lgdi32 -lmsimg32"
125 CAIRO_ENABLE_FONT_BACKEND(win32_font, Microsoft Windows, auto, [
126   use_win32_font=$use_win32
129 test_win32_printing=no
130 if test "x$use_win32" = "xyes"; then
131   AC_CHECK_PROG(GS, gs, gs)
132   if test "$GS"; then
133     AC_DEFINE([CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE], 1, [Define to 1 if the Win32 Printing backend can be tested (needs ghostscript)])
134     test_win32_printing="yes"
135   else
136     AC_MSG_WARN([Win32 Printing backend will not be tested since ghostscript is not available])
137     test_win32_printing="no (requires ghostscript)"
138   fi
141 AM_CONDITIONAL(CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE, test "x$test_win32_printing" = "xyes")
143 dnl ===========================================================================
145 CAIRO_ENABLE_SURFACE_BACKEND(os2, OS/2, no, [
146   case "$host" in
147     *-*-os2*)
148       :
149       ;;
150     *)
151       use_os2="no (requires an OS/2 platform)"
152       ;;
153   esac
156 dnl ===========================================================================
158 CAIRO_ENABLE_SURFACE_BACKEND(beos, BeOS/Zeta, no, [
159   case "$host" in
160     *-*-beos)
161       beos_LIBS=""
162       dnl Add libbe and libzeta if available
163       AC_CHECK_LIB(be,main,beos_LIBS="$beos_LIBS -lbe")
164       AC_CHECK_LIB(zeta,main,beos_LIBS="$beos_LIBS -lzeta")
165       ;;
166     *)
167       use_beos="no (requires a BeOS platform)"
168       ;;
169   esac
172 dnl ===========================================================================
174 CAIRO_ENABLE_FUNCTIONS(png, PNG, yes, [
175   use_png=no
176   AC_ARG_VAR([png_REQUIRES], [module name for libpng to search for using pkg-config])
177   if test "x$png_REQUIRES" = x; then
178     # libpng13 is GnuWin32's libpng-1.2.8 :-(
179     for l in libpng12 libpng13 libpng10 libpng; do
180       if $PKG_CONFIG --exists $l ; then
181         png_REQUIRES=$l
182         use_png=yes
183         break
184       fi
185     done
186   else
187     use_png=yes
188   fi
190   if test "x$use_png" = "xyes" ; then 
191     PKG_CHECK_MODULES(png, $png_REQUIRES, , AC_MSG_RESULT(no))
192   else
193     AC_MSG_WARN([Could not find libpng in the pkg-config search path])
194   fi    
197 dnl ===========================================================================
198 CAIRO_ENABLE_SURFACE_BACKEND(gpu_gl, gpu_gl, no, [
199   gpu_gl_REQUIRES="gl"
200   PKG_CHECK_MODULES(gl, $gpu_gl_REQUIRES, , [AC_MSG_RESULT(no)
201   use_gpu_gl="no (requires gl.pc)"])
203   AC_CHECK_LIB(GLEW, glewInit, [
204     AC_CHECK_HEADER(GL/glew.h, [], [
205       use_gpu_gl="no (requires glew http://glew.sourceforge.net/)"
206     ])
207   ], [
208     use_gpu_gl="no (requires glew http://glew.sourceforge.net/)"
209   ])
210   gpu_gl_NONPKGCONFIG_LIBS="-lGLEW"
213 dnl ===========================================================================
214 CAIRO_ENABLE_SURFACE_BACKEND(gpu_gallium, gpu_gallium, no, [
215   AC_ARG_WITH([gallium],
216             [AS_HELP_STRING([--with-gallium=PATH],
217               [use Gallium library in specified path])],
218             [],
219             [use_gpu_gallium="no (use --with-gallium=PATH to specify the path to src/gallium in a built Mesa source tree)"])
221   gpu_gallium_NONPKGCONFIG_CFLAGS="-I$with_gallium/include -I$with_gallium/auxiliary -I$with_gallium/drivers"
222   gpu_gallium_NONPKGCONFIG_LIBS="-L$with_gallium/drivers/softpipe -L$with_gallium/auxiliary/draw -L$with_gallium/auxiliary/rtasm -L$with_gallium/auxiliary/translate -L$with_gallium/auxiliary/util -L$with_gallium/auxiliary/cso_cache -L$with_gallium/auxiliary/tgsi -L$with_gallium/drivers/trace -L$with_gallium/auxiliary/rbug -ltrace -lrbug -lsoftpipe -ldraw -ltranslate -ltgsi -lcso_cache -lrtasm -lutil"
225 dnl ===========================================================================
227 GLITZ_MIN_VERSION=0.5.1
228 CAIRO_ENABLE_SURFACE_BACKEND(glitz, glitz, no, [
229   glitz_REQUIRES="glitz >= $GLITZ_MIN_VERSION"
230   PKG_CHECK_MODULES(glitz, $glitz_REQUIRES, , [AC_MSG_RESULT(no)
231   use_glitz="no (requires $glitz_REQUIRES http://freedesktop.org/Software/glitz)"])
234 if test "x$use_glitz" = "xyes";then
235   PKG_CHECK_MODULES(GLITZ_AGL, glitz-agl >= $GLITZ_MIN_VERSION,
236    [have_glitz_agl=yes], [have_glitz_agl=no; AC_MSG_RESULT(no)])
237   PKG_CHECK_MODULES(GLITZ_EGL, glitz-egl >= $GLITZ_MIN_VERSION,
238    [have_glitz_egl=yes], [have_glitz_egl=no; AC_MSG_RESULT(no)])
239   PKG_CHECK_MODULES(GLITZ_GLX, glitz-glx >= $GLITZ_MIN_VERSION,
240    [have_glitz_glx=yes], [have_glitz_glx=no; AC_MSG_RESULT(no)])
241   PKG_CHECK_MODULES(GLITZ_WGL, glitz-wgl >= $GLITZ_MIN_VERSION,
242    [have_glitz_wgl=yes], [have_glitz_wgl=no; AC_MSG_RESULT(no)])
244   if test "x$have_glitz_agl" = "xyes";then
245     AC_DEFINE(CAIRO_CAN_TEST_GLITZ_AGL_SURFACE, 1, [define if glitz backend can be tested against agl])
246   fi
247   if test "x$have_glitz_egl" = "xyes";then
248     AC_DEFINE(CAIRO_CAN_TEST_GLITZ_EGL_SURFACE, 1, [define if glitz backend can be tested against egl])
249   fi
250   if test "x$have_glitz_glx" = "xyes";then
251     AC_DEFINE(CAIRO_CAN_TEST_GLITZ_GLX_SURFACE, 1, [define if glitz backend can be tested against glx])
252   fi
253   if test "x$have_glitz_wgl" = "xyes";then
254     AC_DEFINE(CAIRO_CAN_TEST_GLITZ_WGL_SURFACE, 1, [define if glitz backend can be tested against wgl])
255   fi
258 AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_AGL_SURFACE, test "x$have_glitz_agl" = "xyes")
259 AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_EGL_SURFACE, test "x$have_glitz_egl" = "xyes")
260 AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_GLX_SURFACE, test "x$have_glitz_glx" = "xyes")
261 AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_WGL_SURFACE, test "x$have_glitz_wgl" = "xyes")
263 dnl ===========================================================================
265 CAIRO_ENABLE_SURFACE_BACKEND(directfb, directfb, no, [
266   directfb_REQUIRES=directfb
267   PKG_CHECK_MODULES(directfb, $directfb_REQUIRES, , AC_MSG_RESULT(no)
268                     [use_directfb="no (requires $directfb_REQUIRES http://www.directfb.org)"])
271 dnl ===========================================================================
273 any2ppm_cs=no
274 CAIRO_ENABLE_SURFACE_BACKEND(script, script, no, [
275   any2ppm_cs=yes
278 dnl ===========================================================================
280 # We use pkg-config to look for freetype2, but fall back to
281 # freetype-config if it fails.  We prefer pkg-config, since we can
282 # then just put freetype2 >= $FREETYPE_MIN_VERSION in
283 # Requires.private, but at least up to 2003-06-07, there was no
284 # freetype2.pc in the release.
286 # FreeType versions come in three forms:
287 #   release (such as 2.1.9)
288 #   libtool (such as 9.7.3) (returned by freetype-config and pkg-config)
289 #   platform-specific/soname (such as 6.3.4)
290 # and they recommend you never use the platform-specific version
291 # (see docs/VERSION.DLL in freetype2 sources)
293 # Set these as appropriate:
295 # release number - for information only
296 FREETYPE_MIN_RELEASE=2.1.9
297 # libtool-specific version - this is what is checked
298 FREETYPE_MIN_VERSION=9.7.3
300 CAIRO_ENABLE_FONT_BACKEND(ft, FreeType, auto, [
302     PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
303                       [freetype_pkgconfig=yes],
304                       [AC_MSG_RESULT(no)
305                        freetype_pkgconfig=no])
306   
307     if test "x$freetype_pkgconfig" = "xyes"; then
308       ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES"
309     else
310   
311       if test -z "$FREETYPE_CONFIG"; then
312         AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
313       fi
314       if test "x$FREETYPE_CONFIG" = "xno" ; then
315         use_ft='no (freetype-config not found in path or $FREETYPE_CONFIG)'
316       else
317         AC_MSG_CHECKING(freetype2 libtool version)
319         FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
320         AX_COMPARE_VERSION([$FREETYPE_VERSION], [gt], [$FREETYPE_MIN_VERSION],
321                            [AC_MSG_RESULT($FREETYPE_VERSION - OK)
322                            ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
323                            ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs`],
324                            [AC_MSG_RESULT($FREETYPE_VERSION - Too old)
325                            use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)"])
326       fi
327     fi
329   ft_CFLAGS="$FREETYPE_CFLAGS"
330   ft_LIBS="$FREETYPE_LIBS"
333 FONTCONFIG_MIN_VERSION=2.2.95
334 CAIRO_ENABLE_FONT_BACKEND(fc, Fontconfig, auto, [
335   use_fc=$use_ft
336   if test "x$use_fc" = "xyes"; then
337     fc_REQUIRES="fontconfig >= $FONTCONFIG_MIN_VERSION"
338     PKG_CHECK_MODULES(FONTCONFIG, $fc_REQUIRES,,
339                       [AC_MSG_RESULT(no); use_fc="no (requires $fc_REQUIRES)"])
340   fi
341   fc_CFLAGS="$FONTCONFIG_CFLAGS"
342   fc_LIBS="$FONTCONFIG_LIBS"
345 if test "x$use_ft" = "xyes"; then
346   _save_libs="$LIBS"
347   _save_cflags="$CFLAGS"
348   LIBS="$LIBS $ft_LIBS"
349   CFLAGS="$CFLAGS $ft_CFLAGS"
350   AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
351                   HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
352                   HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
353                   [#include <ft2build.h>
354                    #include FT_FREETYPE_H])
355   AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
356                      [FT_Bitmap_Size structure includes y_ppem field])
358   AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Library_SetLcdFilter)
360   LIBS="$_save_libs"
361   CFLAGS="$_save_cflags"
364 if test "x$use_fc" = "xyes"; then
365   CAIRO_CHECK_FUNCS_WITH_FLAGS(FcInit FcFini, [$FONTCONFIG_CFLAGS], [$FONTCONFIG_LIBS])
368 dnl ===========================================================================
370 AC_ARG_ENABLE(pthread,
371   AS_HELP_STRING([--disable-pthread],
372                  [Do not use pthread]),
373   [use_pthread=$enableval], [use_pthread=auto])
375 have_pthread=no
376 if test "x$use_pthread" != "xno"; then
377   AC_CHECK_HEADERS([pthread.h], have_pthread=yes, have_pthread=no)
379 AM_CONDITIONAL(HAVE_PTHREAD, test "x$have_pthread" = "xyes")
380 if test "x$have_pthread" = xno -a "x$use_pthread" = xyes; then
381   AC_MSG_ERROR([pthread requested but not found])
384 dnl ===========================================================================
386 CAIRO_ENABLE_SURFACE_BACKEND(ps, PostScript, yes, [
387     # The ps backend requires zlib.
388     use_ps=$have_libz
389     ps_NONPKGCONFIG_LIBS=-lz
392 dnl ===========================================================================
394 SPECTRE_VERSION_REQUIRED=0.2.0
395 test_ps=no
396 any2ppm_ps=no
397 if test "x$use_ps" = "xyes"; then
398   AC_CHECK_PROG(GS, gs, gs)
399   if test "$GS"; then
400     AC_DEFINE([CAIRO_CAN_TEST_PS_SURFACE], 1, [Define to 1 if the PS backend can be tested (needs ghostscript)])
401     test_ps="yes"
402   else
403     AC_MSG_WARN([PS backend will not be tested since ghostscript is not available])
404     test_ps="no (requires ghostscript)"
405   fi
407   libspectre_DEPENDENCY="libspectre >= $SPECTRE_VERSION_REQUIRED"
408   PKG_CHECK_MODULES(LIBSPECTRE, $libspectre_DEPENDENCY,
409                     [any2ppm_ps=yes],
410                     [AC_MSG_RESULT(no)])
413 AM_CONDITIONAL(CAIRO_CAN_TEST_PS_SURFACE, test "x$test_ps" = "xyes")
414 AM_CONDITIONAL(CAIRO_HAS_SPECTRE, test "x$any2ppm_ps" = "xyes")
415 if test "x$any2ppm_ps" = "xyes"; then
416     AC_DEFINE([CAIRO_HAS_SPECTRE], 1, [Define to 1 if libspectre is available])
418 AC_SUBST(LIBSPECTRE_CFLAGS)
419 AC_SUBST(LIBSPECTRE_LIBS)
421 dnl ===========================================================================
423 CAIRO_ENABLE_SURFACE_BACKEND(pdf, PDF, yes, [
424     # The pdf backend requires zlib.
425     use_pdf=$have_libz
426     pdf_NONPKGCONFIG_LIBS=-lz
429 dnl ===========================================================================
431 # poppler-0.9.2 has an important bug fixes for user-font and an
432 # enhancement not to gobble nearly 1GiB of memory during test/large-font.
433 POPPLER_VERSION_REQUIRED=0.9.2
434 test_pdf=no
435 any2ppm_pdf=no
436 if test "x$use_pdf" = "xyes"; then
437   poppler_DEPENDENCY="poppler-glib >= $POPPLER_VERSION_REQUIRED"
438   PKG_CHECK_MODULES(POPPLER, $poppler_DEPENDENCY,
439                     [CAIRO_CHECK_FUNCS_WITH_FLAGS(poppler_page_render, [$POPPLER_CFLAGS], [$POPPLER_LIBS],
440                     [test_pdf=yes; any2ppm_pdf=yes],
441                     [AC_MSG_RESULT(no); test_pdf="no (requires $poppler_DEPENDENCY)"])],
442                     [AC_MSG_RESULT(no); test_pdf="no (requires $poppler_DEPENDENCY)"])
443   if test "x$test_pdf" = "xyes"; then
444     AC_DEFINE([CAIRO_CAN_TEST_PDF_SURFACE], 1, [Define to 1 if the PDF backend can be tested (need poppler and other dependencies for pdf2png)])
445   else
446     AC_MSG_WARN([PDF backend will not be tested since poppler >= $POPPLER_VERSION_REQUIRED is not available])
447   fi
450 AM_CONDITIONAL(CAIRO_CAN_TEST_PDF_SURFACE, test "x$test_pdf" = "xyes")
451 AC_SUBST(POPPLER_CFLAGS)
452 AC_SUBST(POPPLER_LIBS)
454 AM_CONDITIONAL(CAIRO_HAS_MULTI_PAGE_SURFACES, test "x$use_ps" = "xyes" -o "x$use_pdf" = "xyes")
456 dnl ===========================================================================
458 CAIRO_ENABLE_SURFACE_BACKEND(svg, SVG, yes, [
459   if test "x$use_png" != "xyes"; then
460     use_svg="no (requires --enable-png)"
461   fi
464 LIBRSVG_VERSION_REQUIRED=2.15.0
465 test_svg=no
466 any2ppm_svg=no
467 if test "x$use_svg" = "xyes"; then
468   librsvg_DEPENDENCY="librsvg-2.0 >= $LIBRSVG_VERSION_REQUIRED"
469   PKG_CHECK_MODULES(LIBRSVG, $librsvg_DEPENDENCY gdk-2.0,
470                     [CAIRO_CHECK_FUNCS_WITH_FLAGS(rsvg_pixbuf_from_file, [$LIBRSVG_CFLAGS], [$LIBRSVG_LIBS],
471                     [test_svg=yes; any2ppm_svg=yes],
472                     [AC_MSG_RESULT(no); test_svg="no (requires $librsvg_DEPENDENCY)"])],
473                     [AC_MSG_RESULT(no); test_svg="no (requires $librsvg_DEPENDENCY)"])
474   if test "x$test_svg" = "xyes"; then
475     AC_DEFINE([CAIRO_CAN_TEST_SVG_SURFACE], 1, [Define to 1 if the SVG backend can be tested])
476   else
477     AC_MSG_WARN([SVG backend will not be tested since librsvg >= $LIBRSVG_VERSION_REQUIRED is not available])
478   fi
481 AM_CONDITIONAL(CAIRO_CAN_TEST_SVG_SURFACE, test "x$test_svg" = "xyes")
482 AC_SUBST(LIBRSVG_CFLAGS)
483 AC_SUBST(LIBRSVG_LIBS)
485 dnl ===========================================================================
487 dnl XXX make this a private feature?
488 CAIRO_ENABLE(test_surfaces, test surfaces, no)
490 dnl ===========================================================================
492 CAIRO_ENABLE_SURFACE_BACKEND(image, image, always, [
493   pixman_REQUIRES="pixman-1 >= 0.15.0"
494   PKG_CHECK_MODULES(pixman, $pixman_REQUIRES, , [AC_MSG_RESULT(no)
495   use_image="no (requires $pixman_REQUIRES http://cairographics.org/releases/)"])
496   image_REQUIRES=$pixman_REQUIRES
497   image_CFLAGS=$pixman_CFLAGS
498   image_LIBS=$pixman_LIBS
501 dnl ===========================================================================
503 CAIRO_ENABLE_FONT_BACKEND(user, user, always)
505 dnl ===========================================================================
506 dnl Default to quick testing during development, but force a full test before
507 dnl release
509 AC_ARG_ENABLE(full-testing,
510   AS_HELP_STRING([--enable-full-testing],
511                  [Sets the test suite to perform full testing by default, which
512                   will dramatically slow down make check, but is a
513                   *requirement* before release.]), [
514 if test "x$enableval" = "xyes"; then
515     CAIRO_TEST_MODE=full
516     AC_SUBST(CAIRO_TEST_MODE)
520 dnl ===========================================================================
521 dnl Build the external converter if we have any of the test backends
522 AM_CONDITIONAL(BUILD_ANY2PPM,
523                test "x$any2ppm_svg" = "xyes" \
524                  -o "x$any2ppm_pdf" = "xyes" \
525                  -o "x$any2ppm_ps"  = "xyes" \
526                  -o "x$any2ppm_cs"  = "xyes")
528 dnl ===========================================================================
529 dnl The tracing utility requires LD_PRELOAD, so only build it for systems
530 dnl that are known to work.
532 case $host in
533 *-linux*|*-*bsd*)
534         have_ld_preload="yes"
535         ;;
537         have_ld_preload="no"
538         ;;
539 esac
541 AM_CONDITIONAL(BUILD_TRACE,
542                test "x$have_ld_preload" = "xyes" \
543                -a "x$have_libz" = "xyes")
545 AC_CHECK_LIB(bfd, bfd_openr,
546          [AC_CHECK_HEADER(bfd.h, [have_bfd=yes],
547          [have_bfd=no])], [have_bfd=no])
548 if test "x$have_bfd" = "xyes"; then
549     AC_DEFINE([HAVE_BFD], [1], [Define to 1 if you have the binutils development files installed])
550     BFD_LIBS=-lbfd
551     AC_SUBST(BFD_LIBS)
554 dnl ===========================================================================
556 AC_ARG_ENABLE(some-floating-point,
557   AS_HELP_STRING([--disable-some-floating-point],
558                  [Disable certain code paths that rely heavily on double precision
559                   floating-point calculation. This option can improve
560                   performance on systems without a double precision floating-point
561                   unit, but might degrade performance on those that do.]), [
562 if test "x$enableval" = "xno"; then
563   # A value of 'no' for $enableval means that they want to disable, which
564   # means 'yes' for $disable_some_floating_point.
565   disable_some_floating_point=yes
567 ], [disable_some_floating_point=no])
569 AM_CONDITIONAL(DISABLE_SOME_FLOATING_POINT,
570                test "x$disable_some_floating_point" = "xyes")
571 if test "x$disable_some_floating_point" = "xyes"; then
572   AC_DEFINE(DISABLE_SOME_FLOATING_POINT, 1,
573             [Define to 1 to disable certain code paths that rely heavily on
574              double precision floating-point calculation])
577 dnl ===========================================================================
579 # We use GTK+ for some utility/debugging tools
580 PKG_CHECK_MODULES(gtk, "gtk+-2.0",have_gtk=yes, have_gtk=no)
581 AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" = "xyes")
583 SHAVE_INIT([build], [enable]) # dnl Make the output pretty
585 AC_CONFIG_FILES([
586 build/shave
587 build/shave-libtool
588 Makefile
589 boilerplate/Makefile
590 src/Makefile
591 test/Makefile
592 test/pdiff/Makefile
593 perf/Makefile
594 util/Makefile
595 util/cairo-script/Makefile
596 util/cairo-script/examples/Makefile
597 util/cairo-trace/Makefile
598 util/cairo-trace/cairo-trace
599 doc/Makefile
600 doc/public/Makefile
603 AC_OUTPUT
604 CAIRO_REPORT