1 #serial 28 -*- 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])
107 AC_REPLACE_FUNCS(strcasecmp strncasecmp)
108 AC_REPLACE_FUNCS(dup2)
109 AC_REPLACE_FUNCS(gethostname getusershell)
110 AC_REPLACE_FUNCS(stime strcspn stpcpy strstr strtol strtoul)
111 AC_REPLACE_FUNCS(strpbrk)
112 AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
113 AC_REPLACE_FUNCS(atexit)
114 AC_REPLACE_FUNCS(strnlen)
115 AC_REPLACE_FUNCS(getpass)
117 dnl used by e.g. intl/*domain.c and lib/canon-host.c
118 AC_REPLACE_FUNCS(strdup)
120 AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
121 AC_CHECK_FUNCS(getpagesize)
123 # By default, argmatch should fail calling usage (1).
124 AC_DEFINE(ARGMATCH_DIE, [usage (1)],
125 [Define to the function xargmatch calls on failures.])
126 AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()],
127 [Define to the declaration of the xargmatch failure function.])
129 dnl Used to define SETVBUF in sys2.h.
130 dnl This evokes the following warning from autoconf:
131 dnl ...: warning: AC_TRY_RUN called without default to allow cross compiling
132 AC_FUNC_SETVBUF_REVERSED
134 # used by sleep and shred
135 # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
136 # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
138 # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all*
139 # programs in the package would end up linked with that potentially-shared
140 # library, inducing unnecessary run-time overhead.
141 fetish_saved_libs=$LIBS
142 AC_SEARCH_LIBS(clock_gettime, [rt posix4],
143 [LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
144 AC_SUBST(LIB_CLOCK_GETTIME)
145 AC_CHECK_FUNCS(clock_gettime)
146 LIBS=$fetish_saved_libs
147 AC_CHECK_FUNCS(gettimeofday)
149 AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
150 AC_REQUIRE([jm_FUNC_UTIME])
185 if test $am_cv_func_working_getline != yes; then
186 AC_CHECK_FUNCS(getdelim)
192 test $am_cv_func_strtod_needs_libm = yes && POW_LIBM=-lm
194 # See if linking `seq' requires -lm.
195 # It does on nearly every system. The single exception (so far) is
196 # BeOS which has all the math functions in the normal runtime library
197 # and doesn't have a separate math library.
205 AC_TRY_LINK([#include <math.h>], $ac_seq_body, ,
206 [ac_seq_save_LIBS="$LIBS"
208 AC_TRY_LINK([#include <math.h>], $ac_seq_body, SEQ_LIBM=-lm)
209 LIBS="$ac_seq_save_LIBS"
215 jm_FUNC_UNLINK_BUSY_TEXT
217 # These tests are for df.
218 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
220 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
221 if test $list_mounted_fs = yes && test $space = yes; then
229 # This macro must be invoked before any tests that run the compiler.
230 AC_DEFUN(jm_CHECK_ALL_TYPES,
232 # FIXME: I shouldn't have to require this macro here. Rather, it should
233 # be required by any autoconf macro that performs a compile-time test or
234 # otherwise uses confdefs.h.
235 AC_REQUIRE([AC__GNU_SOURCE])
237 dnl This test must come as early as possible after the compiler configuration
238 dnl tests, because the choice of the file model can (in principle) affect
239 dnl whether functions and headers are available, whether they work, etc.
240 AC_REQUIRE([AC_SYS_LARGEFILE])
242 dnl This test must precede tests of compiler characteristics like
243 dnl that for the inline keyword, since it may change the degree to
244 dnl which the compiler supports such features.
245 AC_REQUIRE([AM_C_PROTOTYPES])
247 dnl Checks for typedefs, structures, and compiler characteristics.
248 AC_REQUIRE([AC_C_BIGENDIAN])
249 AC_REQUIRE([AC_PROG_CC_STDC])
250 AC_REQUIRE([AC_C_CONST])
251 AC_REQUIRE([AC_C_VOLATILE])
252 AC_REQUIRE([AC_C_INLINE])
253 AC_REQUIRE([AC_C_LONG_DOUBLE])
255 AC_REQUIRE([AC_HEADER_DIRENT])
256 AC_REQUIRE([AC_HEADER_STDC])
257 AC_CHECK_MEMBERS([struct stat.st_blksize],,,[$ac_includes_default
258 #include <sys/stat.h>
260 AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
262 AC_REQUIRE([AC_STRUCT_TM])
263 AC_REQUIRE([AC_STRUCT_TIMEZONE])
264 AC_REQUIRE([AC_HEADER_STAT])
265 AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
266 AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
267 AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
269 AC_REQUIRE([AC_TYPE_GETGROUPS])
270 AC_REQUIRE([AC_TYPE_MODE_T])
271 AC_REQUIRE([AC_TYPE_OFF_T])
272 AC_REQUIRE([AC_TYPE_PID_T])
273 AC_REQUIRE([AC_TYPE_SIGNAL])
274 AC_REQUIRE([AC_TYPE_SIZE_T])
275 AC_REQUIRE([AC_TYPE_UID_T])
276 AC_CHECK_TYPE(ino_t, unsigned long)
278 dnl This relies on the fact that autoconf 2.14a's implementation of
279 dnl AC_CHECK_TYPE checks includes unistd.h.
280 AC_CHECK_TYPE(ssize_t, int)
282 AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
283 AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
285 AC_REQUIRE([AC_HEADER_MAJOR])
286 AC_REQUIRE([AC_HEADER_DIRENT])