X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fcheck-decl.m4;h=b374705a0210577aca897f30c1ccbfc2cdab0d00;hb=346031e87aad56472286619775c340ba5e5e5ea2;hp=e8bb16c88a76b3d9df90305f732a894ef5a0f395;hpb=7cf376feaf8a30a5823efabb2680e86b89bbd9c7;p=gnulib.git diff --git a/m4/check-decl.m4 b/m4/check-decl.m4 index e8bb16c88..b374705a0 100644 --- a/m4/check-decl.m4 +++ b/m4/check-decl.m4 @@ -1,76 +1,85 @@ -#serial 3 +#serial 18 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 -#ifdef HAVE_STRING_H +#if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else -# ifdef HAVE_STRINGS_H +# if HAVE_STRINGS_H # include # endif #endif -#ifdef HAVE_STDLIB_H +#if HAVE_STDLIB_H # include #endif -#ifdef HAVE_UNISTD_H +#if HAVE_UNISTD_H # include #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 +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif - headers=' -/* Some systems need this in order to declare localtime_r properly. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 +#if HAVE_UTMP_H +# include #endif -#if HAVE_UNISTD_H -# include +#if HAVE_GRP_H +# include #endif -#include -#include +#if HAVE_PWD_H +# include +#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) ])