#serial 2 dnl From Jim Meyering. dnl FIXME: this should migrate into libit. AC_DEFUN(AM_FUNC_MKTIME, [AC_REQUIRE([AC_HEADER_TIME])dnl AC_CHECK_HEADERS(sys/time.h) AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime, [AC_TRY_RUN( changequote(<<, >>)dnl < # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif static time_t time_t_max; /* Values we'll use to set the TZ environment variable. */ static const char *const tz_strings[] = { NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) static void mktime_test (now) time_t now; { if (mktime (localtime (&now)) != now) exit (1); now = time_t_max - now; if (mktime (localtime (&now)) != now) exit (1); } int main () { time_t t, delta; int i; for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) continue; time_t_max--; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) mktime_test (t); mktime_test ((time_t) 60 * 60); mktime_test ((time_t) 60 * 60 * 24); } exit (0); } >>, changequote([, ])dnl am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no, dnl When crosscompiling, assume mktime is missing or broken. am_cv_func_working_mktime=no) ]) if test $am_cv_func_working_mktime = no; then LIBOBJS="$LIBOBJS mktime.o" fi ])