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