Don't require autoconf-2.14.1.
[gnulib.git] / m4 / st_mtim.m4
index 2de9649..ec58bef 100644 (file)
@@ -1,14 +1,32 @@
-#serial 1
+#serial 4
 
 dnl From Paul Eggert.
 
-# Define HAVE_ST_MTIM if struct stat has an st_mtim member.
+# Define ST_MTIM_NSEC to be the nanoseconds member of struct stat's st_mtim,
+# if it exists.
 
-AC_DEFUN(AC_STRUCT_ST_MTIM,
- [AC_CACHE_CHECK([for st_mtim in struct stat], ac_cv_struct_st_mtim,
-   [AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/stat.h>], [struct stat s; s.st_mtim;],
-     ac_cv_struct_st_mtim=yes, ac_cv_struct_st_mtim=no)])
-  if test $ac_cv_struct_st_mtim = yes; then
-   AC_DEFINE(HAVE_ST_MTIM)
-  fi])
+AC_DEFUN(AC_STRUCT_ST_MTIM_NSEC,
+ [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim],
+   ac_cv_struct_st_mtim_nsec,
+   [ac_save_CPPFLAGS="$CPPFLAGS"
+    ac_cv_struct_st_mtim_nsec=no
+    # tv_nsec -- the usual case
+    # _tv_nsec -- Solaris 2.6, if
+    #  (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
+    #   && !defined __EXTENSIONS__)
+    # st__tim.tv_nsec -- UnixWare 2.1.2
+    for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
+      CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
+      AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/stat.h>], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
+        [ac_cv_struct_st_mtim_nsec=$ac_val; break])
+    done
+    CPPFLAGS="$ac_save_CPPFLAGS"])
+
+  if test $ac_cv_struct_st_mtim_nsec != no; then
+    AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec,
+      [Define to be the nanoseconds member of struct stat's st_mtim,
+   if it exists.])
+  fi
+ ]
+)