mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-05-25 18:52:16 -04:00
70 lines
2.5 KiB
Text
70 lines
2.5 KiB
Text
# Copyright 2014 CZ.NIC, z.s.p.o.
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 3, as published
|
|
# by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranties of
|
|
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
|
|
# PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
AC_DEFUN([AX_CODE_COVERAGE], [
|
|
dnl Check for --enable-code-coverage
|
|
AC_ARG_ENABLE([code-coverage],
|
|
AS_HELP_STRING([--enable-code-coverage], [enable code coverage testing with gcov]),
|
|
[enable_code_coverage=$enableval],
|
|
[enable_code_coverage=no]
|
|
)
|
|
AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test "$enable_code_coverage" = "yes"])
|
|
AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage])
|
|
|
|
AS_IF([test "$enable_code_coverage" = "yes"], [
|
|
dnl Check whether gcc is used
|
|
AS_IF([test "$GCC" = "no"], [
|
|
AC_MSG_ERROR([compiling with gcc is required for gcov code coverage])
|
|
])
|
|
|
|
AC_CHECK_PROG([LCOV], [lcov], [lcov])
|
|
AC_CHECK_PROG([GENHTML], [genhtml], [genhtml])
|
|
|
|
lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11"
|
|
|
|
AS_IF([test "$LCOV"], [
|
|
AC_CACHE_CHECK([for lcov version], ac_cv_lvoc_version, [
|
|
ac_cv_lcov_version=invalid
|
|
lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'`
|
|
for lcov_check_version in $lcov_version_list; do
|
|
if test "$lcov_version" = "$lcov_check_version"; then
|
|
ac_cv_lcov_version="$lcov_check_version (ok)"
|
|
fi
|
|
done
|
|
])
|
|
],[
|
|
AC_MSG_ERROR([You must have one of the following lcov versions installed: $lcov_version_list to enable gcov code coverage reporting])
|
|
])
|
|
|
|
AS_CASE([$ac_cv_lcov_version],
|
|
[""|invalid], [AC_MSG_ERROR([You must have one of the following lcov versions installed: $lcov_version_list to enable gcov code coverage reporting])
|
|
])
|
|
|
|
AS_IF([test -z "$GENHTML"], [
|
|
AC_MSG_ERROR([Could not find genhtml from the lcov package])
|
|
])
|
|
|
|
dnl Remove all optimization flags from CFLAGS
|
|
changequote({,})
|
|
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
|
|
changequote([,])
|
|
|
|
dnl Add the special gcc flags
|
|
CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
|
|
CODE_COVERAGE_LDFLAGS="-lgcov"
|
|
|
|
AC_SUBST([CODE_COVERAGE_CFLAGS])
|
|
AC_SUBST([CODE_COVERAGE_LDFLAGS])
|
|
])
|
|
]) # AC_CODE_COVERAGE
|