-#serial 3
+#serial 19
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_DEFUN([jm_CHECK_DECLS],
[
+ AC_REQUIRE([_jm_DECL_HEADERS])
+ AC_REQUIRE([AC_HEADER_TIME])
headers='
#include <stdio.h>
-#ifdef HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#include <sys/types.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
#else
-# ifdef HAVE_STRINGS_H
-# include <strings.h>
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
# endif
#endif
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
+
+#if HAVE_UTMP_H
+# include <utmp.h>
#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
+
+#if HAVE_GRP_H
+# include <grp.h>
+#endif
+
+#if HAVE_PWD_H
+# include <pwd.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
+ 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 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,
+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],
[
- 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
-
- headers='
-/* Some systems need this in order to declare localtime_r properly. */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <sys/types.h>
-#include <time.h>
-'
- jm_CHECK_DECLARATIONS($headers, localtime_r)
+ 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)
])