build-sys: integrate coverage report
Just pass --enable-coverage to configure and then "make coverage" to
have the coverage report at coverage dir.
diff --git a/configure.ac b/configure.ac
index 3be3198..648ff12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,6 +151,28 @@
])
AM_CONDITIONAL([BUILD_PYTHON], [test "x$enable_python" = "xyes"])
+AC_ARG_ENABLE([coverage],
+ AS_HELP_STRING([--enable-coverage], [enable test coverage @<:@default=disabled@:>@]),
+ [], [enable_coverage=no])
+AS_IF([test "x$enable_coverage" = "xyes"], [
+ AC_CHECK_PROG(have_coverage, [lcov], [yes], [no])
+ AS_IF([test "x$have_coverage" = xno],[
+ AC_MSG_ERROR([*** lcov support requested but the program was not found])
+ ], [
+ lcov_version_major="`lcov --version | cut -d ' ' -f 4 | cut -d '.' -f 1`"
+ lcov_version_minor="`lcov --version | cut -d ' ' -f 4 | cut -d '.' -f 2`"
+ AS_IF([test "$lcov_version_major" -lt 1 -o "$lcov_version_minor" -lt 10], [
+ AC_MSG_ERROR([*** lcov version is too old. 1.10 required])
+ ], [
+ have_coverage=yes
+ CC_CHECK_FLAGS_APPEND([with_coverage_cflags], [CFLAGS], [\
+ -fprofile-arcs \
+ -ftest-coverage])
+ ])
+ ])
+])
+AM_CONDITIONAL([ENABLE_COVERAGE], [test "x$enable_coverage" = "xyes"])
+
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat])
], [
@@ -204,7 +226,7 @@
-fvisibility=hidden \
-ffunction-sections \
-fdata-sections])
-AC_SUBST([OUR_CFLAGS], $with_cflags)
+AC_SUBST([OUR_CFLAGS], "$with_cflags $with_coverage_cflags")
CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [ \
@@ -249,6 +271,7 @@
logging: ${enable_logging}
compression: xz=${with_xz} zlib=${with_zlib}
debug: ${enable_debug}
+ coverage: ${enable_coverage}
doc: ${enable_gtk_doc}
man: ${enable_manpages}
])