From 53b8b89994cdbc3539a580c437ea59f7984f80e2 Mon Sep 17 00:00:00 2001 From: russell Date: Tue, 27 Jul 2010 21:16:39 +0000 Subject: [PATCH] Merged revisions 279953 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r279953 | russell | 2010-07-27 16:16:05 -0500 (Tue, 27 Jul 2010) | 5 lines Add --enable-coverage option to configure script. This option enables the proper compiler flags for tracking code coverage, which is useful along side automated testing. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@279954 f38db490-d61c-443f-a65b-d21fe96a405b --- Makefile.rules | 7 ++++++- configure | 17 ++++++++++++++++- configure.ac | 11 +++++++++++ makeopts.in | 2 ++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/Makefile.rules b/Makefile.rules index 03bc7e81a..45f7e4bb0 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -43,12 +43,17 @@ ifneq ($(findstring darwin,$(OSARCH)),) endif endif -ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),) +ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS))$(AST_CODE_COVERAGE),no) _ASTCFLAGS+=$(OPTIMIZE) else _ASTCFLAGS+=-O0 endif +ifeq ($(AST_CODE_COVERAGE),yes) + _ASTCFLAGS+=-ftest-coverage -fprofile-arcs + _ASTLDFLAGS+=-ftest-coverage -fprofile-arcs +endif + ifeq ($(findstring $(CONFIG_CFLAGS),$(_ASTCFLAGS)),) _ASTCFLAGS+=$(CONFIG_CFLAGS) endif diff --git a/configure b/configure index ed3f460fc..7f40f5134 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 279624 . +# From configure.ac Revision: 279659 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for asterisk trunk. # @@ -1008,6 +1008,7 @@ PBX_ALSA ALSA_DIR ALSA_INCLUDE ALSA_LIB +AST_CODE_COVERAGE AST_DEVMODE NOISY_BUILD PTHREAD_CFLAGS @@ -1132,6 +1133,7 @@ ac_user_opts=' enable_option_checking with_gnu_ld enable_dev_mode +enable_coverage with_asound with_avcodec with_bluetooth @@ -1834,6 +1836,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-dev-mode Turn on developer mode + --enable-coverage Turn on code coverage tracking (for gcov) --disable-largefile omit support for large files --enable-internal-poll Use Asterisk's poll implementation --disable-xmldoc Explicity disable XML documentation @@ -8473,6 +8476,18 @@ fi +AST_CODE_COVERAGE=no +# Check whether --enable-coverage was given. +if test "${enable_coverage+set}" = set; then : + enableval=$enable_coverage; case "${enableval}" in + y|ye|yes) AST_CODE_COVERAGE=yes ;; + n|no) AST_CODE_COVERAGE=no ;; + *) as_fn_error "bad value ${enableval} for --enable-coverage" "$LINENO" 5 ;; + esac +fi + + + # AST_EXT_LIB_SETUP is used to tell configure to handle variables for # various packages. # $1 is the prefix for the variables in makeopts and autoconfig.h diff --git a/configure.ac b/configure.ac index b0adfd761..dfc45a5e8 100644 --- a/configure.ac +++ b/configure.ac @@ -288,6 +288,17 @@ AC_ARG_ENABLE([dev-mode], AC_SUBST(NOISY_BUILD) AC_SUBST(AST_DEVMODE) +AST_CODE_COVERAGE=no +AC_ARG_ENABLE([coverage], + [AS_HELP_STRING([--enable-coverage], + [Turn on code coverage tracking (for gcov)])], + [case "${enableval}" in + y|ye|yes) AST_CODE_COVERAGE=yes ;; + n|no) AST_CODE_COVERAGE=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-coverage) ;; + esac]) +AC_SUBST(AST_CODE_COVERAGE) + # AST_EXT_LIB_SETUP is used to tell configure to handle variables for # various packages. # $1 is the prefix for the variables in makeopts and autoconfig.h diff --git a/makeopts.in b/makeopts.in index e425dbc3b..750a41d7c 100644 --- a/makeopts.in +++ b/makeopts.in @@ -79,6 +79,8 @@ sysconfdir = @sysconfdir@ AST_DEVMODE=@AST_DEVMODE@ NOISY_BUILD=@NOISY_BUILD@ +AST_CODE_COVERAGE=@AST_CODE_COVERAGE@ + AST_DECLARATION_AFTER_STATEMENT=@AST_DECLARATION_AFTER_STATEMENT@ AST_NO_STRICT_OVERFLOW=@AST_NO_STRICT_OVERFLOW@ AST_SHADOW_WARNINGS=@AST_SHADOW_WARNINGS@