]> jfr.im git - solanum.git/blobdiff - libratbox/acinclude.m4
ircd/dns: same
[solanum.git] / libratbox / acinclude.m4
index 7e963d5a4ee23ce9719f72e92e1f1e4696fd0fc2..f98479ff4c7d4328116b954e1b1f0f7d5759d3ee 100644 (file)
@@ -2,8 +2,17 @@
 AC_DEFUN([AC_DEFINE_DIR], [
   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
   test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-  ac_define_dir=`eval echo [$]$2`
-  ac_define_dir=`eval echo [$]ac_define_dir`
+  last_ac_define_dir=`eval echo [$]$2`
+  ac_define_dir=`eval echo [$]last_ac_define_dir`
+  ac_define_dir_counter=0
+  while test "x[$]last_ac_define_dir" != "x[$]ac_define_dir"; do
+    last_ac_define_dir="[$]ac_define_dir"
+    ac_define_dir=`eval echo [$]last_ac_define_dir`
+    AS_VAR_ARITH([ac_define_dir_counter], [$ac_define_dir_counter + 1])
+    AS_VAR_IF([ac_define_dir_counter], [128],
+       [AC_MSG_ERROR([detected recusive directory expansion when expanding $1=[$]$2: [$]ac_define_dir])
+       break])
+  done
   $1="$ac_define_dir"
   AC_SUBST($1)
   ifelse($3, ,
@@ -111,3 +120,42 @@ case $rb__cv_timer_create_works in
 esac
 ])
 
+
+
+AC_DEFUN([RB_CHECK_TIMERFD_CREATE],
+  [AC_CACHE_CHECK([for a working timerfd_create(CLOCK_REALTIME)], 
+    [rb__cv_timerfd_create_works],
+    [AC_TRY_RUN([
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TIMERFD_H
+#include <sys/timerfd.h>
+#endif
+int main(int argc, char *argv[])
+{
+#if defined(HAVE_TIMERFD_CREATE) && defined(HAVE_SYS_TIMERFD_H)
+    if (timerfd_create(CLOCK_REALTIME, 0) < 0) {
+       return 1;
+    }
+#else
+    return 1;
+#endif
+    return 0;
+}
+     ],
+     [rb__cv_timerfd_create_works=yes],
+     [rb__cv_timerfd_create_works=no])
+  ])
+case $rb__cv_timerfd_create_works in
+    yes) AC_DEFINE([USE_TIMERFD_CREATE], 1, 
+                   [Define to 1 if we can use timerfd_create(CLOCK_REALTIME,...)]);;
+esac
+])
+