Add time_r module. Change timegm, mktime, and strftime to use localtime_r
[gnulib.git] / m4 / timegm.m4
1 # timegm.m4 serial 2
2 dnl Copyright (C) 2003 Free Software Foundation, Inc.
3 dnl This file is free software, distributed under the terms of the GNU
4 dnl General Public License.  As a special exception to the GNU General
5 dnl Public License, this file may be distributed as part of a program
6 dnl that contains a configuration script generated by Autoconf, under
7 dnl the same distribution terms as the rest of that program.
8
9 AC_DEFUN([gl_FUNC_TIMEGM],
10 [
11   AC_REQUIRE([gl_FUNC_MKTIME])
12   if test $ac_cv_func_working_mktime = no; then
13     # Assume that timegm is buggy if mktime is.
14     AC_LIBOBJ([timegm])
15     ac_cv_func_timegm=no
16   else
17     AC_REPLACE_FUNCS(timegm)
18   fi
19   if test $ac_cv_func_timegm = no; then
20     gl_PREREQ_TIMEGM
21   fi
22
23   AC_CHECK_DECLS([timegm], , , [#include <time.h>])
24 ])
25
26 # Prerequisites of lib/timegm.c.
27 AC_DEFUN([gl_PREREQ_TIMEGM], [
28   AC_REQUIRE([gl_TIME_R])
29   AC_REQUIRE([gl_FUNC_MKTIME])
30   if test $ac_cv_func_working_mktime = yes; then
31     AC_CHECK_FUNC(__mktime_internal, ,
32       [# mktime works but it doesn't export __mktime_internal,
33        # so we need to substitute our own mktime implementation.
34        AC_LIBOBJ([mktime])
35        AC_DEFINE([mktime], [rpl_mktime],
36          [Define to rpl_mktime if the replacement function should be used.])
37        gl_PREREQ_MKTIME])
38   fi
39 ])