Merge euidaccess etc. from coreutils.
[gnulib.git] / m4 / timespec.m4
index 36ea5ca..5ca16d4 100644 (file)
@@ -1,13 +1,31 @@
-#serial 4
+#serial 7
 
 dnl From Jim Meyering
 
+AC_DEFUN([gl_TIMESPEC],
+[
+  dnl Prerequisites of lib/timespec.h.
+  AC_REQUIRE([AC_HEADER_TIME])
+  AC_CHECK_HEADERS_ONCE(sys/time.h)
+  jm_CHECK_TYPE_STRUCT_TIMESPEC
+  AC_STRUCT_ST_MTIM_NSEC
+
+  dnl Persuade glibc <time.h> to declare nanosleep().
+  AC_REQUIRE([AC_GNU_SOURCE])
+
+  AC_CHECK_DECLS(nanosleep, , , [#include <time.h>])
+])
+
 dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
 dnl in time.h or sys/time.h.
 
-AC_DEFUN(jm_CHECK_TYPE_STRUCT_TIMESPEC,
+AC_DEFUN([jm_CHECK_TYPE_STRUCT_TIMESPEC],
 [
+  dnl Persuade pedantic Solaris to declare struct timespec.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_REQUIRE([AC_HEADER_TIME])
+  AC_CHECK_HEADERS_ONCE(sys/time.h)
   AC_CACHE_CHECK([for struct timespec], fu_cv_sys_struct_timespec,
     [AC_TRY_COMPILE(
       [
@@ -28,7 +46,7 @@ AC_DEFUN(jm_CHECK_TYPE_STRUCT_TIMESPEC,
     ])
 
   if test $fu_cv_sys_struct_timespec = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_STRUCT_TIMESPEC, 1,
-                      [Define if struct timespec is declared in <time.h>. ])
+    AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
+             [Define if struct timespec is declared in <time.h>. ])
   fi
 ])