diff options
author | Ross Paterson <ross@soi.city.ac.uk> | 2007-08-19 23:31:42 +0000 |
---|---|---|
committer | Ross Paterson <ross@soi.city.ac.uk> | 2007-08-19 23:31:42 +0000 |
commit | 06f9c30014a3e695e0ed7a0de2eef4c8aaf36526 (patch) | |
tree | 15ab579e971933ec63d6e35dcd95e9ef2f11ef1b | |
parent | 274c703f691aed1670209f7e9b4e20c5b09d919d (diff) |
get the SIG constants for ourselves, rather than relying on HsBaseConfig.h
-rw-r--r-- | System/Posix/Signals.hs | 2 | ||||
-rw-r--r-- | aclocal.m4 | 51 | ||||
-rw-r--r-- | configure.ac | 5 |
3 files changed, 55 insertions, 3 deletions
diff --git a/System/Posix/Signals.hs b/System/Posix/Signals.hs index 1aa9dca..92b54b0 100644 --- a/System/Posix/Signals.hs +++ b/System/Posix/Signals.hs @@ -12,7 +12,7 @@ -- ----------------------------------------------------------------------------- -#include "HsBaseConfig.h" +#include "HsUnixConfig.h" module System.Posix.Signals ( -- * The Signal type @@ -1,2 +1,49 @@ -# Empty file to avoid a dependency on automake: autoreconf calls aclocal to -# generate a temporary aclocal.m4t when no aclocal.m4 is present. +# FP_COMPUTE_INT(EXPRESSION, VARIABLE, INCLUDES, IF-FAILS) +# -------------------------------------------------------- +# Assign VARIABLE the value of the compile-time EXPRESSION using INCLUDES for +# compilation. Execute IF-FAILS when unable to determine the value. Works for +# cross-compilation, too. +# +# Implementation note: We are lazy and use an internal autoconf macro, but it +# is supported in autoconf versions 2.50 up to the actual 2.57, so there is +# little risk. +AC_DEFUN([FP_COMPUTE_INT], +[_AC_COMPUTE_INT([$1], [$2], [$3], [$4])[]dnl +])# FP_COMPUTE_INT + + +# FP_CHECK_CONST(EXPRESSION, [INCLUDES = DEFAULT-INCLUDES], [VALUE-IF-FAIL = -1]) +# ------------------------------------------------------------------------------- +# Defines CONST_EXPRESSION to the value of the compile-time EXPRESSION, using +# INCLUDES. If the value cannot be determined, use VALUE-IF-FAIL. +AC_DEFUN([FP_CHECK_CONST], +[AS_VAR_PUSHDEF([fp_Cache], [fp_cv_const_$1])[]dnl +AC_CACHE_CHECK([value of $1], fp_Cache, +[FP_COMPUTE_INT([$1], fp_check_const_result, [AC_INCLUDES_DEFAULT([$2])], + [fp_check_const_result=m4_default([$3], ['-1'])]) +AS_VAR_SET(fp_Cache, [$fp_check_const_result])])[]dnl +AC_DEFINE_UNQUOTED(AS_TR_CPP([CONST_$1]), AS_VAR_GET(fp_Cache), [The value of $1.])[]dnl +AS_VAR_POPDEF([fp_Cache])[]dnl +])# FP_CHECK_CONST + + +# FP_CHECK_CONSTS_TEMPLATE(EXPRESSION...) +# --------------------------------------- +# autoheader helper for FP_CHECK_CONSTS +m4_define([FP_CHECK_CONSTS_TEMPLATE], +[AC_FOREACH([fp_Const], [$1], + [AH_TEMPLATE(AS_TR_CPP(CONST_[]fp_Const), + [The value of ]fp_Const[.])])[]dnl +])# FP_CHECK_CONSTS_TEMPLATE + + +# FP_CHECK_CONSTS(EXPRESSION..., [INCLUDES = DEFAULT-INCLUDES], [VALUE-IF-FAIL = -1]) +# ----------------------------------------------------------------------------------- +# List version of FP_CHECK_CONST +AC_DEFUN([FP_CHECK_CONSTS], +[FP_CHECK_CONSTS_TEMPLATE([$1])dnl +for fp_const_name in $1 +do +FP_CHECK_CONST([$fp_const_name], [$2], [$3]) +done +])# FP_CHECK_CONSTS diff --git a/configure.ac b/configure.ac index 5d75477..7bd146f 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,11 @@ AC_CHECK_FUNCS([lchown setenv sysconf unsetenv]) AC_CHECK_FUNCS([nanosleep]) AC_CHECK_FUNCS([setitimer]) +FP_CHECK_CONSTS([SIGABRT SIGALRM SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIGPOLL SIGPROF SIGSYS SIGTRAP SIGURG SIGVTALRM SIGXCPU SIGXFSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK], [ +#if HAVE_SIGNAL_H +#include <signal.h> +#endif]) + AC_MSG_CHECKING([for _SC_GETGR_R_SIZE_MAX]) AC_EGREP_CPP(we_have_that_sysconf_thing, [ |