X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=configure.ac;h=ac281225e0a703cb0478aa4a809f358bcf3360ff;hp=aedf6e8f1a907a943a86ae6a0863ead260bb3cdc;hb=f7bf1a1f05648e6292baded4828b46bea0f59075;hpb=9db2593faeb3a394545b27f44d3ed96fce51cd99 diff --git a/configure.ac b/configure.ac index aedf6e8..ac28122 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ AC_CONFIG_SRCDIR([src/sysdb.c]) 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) @@ -48,6 +48,7 @@ AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET +AM_PROG_AR AM_PROG_CC_C_O AM_PROG_LEX @@ -184,6 +185,61 @@ if test "x$enable_strict_checks" = "xyes"; then 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:]) @@ -201,7 +257,7 @@ AC_ARG_WITH([libdbi], 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], @@ -253,7 +309,7 @@ else fi have_libreadline="no" -if test "x$have_libedit" = "xno"; then +if test "x$have_libedit" != "xyes"; then if test "x$readline_support" = "xauto" \ || test "x$readline_support" = "xlibreadline"; then AC_CHECK_LIB([readline], [readline], @@ -372,6 +428,7 @@ AC_MSG_RESULT([ Features:]) 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])