1dnl =========================================================================== 2dnl 3dnl LCOV 4dnl 5cairo_has_lcov=no 6AC_ARG_ENABLE(gcov, 7 AS_HELP_STRING([--enable-gcov], 8 [Enable gcov]), 9 [use_gcov=$enableval], [use_gcov=no]) 10 11if test "x$use_gcov" = "xyes"; then 12 dnl we need gcc: 13 if test "$GCC" != "yes"; then 14 AC_MSG_ERROR([GCC is required for --enable-gcov]) 15 fi 16 17 dnl Check if ccache is being used 18 AC_CHECK_PROG(SHTOOL, shtool, shtool) 19 case `$SHTOOL path $CC` in 20 *ccache*[)] gcc_ccache=yes;; 21 *[)] gcc_ccache=no;; 22 esac 23 24 if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then 25 AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) 26 fi 27 28 ltp_version_list="1.7 1.6 1.5 1.4" 29 AC_CHECK_PROG(LTP, lcov, lcov) 30 AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml) 31 32 if test "$LTP"; then 33 AC_CACHE_CHECK([for ltp version], cairo_cv_ltp_version, [ 34 cairo_cv_ltp_version=invalid 35 ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'` 36 for ltp_check_version in $ltp_version_list; do 37 if test "$ltp_version" = "$ltp_check_version"; then 38 cairo_cv_ltp_version="$ltp_check_version (ok)" 39 fi 40 done 41 ]) 42 fi 43 44 case $cairo_cv_ltp_version in 45 ""|invalid[)] 46 ;; 47 *) 48 cairo_has_lcov=yes 49 ;; 50 esac 51 52 if test "x$cairo_has_lcov" != "xyes"; then 53 AC_MSG_ERROR([[To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list. 54Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]]) 55 fi 56 57 if test -z "$LTP_GENHTML"; then 58 AC_MSG_ERROR([[Could not find genhtml from the LTP package. 59Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]]) 60 fi 61 62 AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov]) 63dnl PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir) 64 65 dnl Remove all optimization flags from CFLAGS 66 changequote({,}) 67 CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'` 68 CAIRO_CFLAGS=`echo "$CAIRO_CFLAGS" | $SED -e 's/-O[0-9]*//g'` 69 changequote([,]) 70 71 dnl Add the special gcc flags 72 dnl In order to workaround a debian bug in libtool where they strip 73 dnl $dependency_libs from the link line and CFLAGS, we need to pass 74 dnl --coverage via LDFLAGS. 75 CAIRO_CC_TRY_FLAG([--coverage],, 76 [ 77 CAIRO_CFLAGS="$CAIRO_CFLAGS -O0 --coverage" 78 CAIRO_LDFLAGS="$CAIRO_LDFLAGS -O0 --coverage" 79 ]) 80fi 81AM_CONDITIONAL(CAIRO_HAS_LCOV, test "x$cairo_has_lcov" = "xyes") 82 83dnl =========================================================================== 84dnl Check for some custom valgrind modules 85AC_ARG_ENABLE(valgrind, 86 AS_HELP_STRING([--disable-valgrind], 87 [Disable valgrind support]), 88 [use_valgrind=$enableval], [use_valgrind=yes]) 89 90if test "x$use_valgrind" = "xyes"; then 91 PKG_CHECK_MODULES(VALGRIND, valgrind, [ 92 _save_CFLAGS="$CFLAGS" 93 _save_CPPFLAGS="$CPPFLAGS" 94 CFLAGS="$CFLAGS $VALGRIND_CFLAGS" 95 CPPFLAGS="$CPPFLAGS $VALGRIND_CFLAGS" 96 AC_CHECK_HEADER([valgrind.h], [AC_DEFINE([HAVE_VALGRIND], [1], 97 [Define to 1 if you have Valgrind])]) 98 AC_CHECK_HEADER([lockdep.h], [AC_DEFINE([HAVE_LOCKDEP], [1], 99 [Define to 1 if you have the Valgrind lockdep tool])]) 100 AC_CHECK_HEADER([memfault.h], [AC_DEFINE([HAVE_MEMFAULT], [1], 101 [Define to 1 if you have the Valgrind memfault tool])]) 102 CAIRO_CFLAGS="$VALGRIND_CFLAGS $CAIRO_CFLAGS" 103 CFLAGS="$_save_CFLAGS" 104 CPPFLAGS="$_save_CPPFLAGS" 105 ], AC_MSG_RESULT(no)) 106fi 107