diff options
Diffstat (limited to '')
-rw-r--r-- | m4.include/mc-tests.m4 | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/m4.include/mc-tests.m4 b/m4.include/mc-tests.m4 new file mode 100644 index 0000000..aa553ff --- /dev/null +++ b/m4.include/mc-tests.m4 @@ -0,0 +1,62 @@ +dnl @synopsis mc_UNIT_TESTS +dnl +dnl Check if unit tests enabled +dnl +dnl @author Slava Zanko <slavazanko@gmail.com> +dnl @version 2011-02-10 +dnl @license GPL +dnl @copyright Free Software Foundation, Inc. + +AC_DEFUN([mc_UNIT_TESTS],[ + + AC_ARG_ENABLE( + [tests], + AS_HELP_STRING([--enable-tests], [Enable unit tests (see http://libcheck.github.io/check/) @<:@auto@:>@]) + ) + + dnl 'tests_msg' holds the human-readable message to show in configure's summary text. + + if test x"$enable_tests" = "xno"; then + dnl The user explicitly specified '--disable-tests'. + tests_msg="no" + else + PKG_CHECK_MODULES( + CHECK, + [check >= 0.9.10], + [ + have_check=yes + tests_msg="yes" + ], + [ + AC_MSG_WARN(['Check' testing framework not found. Check your environment]) + tests_msg="no ('Check' testing framework not found)" + + dnl The following behavior, of "exit if feature requested but not found", is just a + dnl preference and can be safely removed. + if test x"$enable_tests" = "xyes"; then + AC_MSG_ERROR([You explicitly specified '--enable-tests', but this requirement cannot be met.]) + fi + ]) + AC_SUBST(CHECK_CFLAGS) + AC_SUBST(CHECK_LIBS) + fi + AM_CONDITIONAL(HAVE_TESTS, test x"$have_check" = "xyes") + + dnl sighandler_t is GNU extension + dnl AC_USE_SYSTEM_EXTENSIONS is required + AC_CHECK_TYPES([sighandler_t], [], [], [ + #include <signal.h> + ]) + + # on cygwin, the linker does not accept the "-z" option + case $host_os in + cygwin*) + TESTS_LDFLAGS="-Wl,--allow-multiple-definition" + ;; + *) + TESTS_LDFLAGS="-Wl,-z,muldefs" + ;; + esac + + AC_SUBST(TESTS_LDFLAGS) +]) |