Followup to the 2007-02-12 patch, using suggestions from Bruno Haible in
[gnulib.git] / m4 / timegm.m4
1 # timegm.m4 serial 5
2 dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 AC_DEFUN([gl_FUNC_TIMEGM],
8 [
9   AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
10   AC_REQUIRE([gl_FUNC_MKTIME])
11   if test $ac_cv_func_working_mktime = no; then
12     # Assume that timegm is buggy if mktime is.
13     AC_LIBOBJ([timegm])
14     ac_cv_func_timegm=no
15   else
16     AC_REPLACE_FUNCS(timegm)
17   fi
18   REPLACE_TIMEGM=1
19   if test $ac_cv_func_timegm = yes; then
20     AC_CHECK_DECLS([timegm], [REPLACE_TIMEGM=0], [], [#include <time.h>])
21   fi
22   if test $REPLACE_TIMEGM = 1; then
23     gl_PREREQ_TIMEGM
24   fi
25 ])
26
27 # Prerequisites of lib/timegm.c.
28 AC_DEFUN([gl_PREREQ_TIMEGM], [
29   AC_REQUIRE([gl_TIME_R])
30   AC_REQUIRE([gl_FUNC_MKTIME])
31   if test $ac_cv_func_working_mktime = yes; then
32     AC_CHECK_FUNC(__mktime_internal, ,
33       [# mktime works but it doesn't export __mktime_internal,
34        # so we need to substitute our own mktime implementation.
35        AC_LIBOBJ([mktime])
36        AC_DEFINE([mktime], [rpl_mktime],
37          [Define to rpl_mktime if the replacement function should be used.])
38        gl_PREREQ_MKTIME])
39   fi
40 ])