aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eet/m4/efl_coverage.m4
blob: 85d03215b343da63b5ba275b59c1993f3070acbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
dnl That code is public domain and can be freely used or copied.

dnl Macro that check if coverage support is wanted and, if yes, if
dnl lcov is available.

dnl Usage: EFL_CHECK_COVERAGE(tests [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl The parameter 'tests' is used if a dependency is needed. If set to "yes",
dnl the dependency is available.
dnl Defines EFL_COVERAGE_CFLAGS and EFL_COVERAGE_LIBS variables
dnl Defines the automake conditionnal EFL_ENABLE_COVERAGE

AC_DEFUN([EFL_CHECK_COVERAGE],
[

dnl configure option

AC_ARG_ENABLE([coverage],
   [AC_HELP_STRING([--enable-coverage], [enable coverage profiling instrumentation @<:@default=disabled@:>@])],
   [
    if test "x${enableval}" = "xyes" ; then
       _efl_enable_coverage="yes"
    else
       _efl_enable_coverage="no"
    fi
   ],
   [_efl_enable_coverage="no"])

AC_MSG_CHECKING([whether to use profiling instrumentation])
AC_MSG_RESULT([$_efl_enable_coverage])

dnl lcov check

if test "x$_efl_enable_coverage" = "xyes" && test ! "x$1" = "xyes" ; then
   AC_MSG_WARN([Coverage report requested but tests not being built, disable profiling instrumentation.])
   AC_MSG_WARN([Run configure with --enable-tests])
   _efl_enable_coverage="no"
fi

if test "x$_efl_enable_coverage" = "xyes" ; then
   AC_CHECK_PROG(have_lcov, [lcov], [yes], [no])
   if test "x$have_lcov" = "xyes" ; then
      EFL_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
      EFL_COVERAGE_LIBS="-lgcov"
# remove any optimisation flag and force debug symbols
      EFL_DEBUG_CFLAGS="-g -O0 -DDEBUG"
   else
      AC_MSG_WARN([lcov is not found, disable profiling instrumentation])
      _efl_enable_coverage="no"
   fi
fi

dnl Substitution
AC_SUBST(EFL_COVERAGE_CFLAGS)
AC_SUBST(EFL_COVERAGE_LIBS)

AM_CONDITIONAL(EFL_ENABLE_COVERAGE, test "x${_efl_enable_coverage}" = "xyes")

AS_IF([test "x$_efl_enable_coverage" = "xyes"], [$2], [$3])
])

dnl End of efl_coverage.m4