From b8b4032ff3ae6f2bd75e54238d196ce18de51bcc Mon Sep 17 00:00:00 2001 From: "Jeremy C. Reed" Date: Tue, 26 Jan 2010 19:41:22 +0000 Subject: [PATCH] This is for http://bind10.isc.org/ticket/18. Update configure for lcov and gtest detection. Be more verbose. Use gtest-config if available. git-svn-id: svn://bind10.isc.org/svn/bind10/branches/parkinglot@516 e5f2f494-b856-4b98-b285-d166d9295462 --- configure.ac | 66 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/configure.ac b/configure.ac index a875a09c65..9e136b90a1 100644 --- a/configure.ac +++ b/configure.ac @@ -44,21 +44,19 @@ USE_LCOV="no" if test "$lcov" != "no"; then # force gtest if not set if test "$gtest_path" = "no"; then +# AC_MSG_ERROR("lcov needs gtest for test coverage report") + AC_MSG_NOTICE([gtest support is now enabled, because used by coverage tests]) gtest_path="yes" fi if test "$lcov" != "yes"; then - LCOV_PATHS=$lcov + LCOV=$lcov else - LCOV_PATHS="/usr/bin/lcov /usr/local/bin/lcov" + AC_PATH_PROG([LCOV], [lcov]) fi - for f in $LCOV_PATHS; do - if test -x "$f"; then - USE_LCOV="yes" - LCOV=$f - fi - done - if test $USE_LCOV != "yes"; then - AC_MSG_ERROR([Cannot find lcov in: $LCOV_PATHS]) + if test -x "${LCOV}"; then + USE_LCOV="yes" + else + AC_MSG_ERROR([Cannot find lcov.]) fi # is genhtml always in the same directory? GENHTML=`echo "$LCOV" | sed s/lcov$/genhtml/` @@ -66,7 +64,7 @@ if test "$lcov" != "no"; then AC_MSG_ERROR([genhtml not found, needed for lcov]) fi # GCC specific? - CPPFLAGS="$CPPFLAGS -fprofile-arcs -ftest-coverage" + CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage" LIBS=" $LIBS -lgcov" AC_SUBST(CPPFLAGS) AC_SUBST(LIBS) @@ -76,26 +74,44 @@ fi AC_SUBST(USE_LCOV) # -# Check availablity of gtest, which will be used for unit tests. +# Check availability of gtest, which will be used for unit tests. # if test "$gtest_path" != "no" then if test "$gtest_path" != "yes"; then GTEST_PATHS=$gtest_path - else - GTEST_PATHS="/usr /usr/local" - fi - - GTEST_FOUND="false" - for dir in $GTEST_PATHS; do - if test -f "$dir/include/gtest/gtest.h"; then - GTEST_INCLUDES="-I$dir/include" - GTEST_LDFLAGS="-L$dir/lib" - GTEST_LDADD="-lgtest" - GTEST_FOUND="true" + if test -x "${gtest_path}/bin/gtest-config" ; then + GTEST_CONFIG="${gtest_path}/bin/gtest-config" fi - done - if test $GTEST_FOUND != "true"; then + else + AC_PATH_PROG([GTEST_CONFIG], [gtest-config]) + fi + if test -x "${GTEST_CONFIG}" ; then : + # using cppflags instead of cxxflags + GTEST_INCLUDES=`${GTEST_CONFIG} --cppflags` + GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` + GTEST_LDADD=`${GTEST_CONFIG} --libs` + GTEST_FOUND="true" + else + AC_MSG_WARN([Unable to locate Google Test gtest-config.]) + if test -z "${GTEST_PATHS}" ; then + GTEST_PATHS="/usr /usr/local" + fi + GTEST_FOUND="false" + fi + if test "${GTEST_FOUND}" != "true"; then + GTEST_FOUND="false" + for dir in $GTEST_PATHS; do + if test -f "$dir/include/gtest/gtest.h"; then + GTEST_INCLUDES="-I$dir/include" + GTEST_LDFLAGS="-L$dir/lib" + GTEST_LDADD="-lgtest" + GTEST_FOUND="true" + break + fi + done + fi + if test "${GTEST_FOUND}" != "true"; then AC_MSG_ERROR([Cannot find gtest in: $GTEST_PATHS]) fi else