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 https://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")
    AS_IF([test x"$have_check" = "xyes"], [AC_DEFINE([HAVE_TESTS], [1], [Build with unit tests.])])

    dnl sighandler_t is GNU extension
    dnl AC_USE_SYSTEM_EXTENSIONS is required
    AC_CHECK_TYPES([sighandler_t], [], [], [
        #include <signal.h>
    ])
])
