dnl Check: dnl * If we have gettimeofday; dnl * If we have struct timezone for use in calling it; dnl * If calling it with a timezone pointer actually works -- this is deemed dnl obsolete or undefined on some systems which say you should use a null dnl pointer -- and undefine HAVE_TIMEZONE if so; dnl * Whether it only takes one arg. AC_DEFUN(LIBU77_GETTIMEOFDAY, [ AC_CHECK_FUNCS(gettimeofday) if test "$ac_cv_func_gettimeofday" = yes; then AC_CACHE_CHECK([for struct timezone], g77_cv_struct_timezone, [AC_TRY_COMPILE([#include <sys/time.h>], [struct timezone tz;], g77_cv_struct_timezone=yes, g77_cv_struct_timezone=no)]) if test $g77_cv_struct_timezone = yes; then dnl It may be that we can't call gettimeofday with a non-null pointer. dnl In that case we'll lie about struct timezone. AC_TRY_RUN([ #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> #include <time.h> #else #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #else #include <time.h> #endif #endif main () { struct timeval time; struct timezone dummy; if (gettimeofday (&time, &dummy)) exit (1); else exit (0); }], [AC_DEFINE(HAVE_TIMEZONE)], ,[AC_DEFINE(HAVE_TIMEZONE)]) fi AC_REQUIRE([AC_HEADER_TIME]) AC_CACHE_CHECK(whether gettimeofday can accept two arguments, emacs_cv_gettimeofday_two_arguments, AC_TRY_LINK([ #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> #include <time.h> #else #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #else #include <time.h> #endif #endif ], [ struct timeval time; #ifdef HAVE_TIMEZONE struct timezone dummy; #define DUMMY &dummy #else #define DUMMY NULL #endif gettimeofday (&time, DUMMY);], emacs_cv_gettimeofday_two_arguments=yes, emacs_cv_gettimeofday_two_arguments=no)) if test $emacs_cv_gettimeofday_two_arguments = no; then AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT) fi fi])