xref: /netbsd-src/external/gpl2/diffutils/dist/m4/check-decl.m4 (revision 75f6d617e282811cb173c2ccfbf5df0dd71f7045)
1*75f6d617Schristos#serial 18
2*75f6d617Schristos
3*75f6d617Schristosdnl This is just a wrapper function to encapsulate this kludge.
4*75f6d617Schristosdnl Putting it in a separate file like this helps share it between
5*75f6d617Schristosdnl different packages.
6*75f6d617SchristosAC_DEFUN([jm_CHECK_DECLS],
7*75f6d617Schristos[
8*75f6d617Schristos  AC_REQUIRE([_jm_DECL_HEADERS])
9*75f6d617Schristos  AC_REQUIRE([AC_HEADER_TIME])
10*75f6d617Schristos  headers='
11*75f6d617Schristos#include <stdio.h>
12*75f6d617Schristos#if HAVE_STRING_H
13*75f6d617Schristos# if !STDC_HEADERS && HAVE_MEMORY_H
14*75f6d617Schristos#  include <memory.h>
15*75f6d617Schristos# endif
16*75f6d617Schristos# include <string.h>
17*75f6d617Schristos#else
18*75f6d617Schristos# if HAVE_STRINGS_H
19*75f6d617Schristos#  include <strings.h>
20*75f6d617Schristos# endif
21*75f6d617Schristos#endif
22*75f6d617Schristos#if HAVE_STDLIB_H
23*75f6d617Schristos# include <stdlib.h>
24*75f6d617Schristos#endif
25*75f6d617Schristos#if HAVE_UNISTD_H
26*75f6d617Schristos# include <unistd.h>
27*75f6d617Schristos#endif
28*75f6d617Schristos
29*75f6d617Schristos#include <sys/types.h>
30*75f6d617Schristos#if TIME_WITH_SYS_TIME
31*75f6d617Schristos# include <sys/time.h>
32*75f6d617Schristos# include <time.h>
33*75f6d617Schristos#else
34*75f6d617Schristos# if HAVE_SYS_TIME_H
35*75f6d617Schristos#  include <sys/time.h>
36*75f6d617Schristos# else
37*75f6d617Schristos#  include <time.h>
38*75f6d617Schristos# endif
39*75f6d617Schristos#endif
40*75f6d617Schristos
41*75f6d617Schristos#if HAVE_UTMP_H
42*75f6d617Schristos# include <utmp.h>
43*75f6d617Schristos#endif
44*75f6d617Schristos
45*75f6d617Schristos#if HAVE_GRP_H
46*75f6d617Schristos# include <grp.h>
47*75f6d617Schristos#endif
48*75f6d617Schristos
49*75f6d617Schristos#if HAVE_PWD_H
50*75f6d617Schristos# include <pwd.h>
51*75f6d617Schristos#endif
52*75f6d617Schristos'
53*75f6d617Schristos
54*75f6d617Schristos  AC_CHECK_DECLS([
55*75f6d617Schristos    free,
56*75f6d617Schristos    getenv,
57*75f6d617Schristos    geteuid,
58*75f6d617Schristos    getgrgid,
59*75f6d617Schristos    getlogin,
60*75f6d617Schristos    getpwuid,
61*75f6d617Schristos    getuid,
62*75f6d617Schristos    getutent,
63*75f6d617Schristos    lseek,
64*75f6d617Schristos    malloc,
65*75f6d617Schristos    memchr,
66*75f6d617Schristos    memrchr,
67*75f6d617Schristos    nanosleep,
68*75f6d617Schristos    realloc,
69*75f6d617Schristos    stpcpy,
70*75f6d617Schristos    strndup,
71*75f6d617Schristos    strnlen,
72*75f6d617Schristos    strstr,
73*75f6d617Schristos    strtoul,
74*75f6d617Schristos    strtoull,
75*75f6d617Schristos    ttyname], , , $headers)
76*75f6d617Schristos])
77*75f6d617Schristos
78*75f6d617Schristosdnl FIXME: when autoconf has support for it.
79*75f6d617Schristosdnl This is a little helper so we can require these header checks.
80*75f6d617SchristosAC_DEFUN([_jm_DECL_HEADERS],
81*75f6d617Schristos[
82*75f6d617Schristos  AC_REQUIRE([AC_HEADER_STDC])
83*75f6d617Schristos  AC_CHECK_HEADERS(grp.h memory.h pwd.h string.h strings.h stdlib.h \
84*75f6d617Schristos                   unistd.h sys/time.h utmp.h utmpx.h)
85*75f6d617Schristos])
86