summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuele Aina <em@nerd.ocracy.org>2007-06-26 13:21:54 +0000
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>2009-05-15 16:18:44 +0100
commit5f881517714b1a0b4b504174379d773749231a7e (patch)
treeaaf9df3a6bbb9ae679441a6f7e1ed4b98859abbf
parent88bc0fe9e1019025221ed0849417bfcb14999568 (diff)
Fixed the valgrind and coverage compile options reorganizing the macro inclusion
-rw-r--r--m4/wocky-gcov.m457
-rw-r--r--m4/wocky-lcov.m412
2 files changed, 39 insertions, 30 deletions
diff --git a/m4/wocky-gcov.m4 b/m4/wocky-gcov.m4
index 5257c07..5103526 100644
--- a/m4/wocky-gcov.m4
+++ b/m4/wocky-gcov.m4
@@ -2,38 +2,39 @@ dnl Detect and set flags for gcov
AC_DEFUN([WOCKY_GCOV],
[
- if test "x$GCC" != "xyes"
- then
- AC_MSG_ERROR([gcov only works if gcc is used])
- fi
+ enable=$1
+
+ GCOV=`echo $CC | sed s/gcc/gcov/g`
+ AC_CHECK_PROG(have_gcov, $GCOV, yes, no)
AS_COMPILER_FLAG(["-fprofile-arcs"],
- [GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs"],
- true)
+ [flag_profile_arcs=yes],
+ [flag_profile_arcs=no])
+
AS_COMPILER_FLAG(["-ftest-coverage"],
- [GCOV_CFLAGS="$GCOV_CFLAGS -ftest-coverage"],
- true)
- dnl remove any -O flags - FIXME: is this needed ?
- GCOV_CFLAGS=`echo "$GCOV_CFLAGS" | sed -e 's/-O[[0-9]]*//g'`
- 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)
+ [flag_test_coverage=yes],
+ [flag_test_coverage=no])
- AC_SUBST([MOSTLYCLEANFILES], "*.bb *.bbg *.da *.gcov *.gcda *.gcno")
+ if test "x$enable" = xyes &&
+ test "x$GCC" = "xyes" &&
+ test "$flag_profile_arcs" = yes &&
+ test "$flag_test_coverage" = yes ;
+ then
- HAVE_GCOV=yes
+ GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
+ dnl remove any -O flags - FIXME: is this needed ?
+ GCOV_CFLAGS=`echo "$GCOV_CFLAGS" | sed -e 's/-O[[0-9]]*//g'`
- AC_DEFINE_UNQUOTED(HAVE_GCOV, 1,
- [Defined if gcov is enabled to force a rebuild due to config.h changing])
+ 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([MOSTLYCLEANFILES], "*.bb *.bbg *.da *.gcov *.gcda *.gcno")
+
+ AC_DEFINE_UNQUOTED(HAVE_GCOV, 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$HAVE_GCOV" = "xyes"
- then
CFLAGS="-O0"
AC_SUBST(CFLAGS)
CXXFLAGS="-O0"
@@ -45,5 +46,9 @@ AC_DEFUN([WOCKY_GCOV],
AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS])
fi
- AM_CONDITIONAL(HAVE_GCOV, test x$HAVE_GCOV = xyes)
+ AC_SUBST(GCOV_CFLAGS)
+ AC_SUBST(GCOV_LIBS)
+ AC_SUBST(GCOV)
+
+ AM_CONDITIONAL(HAVE_GCOV, test x$have_gcov = xyes)
])
diff --git a/m4/wocky-lcov.m4 b/m4/wocky-lcov.m4
index a701510..bc3aa0d 100644
--- a/m4/wocky-lcov.m4
+++ b/m4/wocky-lcov.m4
@@ -2,9 +2,11 @@ dnl Check for lcov utility
AC_DEFUN([WOCKY_LCOV],
[
- AC_PATH_PROG(LCOV_PATH, [lcov], [no])
+ enable=$1
- if test X$LCOV_PATH != Xno ; then
+ AC_PATH_PROG(LCOV_PATH, lcov)
+
+ if test -n "$LCOV_PATH" ; then
AC_MSG_CHECKING([whether lcov accepts --compat-libtool])
if $LCOV_PATH --compat-libtool --help > /dev/null 2>&1 ; then
AC_MSG_RESULT(ok)
@@ -12,12 +14,14 @@ AC_DEFUN([WOCKY_LCOV],
AC_MSG_RESULT(no)
AC_MSG_WARN([lcov option --compat-libtool is not supported])
AC_MSG_WARN([update lcov to version > 1.5])
- LCOV_PATH=no
+ LCOV_PATH=""
fi
fi
- if test X$LCOV_PATH == Xno ; then
+ if test -z "$LCOV_PATH" ; then
AC_MSG_WARN([will use an internal lcov copy])
LCOV_PATH='$(top_srcdir)/scripts/lcov/lcov'
fi
+
+ AM_CONDITIONAL(HAVE_LCOV, test -n "$LCOV_PATH" && test "x$enable" = xyes)
])