2008-09-03 20:06:26 -04:00
|
|
|
dnl ===========================================================================
|
|
|
|
|
dnl
|
|
|
|
|
dnl LCOV
|
|
|
|
|
dnl
|
|
|
|
|
cairo_has_lcov=no
|
|
|
|
|
AC_ARG_ENABLE(gcov,
|
|
|
|
|
AS_HELP_STRING([--enable-gcov],
|
|
|
|
|
[Enable gcov]),
|
|
|
|
|
[use_gcov=$enableval], [use_gcov=no])
|
|
|
|
|
|
|
|
|
|
if test "x$use_gcov" = "xyes"; then
|
|
|
|
|
dnl we need gcc:
|
|
|
|
|
if test "$GCC" != "yes"; then
|
|
|
|
|
AC_MSG_ERROR([GCC is required for --enable-gcov])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
dnl Check if ccache is being used
|
|
|
|
|
AC_CHECK_PROG(SHTOOL, shtool, shtool)
|
|
|
|
|
case `$SHTOOL path $CC` in
|
|
|
|
|
*ccache*[)] gcc_ccache=yes;;
|
|
|
|
|
*[)] gcc_ccache=no;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
|
|
|
|
|
AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
ltp_version_list="1.6 1.5 1.4"
|
|
|
|
|
AC_CHECK_PROG(LTP, lcov, lcov)
|
|
|
|
|
AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
|
|
|
|
|
|
|
|
|
|
if test "$LTP"; then
|
|
|
|
|
AC_CACHE_CHECK([for ltp version], cairo_cv_ltp_version, [
|
|
|
|
|
cairo_cv_ltp_version=invalid
|
|
|
|
|
ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
|
|
|
|
|
for ltp_check_version in $ltp_version_list; do
|
|
|
|
|
if test "$ltp_version" = "$ltp_check_version"; then
|
|
|
|
|
cairo_cv_ltp_version="$ltp_check_version (ok)"
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
case $cairo_cv_ltp_version in
|
|
|
|
|
""|invalid[)]
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
cairo_has_lcov=yes
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if test "x$cairo_has_lcov" != "xyes"; then
|
|
|
|
|
AC_MSG_ERROR([[To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list.
|
|
|
|
|
Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test -z "$LTP_GENHTML"; then
|
|
|
|
|
AC_MSG_ERROR([[Could not find genhtml from the LTP package.
|
|
|
|
|
Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov])
|
|
|
|
|
dnl PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir)
|
|
|
|
|
|
|
|
|
|
dnl Remove all optimization flags from CFLAGS
|
|
|
|
|
changequote({,})
|
|
|
|
|
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
|
|
|
|
|
CAIRO_CFLAGS=`echo "$CAIRO_CFLAGS" | $SED -e 's/-O[0-9]*//g'`
|
|
|
|
|
changequote([,])
|
|
|
|
|
|
|
|
|
|
dnl Add the special gcc flags
|
|
|
|
|
CAIRO_CFLAGS="$CAIRO_CFLAGS -O0 -fprofile-arcs -ftest-coverage"
|
2008-09-04 16:13:05 -04:00
|
|
|
CAIRO_LIBS="$CAIRO_LIBS -lgcov"
|
2008-09-03 20:06:26 -04:00
|
|
|
fi
|
|
|
|
|
AM_CONDITIONAL(CAIRO_HAS_LCOV, test "x$cairo_has_lcov" = "xyes")
|
|
|
|
|
|