diff --git a/configure.ac b/configure.ac
index aedf6e8f1a907a943a86ae6a0863ead260bb3cdc..c1718a7b0681a17b378a667402c422a576a9881c 100644 (file)
--- a/configure.ac
+++ b/configure.ac
AC_CONFIG_HEADERS([src/config.h])
AC_PREFIX_DEFAULT([/opt/sysdb])
AC_CONFIG_HEADERS([src/config.h])
AC_PREFIX_DEFAULT([/opt/sysdb])
-AM_INIT_AUTOMAKE([foreign -Wall])
+AM_INIT_AUTOMAKE([foreign subdir-objects -Wall])
AC_LANG(C)
AC_LANG(C)
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
+AM_PROG_AR
AM_PROG_CC_C_O
AM_PROG_LEX
AM_PROG_CC_C_O
AM_PROG_LEX
fi
AC_SUBST([STRICT_CFLAGS])
fi
AC_SUBST([STRICT_CFLAGS])
+AC_ARG_ENABLE([gcov],
+ AS_HELP_STRING([--enable-gcov],
+ [Gcov coverage statistics @<:@default=no@:>@]),
+ [enable_gcov="$enableval"],
+ [enable_gcov="no"])
+
+dnl $GCC is based on some heuristics which might apply to clang as well.
+dnl However, clang does not support gcov.
+cc_is_gcc="no"
+case "x$CC" in
+ xgcc)
+ cc_is_gcc="yes"
+ ;;
+ xgcc-*)
+ cc_is_gcc="yes"
+ ;;
+esac
+
+COVERAGE_CFLAGS=""
+COVERAGE_LDFLAGS=""
+if test "x$enable_gcov" = "xyes" && test "x$GCC$cc_is_gcc" == "xyesyes"; then
+ COVERAGE_CFLAGS="-O0"
+ cov_flag_have_problem="no"
+
+ AC_MSG_CHECKING([whether $CC accepts --coverage])
+ if test_cc_flags --coverage; then
+ COVERAGE_CFLAGS="$COVERAGE_CFLAGS --coverage"
+ COVERAGE_LDFLAGS="$COVERAGE_LDFLAGS --coverage"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ cov_flag_have_problem="yes"
+ fi
+
+ for flag in -fno-inline; do
+ AC_MSG_CHECKING([whether $CC accepts $flag])
+ if test_cc_flags $flag; then
+ COVERAGE_CFLAGS="$COVERAGE_CFLAGS $flag"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ cov_flag_have_problem="yes"
+ fi
+ done
+
+ if test "x$cov_flag_have_problem" != "xno"; then
+ AC_MSG_WARN([Some coverage flags are not supported by your compiler!])
+ fi
+else if test "x$enable_gcov" = "xyes"; then
+ AC_MSG_WARN([Your compiler ($CC) is not known to support Gcov!])
+ enable_gcov="no (requires GCC)"
+fi; fi
+AC_SUBST([COVERAGE_CFLAGS])
+AC_SUBST([COVERAGE_LDFLAGS])
+
m4_divert_once([HELP_ENABLE], [
Build dependencies:])
m4_divert_once([HELP_ENABLE], [
Build dependencies:])
if test "x$with_libdbi" = "xyes"; then
AC_CHECK_HEADERS([dbi/dbi.h],
[with_libdbi="yes"],
if test "x$with_libdbi" = "xyes"; then
AC_CHECK_HEADERS([dbi/dbi.h],
[with_libdbi="yes"],
- [with_libdbi="no (dbi/dbi.h) not found"])
+ [with_libdbi="no (dbi/dbi.h not found)"])
fi
if test "x$with_libdbi" = "xyes"; then
AC_CHECK_LIB([dbi], [dbi_initialize],
fi
if test "x$with_libdbi" = "xyes"; then
AC_CHECK_LIB([dbi], [dbi_initialize],
AC_MSG_RESULT([ documentation: . . . . . . $build_documentation])
AC_MSG_RESULT([ unit testing: . . . . . . . $build_testing])
AC_MSG_RESULT([ stdio mocking: . . . . . $have_fopencookie])
AC_MSG_RESULT([ documentation: . . . . . . $build_documentation])
AC_MSG_RESULT([ unit testing: . . . . . . . $build_testing])
AC_MSG_RESULT([ stdio mocking: . . . . . $have_fopencookie])
+AC_MSG_RESULT([ coverage testing: . . . . . $enable_gcov])
AC_MSG_RESULT()
AC_MSG_RESULT([ Libraries:])
AC_MSG_RESULT([ libdbi: . . . . . . . . . . $with_libdbi])
AC_MSG_RESULT()
AC_MSG_RESULT([ Libraries:])
AC_MSG_RESULT([ libdbi: . . . . . . . . . . $with_libdbi])