-#serial 3
+#serial 17
dnl This is just a wrapper function to encapsulate this kludge.
dnl Putting it in a separate file like this helps share it between
dnl different packages.
AC_DEFUN(jm_CHECK_DECLS,
[
+ AC_REQUIRE([_jm_DECL_HEADERS])
+ AC_REQUIRE([AC_HEADER_TIME])
headers='
#include <stdio.h>
-#ifdef HAVE_STRING_H
+#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
-# ifdef HAVE_STRINGS_H
+# if HAVE_STRINGS_H
# include <strings.h>
# endif
#endif
-#ifdef HAVE_STDLIB_H
+#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
-#ifdef HAVE_UNISTD_H
+#if HAVE_UNISTD_H
# include <unistd.h>
#endif
-'
- if test x = y; then
- dnl This code is deliberately never run via ./configure.
- dnl FIXME: this is a gross hack to make autoheader put entries
- dnl for each of these symbols in the config.h.in.
- dnl Otherwise, I'd have to update acconfig.h every time I change
- dnl this list of functions.
- AC_CHECK_FUNCS(DECL_FREE DECL_LSEEK DECL_MALLOC DECL_MEMCHR DECL_REALLOC \
- DECL_STPCPY DECL_STRSTR)
- fi
- jm_CHECK_DECLARATIONS($headers, free lseek malloc \
- memchr realloc stpcpy strstr)
- # Check for a declaration of localtime_r.
- jm_CHECK_DECL_LOCALTIME_R
-])
-
-dnl localtime_r is a special case...
-dnl Code that uses the result of this test must use the same cpp
-dnl directives as are used below. Also include the following declaration
-dnl after the inclusion of time.h.
-dnl
-dnl #if ! defined HAVE_DECL_LOCALTIME_R
-dnl extern struct tm* localtime_r ();
-dnl #endif
-AC_DEFUN(jm_CHECK_DECL_LOCALTIME_R,
-[
- if test x = y; then
- dnl This code is deliberately never run via ./configure.
- dnl FIXME: this is a gross hack to make autoheader put entries
- dnl for each of these symbols in the config.h.in.
- dnl Otherwise, I'd have to update acconfig.h every time I change
- dnl this list of functions.
- AC_CHECK_FUNCS(DECL_LOCALTIME_R)
- fi
+#include <sys/types.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
- headers='
-/* Some systems need this in order to declare localtime_r properly. */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
+#if HAVE_UTMP_H
+# include <utmp.h>
#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
+#if HAVE_GRP_H
+# include <grp.h>
#endif
-#include <sys/types.h>
-#include <time.h>
+#if HAVE_PWD_H
+# include <pwd.h>
+#endif
'
- jm_CHECK_DECLARATIONS($headers, localtime_r)
+
+ AC_CHECK_DECLS([
+ free,
+ getenv,
+ geteuid,
+ getgrgid,
+ getlogin,
+ getpwuid,
+ getuid,
+ getutent,
+ lseek,
+ malloc,
+ memchr,
+ memrchr,
+ nanosleep,
+ realloc,
+ stpcpy,
+ strndup,
+ strnlen,
+ strstr,
+ strtoul,
+ strtoull,
+ ttyname], , , $headers)
+])
+
+dnl FIXME: when autoconf has support for it.
+dnl This is a little helper so we can require these header checks.
+AC_DEFUN(_jm_DECL_HEADERS,
+[
+ AC_REQUIRE([AC_HEADER_STDC])
+ AC_CHECK_HEADERS(grp.h memory.h pwd.h string.h strings.h stdlib.h \
+ unistd.h sys/time.h utmp.h utmpx.h)
])