xref: /netbsd-src/external/gpl2/diffutils/dist/m4/prereq.m4 (revision 75f6d617e282811cb173c2ccfbf5df0dd71f7045)
1#serial 22
2
3dnl These are the prerequisite macros for files in the lib/
4dnl directories of the fileutils, sh-utils, and textutils packages.
5
6AC_DEFUN([jm_PREREQ],
7[
8  jm_PREREQ_ADDEXT
9  jm_PREREQ_CANON_HOST
10  jm_PREREQ_DIRNAME
11  jm_PREREQ_ERROR
12  jm_PREREQ_EXCLUDE
13  jm_PREREQ_GETPAGESIZE
14  jm_PREREQ_HARD_LOCALE
15  jm_PREREQ_HASH
16  jm_PREREQ_HUMAN
17  jm_PREREQ_MBSWIDTH
18  jm_PREREQ_MEMCHR
19  jm_PREREQ_PHYSMEM
20  jm_PREREQ_POSIXVER
21  jm_PREREQ_QUOTEARG
22  jm_PREREQ_READUTMP
23  jm_PREREQ_REGEX
24  jm_PREREQ_TEMPNAME # called by mkstemp
25  jm_PREREQ_XGETCWD
26  jm_PREREQ_XREADLINK
27])
28
29AC_DEFUN([jm_PREREQ_ADDEXT],
30[
31  dnl For addext.c.
32  AC_SYS_LONG_FILE_NAMES
33  AC_CHECK_FUNCS(pathconf)
34  AC_CHECK_HEADERS(limits.h string.h unistd.h)
35])
36
37AC_DEFUN([jm_PREREQ_CANON_HOST],
38[
39  dnl Add any libraries as early as possible.
40  dnl In particular, inet_ntoa needs -lnsl at least on Solaris5.5.1,
41  dnl so we have to add -lnsl to LIBS before checking for that function.
42  AC_SEARCH_LIBS(gethostbyname, [inet nsl])
43
44  dnl These come from -lnsl on Solaris5.5.1.
45  AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa)
46
47  AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa)
48  AC_CHECK_HEADERS(unistd.h string.h netdb.h sys/socket.h \
49                   netinet/in.h arpa/inet.h)
50])
51
52AC_DEFUN([jm_PREREQ_DIRNAME],
53[
54  AC_HEADER_STDC
55  AC_CHECK_HEADERS(string.h)
56])
57
58AC_DEFUN([jm_PREREQ_EXCLUDE],
59[
60  jm_FUNC_FNMATCH
61  AC_HEADER_STDBOOL
62])
63
64AC_DEFUN([jm_PREREQ_GETPAGESIZE],
65[
66  AC_CHECK_FUNCS(getpagesize)
67  AC_CHECK_HEADERS(OS.h unistd.h)
68])
69
70AC_DEFUN([jm_PREREQ_HARD_LOCALE],
71[
72  AC_C_PROTOTYPES
73  AC_CHECK_FUNCS(setlocale)
74  AC_CHECK_HEADERS(locale.h stdlib.h string.h)
75])
76
77AC_DEFUN([jm_PREREQ_HASH],
78[
79  AC_CHECK_HEADERS(stdlib.h)
80  AC_HEADER_STDBOOL
81  AC_REQUIRE([jm_CHECK_DECLS])
82])
83
84# If you use human.c, you need the following files:
85# inttypes.m4 ulonglong.m4
86AC_DEFUN([jm_PREREQ_HUMAN],
87[
88  AC_CHECK_HEADERS(limits.h stdlib.h string.h)
89  AC_CHECK_DECLS([getenv])
90  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
91])
92
93AC_DEFUN([jm_PREREQ_MEMCHR],
94[
95  AC_CHECK_HEADERS(limits.h stdlib.h bp-sym.h)
96])
97
98AC_DEFUN([jm_PREREQ_PHYSMEM],
99[
100  AC_CHECK_HEADERS(sys/pstat.h unistd.h)
101  AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic)
102])
103
104AC_DEFUN([jm_PREREQ_POSIXVER],
105[
106  AC_CHECK_HEADERS(unistd.h)
107  AC_CHECK_DECLS([getenv])
108])
109
110AC_DEFUN([jm_PREREQ_QUOTEARG],
111[
112  AC_CHECK_FUNCS(isascii iswprint)
113  jm_FUNC_MBRTOWC
114  AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h)
115  AC_HEADER_STDC
116  AC_C_BACKSLASH_A
117  AC_MBSTATE_T
118  AM_C_PROTOTYPES
119])
120
121AC_DEFUN([jm_PREREQ_REGEX],
122[
123  dnl FIXME: Maybe provide a btowc replacement someday: solaris-2.5.1 lacks it.
124  dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary
125  dnl to get them.
126  AC_CHECK_FUNCS(bzero bcopy isascii btowc)
127  AC_CHECK_HEADERS(alloca.h libintl.h wctype.h wchar.h)
128  AC_HEADER_STDC
129  AC_FUNC_ALLOCA
130])
131
132AC_DEFUN([jm_PREREQ_TEMPNAME],
133[
134  AC_HEADER_STDC
135  AC_HEADER_STAT
136  AC_CHECK_HEADERS(fcntl.h sys/time.h stdint.h unistd.h)
137  AC_CHECK_FUNCS(__secure_getenv gettimeofday)
138  AC_CHECK_DECLS([getenv])
139])
140
141AC_DEFUN([jm_PREREQ_XGETCWD],
142[
143  AC_C_PROTOTYPES
144  AC_CHECK_HEADERS(limits.h stdlib.h sys/param.h unistd.h)
145  AC_CHECK_FUNCS(getcwd)
146  AC_FUNC_GETCWD_NULL
147])
148
149AC_DEFUN([jm_PREREQ_XREADLINK],
150[
151  AC_C_PROTOTYPES
152  AC_CHECK_HEADERS(limits.h stdlib.h sys/types.h unistd.h)
153])
154