(jm_PREREQ_STAT): Remove macro. It is specific to coreutils' stat program.
[gnulib.git] / m4 / timegm.m4
index a0ba0e3..94305ae 100644 (file)
@@ -1,4 +1,4 @@
-# timegm.m4 serial 1
+# timegm.m4 serial 2
 dnl Copyright (C) 2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
 dnl Copyright (C) 2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
@@ -8,18 +8,32 @@ dnl the same distribution terms as the rest of that program.
 
 AC_DEFUN([gl_FUNC_TIMEGM],
 [
 
 AC_DEFUN([gl_FUNC_TIMEGM],
 [
-  AC_REPLACE_FUNCS(timegm)
+  AC_REQUIRE([gl_FUNC_MKTIME])
+  if test $ac_cv_func_working_mktime = no; then
+    # Assume that timegm is buggy if mktime is.
+    AC_LIBOBJ([timegm])
+    ac_cv_func_timegm=no
+  else
+    AC_REPLACE_FUNCS(timegm)
+  fi
   if test $ac_cv_func_timegm = no; then
     gl_PREREQ_TIMEGM
   fi
   if test $ac_cv_func_timegm = no; then
     gl_PREREQ_TIMEGM
   fi
+
+  AC_CHECK_DECLS([timegm], , , [#include <time.h>])
 ])
 
 # Prerequisites of lib/timegm.c.
 AC_DEFUN([gl_PREREQ_TIMEGM], [
 ])
 
 # Prerequisites of lib/timegm.c.
 AC_DEFUN([gl_PREREQ_TIMEGM], [
-  AC_CHECK_DECLS(gmtime_r,,,[
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-])
-  AC_CHECK_FUNCS(gmtime_r)
+  AC_REQUIRE([gl_TIME_R])
+  AC_REQUIRE([gl_FUNC_MKTIME])
+  if test $ac_cv_func_working_mktime = yes; then
+    AC_CHECK_FUNC(__mktime_internal, ,
+      [# mktime works but it doesn't export __mktime_internal,
+       # so we need to substitute our own mktime implementation.
+       AC_LIBOBJ([mktime])
+       AC_DEFINE([mktime], [rpl_mktime],
+        [Define to rpl_mktime if the replacement function should be used.])
+       gl_PREREQ_MKTIME])
+  fi
 ])
 ])