sniper Tue Nov 29 18:20:07 2005 EDT
Added files: (Branch: PHP_5_1)
/php-src Makefile.gcov
Modified files:
/php-src NEWS configure.in
Log:
MFH: - Added --enable-gcov configure option to enable C-level code coverage.
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.2027.2.252&r2=1.2027.2.253&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.252 php-src/NEWS:1.2027.2.253
--- php-src/NEWS:1.2027.2.252 Tue Nov 29 15:43:52 2005
+++ php-src/NEWS Tue Nov 29 18:19:55 2005
@@ -1,6 +1,8 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 200?, PHP 5.1.2
+- Added --enable-gcov configure option to enable C-level code coverage.
+ (John, Jani)
- Added missing support for 'B' format identifier to date() function. (Ilia)
- Improved SPL: (Marcus)
. Added class SplFileInfo as root class for DirectoryIterator and
http://cvs.php.net/diff.php/php-src/configure.in?r1=1.579.2.24&r2=1.579.2.25&ty=u
Index: php-src/configure.in
diff -u php-src/configure.in:1.579.2.24 php-src/configure.in:1.579.2.25
--- php-src/configure.in:1.579.2.24 Sun Nov 27 12:29:52 2005
+++ php-src/configure.in Tue Nov 29 18:20:01 2005
@@ -1,4 +1,4 @@
- ## $Id: configure.in,v 1.579.2.24 2005/11/27 17:29:52 iliaa Exp $ -*-
autoconf -*-
+ ## $Id: configure.in,v 1.579.2.25 2005/11/29 23:20:01 sniper Exp $ -*-
autoconf -*-
dnl ## Process this file with autoconf to produce a configure script.
divert(1)
@@ -378,7 +378,8 @@
utime.h \
sys/utsname.h \
sys/ipc.h \
-dlfcn.h
+dlfcn.h \
+assert.h
],[],[],[
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
@@ -597,6 +598,72 @@
PHP_HELP_SEPARATOR([General settings:])
+PHP_ARG_ENABLE(gcov, whether to include gcov symbols,
+[ --enable-gcov Enable GCOV code coverage (requires LTP) - FOR
DEVELOPERS ONLY!!], no, no)
+
+if test "$PHP_GCOV" = "yes"; then
+
+ if test "$GCC" != "yes"; then
+ AC_MSG_ERROR([GCC is required for --enable-gcov])
+ fi
+
+ dnl Check if ccache is being used
+ dnl FIXME: Need a check for ccache usage, the one below does not work!
+ PHP_CHECK_GCC_ARG([--ccache-skip], [gcc_ccache=yes])
+
+ if test "$gcc_ccache" = "yes"; then
+ if test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"; then
+ AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used.
You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
+ fi
+ lcov_target="lcov-ccache"
+ fi
+
+ ltp_version_list="1.4"
+
+ AC_CHECK_PROG(LTP, lcov, lcov)
+ AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
+ PHP_SUBST(LTP)
+ PHP_SUBST(LTP_GENHTML)
+
+ if test "$LTP"; then
+ AC_CACHE_CHECK([for ltp version], php_cv_ltp_version, [
+ php_cv_ltp_version=invalid
+ ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
+ for ltp_check_version in $ltp_version_list; do
+ if test "$ltp_version" = "$ltp_check_version"; then
+ php_cv_ltp_version="$ltp_check_version (ok)"
+ fi
+ done
+ ])
+ else
+ ltp_msg="To enable code coverage reporting you must have one of the
following LTP versions installed: $ltp_version_list"
+ AC_MSG_ERROR([$ltp_msg])
+ fi
+
+ case $php_cv_ltp_version in
+ ""|invalid[)]
+ ltp_msg="You must have one of the following versions of LTP:
$ltp_version_list (found: $ltp_version)."
+ AC_MSG_ERROR([$ltp_msg])
+ LTP="exit 0;"
+ ;;
+ esac
+
+ if test -z "$LTP_GENHTML"; then
+ AC_MSG_ERROR([Could not find genhtml from the LTP package])
+ fi
+
+ AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov])
+ PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir)
+
+ 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
+ CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
+fi
+
PHP_ARG_ENABLE(debug, whether to include debugging symbols,
[ --enable-debug Compile with debugging symbols], no, no)
@@ -1180,7 +1247,7 @@
INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag"
CXXFLAGS="$CXXFLAGS $standard_libtool_flag"
-all_targets='$(OVERALL_TARGET) $(PHP_MODULES) $(PHP_CLI_TARGET)'
+all_targets="$lcov_target \$(OVERALL_TARGET) \$(PHP_MODULES)
\$(PHP_CLI_TARGET)"
install_targets="$install_modules install-build install-headers
install-programs $install_pear"
case $PHP_SAPI in
http://cvs.php.net/co.php/php-src/Makefile.gcov?r=1.1&p=1
Index: php-src/Makefile.gcov
+++ php-src/Makefile.gcov
.php_cov_info.ltpdata:
@mkdir -p .cov/; \
find . -name \*.gcda -o -name \*.gcno | sed -e 's/^\.\/\.cov\/.*//' |
xargs --replace cp {} .cov/; \
find . -name \*.gcda -o -name \*.gcno | sed -e 's/^\.\/\.cov\/.*//' |
sed -e 's/^\.\///' | xargs --max-args=1 dirname | sed -e 's/\/.*//' | xargs
--replace ln -s `pwd`/{} `pwd`/.cov > /dev/null 2>&1; \
$(LTP) --directory .cov --output-file=.php_cov_info.ltpdata --capture; \
cov: .php_cov_info.ltpdata
cov-html: cov
@$(LTP_GENHTML) -o cov_html/ .php_cov_info.ltpdata -t "PHP Code
Coverage" -s;
cov-clean:
find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;
rm -f .cov/* # This is done first, since we are symlinked inside..
rm -Rf .cov # Now remove the directory
rm -f .php_cov_info.ltpdata
rm -Rf cov_html
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php