diff options
author | Rob Taylor <rob.taylor@codethink.co.uk> | 2008-02-08 18:09:05 +0000 |
---|---|---|
committer | Robert James Taylor <robtaylor@src.gnome.org> | 2008-02-08 18:09:05 +0000 |
commit | e2340a78cd657c2398f1076f6f0b87a3dca25540 (patch) | |
tree | 17395722d1bda95d39e4b543cd3739fe4314eeec /m4/gcov.m4 | |
parent | b935261f387dffa2c7006fe1be04820004810e87 (diff) | |
download | gobject-introspection-e2340a78cd657c2398f1076f6f0b87a3dca25540.tar.gz |
Added:
2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
* Makefile.am:
* configure.ac:
* gcov.mak: Added:
* girepository/Makefile.am:
* m4/Makefile.am: Added:
* m4/as-compiler-flag.m4: Added:
* m4/gcov.m4: Added:
* tools/Makefile.am:
Add ability to generate a coverage report.
Adds configure option --enable-gcov and make rule 'check-coverage'.
svn path=/trunk/; revision=105
Diffstat (limited to 'm4/gcov.m4')
-rw-r--r-- | m4/gcov.m4 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/m4/gcov.m4 b/m4/gcov.m4 new file mode 100644 index 00000000..c96eddac --- /dev/null +++ b/m4/gcov.m4 @@ -0,0 +1,47 @@ +AC_DEFUN([GI_ENABLE_GCOV], +[ + AC_ARG_ENABLE(gcov, + AC_HELP_STRING([--enable-gcov], + [compile with coverage profiling instrumentation (gcc only)]), + enable_gcov=$enableval, + enable_gcov=no) + if test x$enable_gcov = xyes ; then + if test "x$GCC" != "xyes" + then + AC_MSG_ERROR([gcov only works if gcc is used]) + fi + + AS_COMPILER_FLAG(["-fprofile-arcs"], + [GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs"], + true) + AS_COMPILER_FLAG(["-ftest-coverage"], + [GCOV_CFLAGS="$GCOV_CFLAGS -ftest-coverage"], + true) + dnl libtool 1.5.22 and lower strip -fprofile-arcs from the flags + dnl passed to the linker, which is a bug; -fprofile-arcs implicitly + dnl links in -lgcov, so we do it explicitly here for the same effect + GCOV_LIBS=-lgcov + AC_SUBST(GCOV_CFLAGS) + AC_SUBST(GCOV_LIBS) + GCOV=`echo $CC | sed s/gcc/gcov/g` + AC_SUBST(GCOV) + + GI_GCOV_ENABLED=yes + AC_DEFINE_UNQUOTED(GI_GCOV_ENABLED, 1, + [Defined if gcov is enabled to force a rebuild due to config.h changing]) + dnl if gcov is used, we do not want default -O2 CFLAGS + if test "x$GI_GCOV_ENABLED" = "xyes" + then + CFLAGS="-g -O0" + AC_SUBST(CFLAGS) + CXXFLAGS="-g -O0" + AC_SUBST(CXXFLAGS) + FFLAGS="-g -O0" + AC_SUBST(FFLAGS) + CCASFLAGS="-g -O0" + AC_SUBST(CCASFLAGS) + AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS]) + fi + fi + AM_CONDITIONAL(GI_GCOV_ENABLED, test x$enable_gcov = xyes) +]) |