1 #serial 30 -*- autoconf -*-
3 dnl Misc type-related macros for fileutils, sh-utils, textutils.
9 GNU_PACKAGE="GNU $PACKAGE"
10 AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
11 [The concatenation of the strings `GNU ', and PACKAGE.])
14 AC_SUBST(OPTIONAL_BIN_PROGS)
15 AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
19 dnl This macro actually runs replacement code. See isc-posix.m4.
20 AC_REQUIRE([AC_ISC_POSIX])dnl
61 jm_INCLUDED_REGEX([lib/regex.c])
63 AC_REQUIRE([jm_BISON])
64 AC_REQUIRE([jm_ASSERT])
65 AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
66 AC_REQUIRE([jm_CHECK_TYPE_STRUCT_UTIMBUF])
67 AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
68 AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO])
69 AC_REQUIRE([jm_CHECK_DECLS])
71 AC_REQUIRE([jm_PREREQ])
73 AC_REQUIRE([jm_FUNC_LCHOWN])
74 AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY])
75 AC_REQUIRE([jm_FUNC_CHOWN])
76 AC_REQUIRE([jm_FUNC_MKTIME])
77 AC_REQUIRE([jm_FUNC_LSTAT])
78 AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
79 AC_REQUIRE([jm_FUNC_STAT])
80 AC_REQUIRE([jm_FUNC_REALLOC])
81 AC_REQUIRE([jm_FUNC_MALLOC])
82 AC_REQUIRE([AC_FUNC_STRERROR_R])
83 AC_REQUIRE([jm_FUNC_NANOSLEEP])
84 AC_REQUIRE([jm_FUNC_READDIR])
85 AC_REQUIRE([jm_FUNC_MEMCMP])
86 AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
87 AC_REQUIRE([jm_FUNC_FNMATCH])
88 AC_REQUIRE([jm_FUNC_GROUP_MEMBER])
89 AC_REQUIRE([jm_FUNC_PUTENV])
91 AC_REQUIRE([jm_AC_PREREQ_XSTRTOUMAX])
92 AC_REQUIRE([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK])
93 AC_REQUIRE([AM_FUNC_ERROR_AT_LINE])
94 AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
95 AC_REQUIRE([jm_FUNC_MKTIME])
96 AC_REQUIRE([jm_FUNC_FPENDING])
98 AC_REQUIRE([jm_FUNC_GETGROUPS])
99 test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS"
101 AC_REQUIRE([AC_FUNC_VPRINTF])
102 AC_REQUIRE([AC_FUNC_ALLOCA])
103 AC_FUNC_GETLOADAVG([lib])
104 AC_REQUIRE([jm_SYS_PROC_UPTIME])
105 AC_REQUIRE([jm_FUNC_FTRUNCATE])
106 AC_REQUIRE([vb_FUNC_RENAME])
108 AC_REPLACE_FUNCS(strcasecmp strncasecmp)
109 AC_REPLACE_FUNCS(dup2)
110 AC_REPLACE_FUNCS(gethostname getusershell)
111 AC_REPLACE_FUNCS(stime strcspn stpcpy strstr strtol strtoul)
112 AC_REPLACE_FUNCS(strpbrk)
113 AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
114 AC_REPLACE_FUNCS(atexit)
115 AC_REPLACE_FUNCS(strnlen)
116 AC_REPLACE_FUNCS(getpass)
118 dnl used by e.g. intl/*domain.c and lib/canon-host.c
119 AC_REPLACE_FUNCS(strdup)
121 AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
122 AC_CHECK_FUNCS(getpagesize)
124 # By default, argmatch should fail calling usage (1).
125 AC_DEFINE(ARGMATCH_DIE, [usage (1)],
126 [Define to the function xargmatch calls on failures.])
127 AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()],
128 [Define to the declaration of the xargmatch failure function.])
130 dnl Used to define SETVBUF in sys2.h.
131 dnl This evokes the following warning from autoconf:
132 dnl ...: warning: AC_TRY_RUN called without default to allow cross compiling
133 AC_FUNC_SETVBUF_REVERSED
135 # used by sleep and shred
136 # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
137 # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
139 # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all*
140 # programs in the package would end up linked with that potentially-shared
141 # library, inducing unnecessary run-time overhead.
142 fetish_saved_libs=$LIBS
143 AC_SEARCH_LIBS(clock_gettime, [rt posix4],
144 [LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
145 AC_SUBST(LIB_CLOCK_GETTIME)
146 AC_CHECK_FUNCS(clock_gettime)
147 LIBS=$fetish_saved_libs
148 AC_CHECK_FUNCS(gettimeofday)
150 AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
151 AC_REQUIRE([jm_FUNC_UTIME])
186 if test $am_cv_func_working_getline != yes; then
187 AC_CHECK_FUNCS(getdelim)
193 test $am_cv_func_strtod_needs_libm = yes && POW_LIBM=-lm
195 # See if linking `seq' requires -lm.
196 # It does on nearly every system. The single exception (so far) is
197 # BeOS which has all the math functions in the normal runtime library
198 # and doesn't have a separate math library.
206 AC_TRY_LINK([#include <math.h>], $ac_seq_body, ,
207 [ac_seq_save_LIBS="$LIBS"
209 AC_TRY_LINK([#include <math.h>], $ac_seq_body, SEQ_LIBM=-lm)
210 LIBS="$ac_seq_save_LIBS"
216 jm_FUNC_UNLINK_BUSY_TEXT
218 # These tests are for df.
219 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
221 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
222 if test $list_mounted_fs = yes && test $space = yes; then
227 AC_REQUIRE([jm_AC_DOS])
231 # This macro must be invoked before any tests that run the compiler.
232 AC_DEFUN(jm_CHECK_ALL_TYPES,
234 # FIXME: I shouldn't have to require this macro here. Rather, it should
235 # be required by any autoconf macro that performs a compile-time test or
236 # otherwise uses confdefs.h.
237 AC_REQUIRE([AC__GNU_SOURCE])
239 dnl This test must come as early as possible after the compiler configuration
240 dnl tests, because the choice of the file model can (in principle) affect
241 dnl whether functions and headers are available, whether they work, etc.
242 AC_REQUIRE([AC_SYS_LARGEFILE])
244 dnl This test must precede tests of compiler characteristics like
245 dnl that for the inline keyword, since it may change the degree to
246 dnl which the compiler supports such features.
247 AC_REQUIRE([AM_C_PROTOTYPES])
249 dnl Checks for typedefs, structures, and compiler characteristics.
250 AC_REQUIRE([AC_C_BIGENDIAN])
251 AC_REQUIRE([AC_PROG_CC_STDC])
252 AC_REQUIRE([AC_C_CONST])
253 AC_REQUIRE([AC_C_VOLATILE])
254 AC_REQUIRE([AC_C_INLINE])
255 AC_REQUIRE([AC_C_LONG_DOUBLE])
257 AC_REQUIRE([AC_HEADER_DIRENT])
258 AC_REQUIRE([AC_HEADER_STDC])
259 AC_CHECK_MEMBERS([struct stat.st_blksize],,,[$ac_includes_default
260 #include <sys/stat.h>
262 AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
264 AC_REQUIRE([AC_STRUCT_TM])
265 AC_REQUIRE([AC_STRUCT_TIMEZONE])
266 AC_REQUIRE([AC_HEADER_STAT])
267 AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
268 AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
269 AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
271 AC_REQUIRE([AC_TYPE_GETGROUPS])
272 AC_REQUIRE([AC_TYPE_MODE_T])
273 AC_REQUIRE([AC_TYPE_OFF_T])
274 AC_REQUIRE([AC_TYPE_PID_T])
275 AC_REQUIRE([AC_TYPE_SIGNAL])
276 AC_REQUIRE([AC_TYPE_SIZE_T])
277 AC_REQUIRE([AC_TYPE_UID_T])
278 AC_CHECK_TYPE(ino_t, unsigned long)
280 dnl This relies on the fact that autoconf 2.14a's implementation of
281 dnl AC_CHECK_TYPE checks includes unistd.h.
282 AC_CHECK_TYPE(ssize_t, int)
284 AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
285 AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
287 AC_REQUIRE([AC_HEADER_MAJOR])
288 AC_REQUIRE([AC_HEADER_DIRENT])