dnl CF_KILLPG version: 11 updated: 2023/12/09 10:53:57
dnl ---------
dnl Note: relies upon AC_FUNC_SETPGRP, but cannot use AC_REQUIRE, since that
dnl messes up the messages...
define([CF_KILLPG],
[
if test "$cross_compiling" = yes ; then
	AC_CHECK_FUNC(setpgrp,[
	AC_TRY_COMPILE([
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <sys/types.h>
#include <signal.h>
],[
    (void) setpgrp();
],
	[AC_DEFINE(SETPGRP_VOID)])])
else
	AC_FUNC_SETPGRP
fi

if test "$cross_compiling" = yes ; then
	AC_CHECK_FUNC(getpgrp,[
	AC_TRY_COMPILE([
$ac_includes_default

#include <signal.h>
],[
    (void) getpgrp();
],
	[AC_DEFINE(GETPGRP_VOID)])])
else
	AC_FUNC_GETPGRP
fi

AC_CACHE_CHECK(if killpg is needed, cf_cv_need_killpg,[
AC_TRY_RUN([
$ac_includes_default

#include <signal.h>

static RETSIGTYPE
handler(int s)
{
	(void) s;
    exit(0);
}

int main(void)
{
#ifdef SETPGRP_VOID
    (void) setpgrp();
#else
    (void) setpgrp(0,0);
#endif
    (void) signal(SIGINT, handler);
    (void) kill(-getpid(), SIGINT);
    ${cf_cv_main_return:-return}(1);
}],
	[cf_cv_need_killpg=no],
	[cf_cv_need_killpg=yes],
	[cf_cv_need_killpg=unknown])
])

test $cf_cv_need_killpg = yes && AC_DEFINE(HAVE_KILLPG)
])dnl
