*** empty log message ***
[findutils.git] / m4 / jm-macros.m4
blob4bbad523a78f00eb496bc9113d25a33acfbff737
1 #serial 13, with several lines deleted for fileutils.
3 dnl Misc type-related macros for fileutils, sh-utils, textutils.
5 AC_DEFUN(jm_MACROS,
7   AC_PREREQ(2.14a)
9   GNU_PACKAGE="GNU $PACKAGE"
10   AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
11     [The concatenation of the strings `GNU ', and PACKAGE.])
12   AC_SUBST(GNU_PACKAGE)
14   AC_SUBST(OPTIONAL_BIN_PROGS)
15   AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
16   AC_SUBST(MAN)
17   AC_SUBST(DF_PROG)
19   dnl This macro actually runs replacement code.  See isc-posix.m4.
20   AC_REQUIRE([AC_ISC_POSIX])dnl
22   AC_CHECK_HEADERS( \
23     errno.h  \
24     fcntl.h \
25     fenv.h \
26     float.h \
27     limits.h \
28     memory.h \
29     mntent.h \
30     mnttab.h \
31     netdb.h \
32     paths.h \
33     stdlib.h \
34     stddef.h \
35     string.h \
36     sys/acl.h \
37     sys/filsys.h \
38     sys/fs/s5param.h \
39     sys/fs_types.h \
40     sys/fstyp.h \
41     sys/ioctl.h \
42     sys/mntent.h \
43     sys/mount.h \
44     sys/param.h \
45     sys/socket.h \
46     sys/statfs.h \
47     sys/statvfs.h \
48     sys/systeminfo.h \
49     sys/time.h \
50     sys/timeb.h \
51     sys/vfs.h \
52     sys/wait.h \
53     syslog.h \
54     termios.h \
55     unistd.h \
56     values.h \
57   )
59   jm_INCLUDED_REGEX([lib/regex.c])
61   AC_REQUIRE([jm_ASSERT])
62   AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
63   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
64   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO])
65   AC_REQUIRE([jm_CHECK_DECLS])
67   AC_REQUIRE([jm_PREREQ])
69   AC_REQUIRE([jm_FUNC_MKTIME])
70   AC_REQUIRE([jm_FUNC_LSTAT])
71   AC_REQUIRE([jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
72   AC_REQUIRE([jm_FUNC_STAT])
73   AC_REQUIRE([jm_FUNC_REALLOC])
74   AC_REQUIRE([jm_FUNC_MALLOC])
75   AC_REQUIRE([AC_FUNC_STRERROR_R])
76   AC_REQUIRE([jm_FUNC_READDIR])
77   AC_REQUIRE([jm_FUNC_MEMCMP])
78   AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
79   AC_REQUIRE([kd_FUNC_FNMATCH_CASE_RPL])
80   AC_REQUIRE([jm_AFS])
81   AC_REQUIRE([jm_AC_PREREQ_XSTRTOUMAX])
82   AC_REQUIRE([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK])
83   AC_REQUIRE([AM_FUNC_ERROR_AT_LINE])
84   AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
85   AC_REQUIRE([jm_FUNC_MKTIME])
87   AC_REQUIRE([AC_FUNC_VPRINTF])
88   AC_REQUIRE([AC_FUNC_ALLOCA])
90   AC_REPLACE_FUNCS(strncasecmp)
91   AC_REPLACE_FUNCS(stpcpy strstr strtol strtoul)
92   AC_REPLACE_FUNCS(memcmp rpmatch)
94   dnl used by e.g. intl/*domain.c and lib/canon-host.c
95   AC_REPLACE_FUNCS(strdup)
97   AC_REPLACE_FUNCS(memcpy memset)
98   AC_CHECK_FUNCS(getpagesize)
100   # By default, argmatch should fail calling usage (1).
101   AC_DEFINE(ARGMATCH_DIE, [usage (1)],
102             [Define to the function xargmatch calls on failures.])
103   AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()],
104             [Define to the declaration of the xargmatch failure function.])
106   dnl Used to define SETVBUF in sys2.h.
107   dnl This evokes the following warning from autoconf:
108   dnl ...: warning: AC_TRY_RUN called without default to allow cross compiling
109   AC_FUNC_SETVBUF_REVERSED
111   AC_CHECK_FUNCS(getdelim)
113   AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
115   AC_CHECK_FUNCS( \
116     acl \
117     bcopy \
118     endgrent \
119     endpwent \
120     fchdir \
121     fdatasync \
122     fseeko \
123     ftime \
124     getcwd \
125     gethrtime \
126     getmntinfo \
127     hasmntopt \
128     isascii \
129     listmntent \
130     localeconv \
131     memcpy \
132     mempcpy \
133     mkfifo \
134     realpath \
135     resolvepath \
136     sethostname \
137     strchr \
138     strerror \
139     strrchr \
140     sysinfo \
141     tzset \
142   )
144   AM_FUNC_GETLINE
145   if test $am_cv_func_working_getline != yes; then
146     AC_CHECK_FUNCS(getdelim)
147   fi
149   jm_GLIBC21
150   jm_ICONV
152   # These tests are for df.
153   jm_FSTYPENAME
157 AC_DEFUN(jm_CHECK_ALL_TYPES,
159   dnl Checks for typedefs, structures, and compiler characteristics.
160   AC_REQUIRE([AC_C_BIGENDIAN])
161   AC_REQUIRE([AC_PROG_CC_STDC])
162   AC_REQUIRE([AC_C_CONST])
163   AC_REQUIRE([AC_C_VOLATILE])
164   AC_REQUIRE([AC_C_INLINE])
165   AC_REQUIRE([AC_C_LONG_DOUBLE])
167   AC_REQUIRE([AC_HEADER_DIRENT])
168   AC_REQUIRE([AC_HEADER_STDC])
169   AC_CHECK_MEMBERS([struct stat.st_blksize],,,[$ac_includes_default
170 #include <sys/stat.h>
171   ])
172   AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
174   AC_REQUIRE([AC_STRUCT_TM])
175   AC_REQUIRE([AC_STRUCT_TIMEZONE])
176   AC_REQUIRE([AC_HEADER_STAT])
177   AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
178   AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
179   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
181   AC_REQUIRE([AC_TYPE_GETGROUPS])
182   AC_REQUIRE([AC_TYPE_MODE_T])
183   AC_REQUIRE([AC_TYPE_OFF_T])
184   AC_REQUIRE([AC_TYPE_PID_T])
185   AC_REQUIRE([AC_TYPE_SIGNAL])
186   AC_REQUIRE([AC_TYPE_SIZE_T])
187   AC_REQUIRE([AC_TYPE_UID_T])
188   AC_CHECK_TYPE(ino_t, unsigned long)
190   dnl This relies on the fact that autoconf 2.14a's implementation of
191   dnl AC_CHECK_TYPE checks includes unistd.h.
192   AC_CHECK_TYPE(ssize_t, int)
194   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
195   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
197   AC_REQUIRE([AC_HEADER_MAJOR])
198   AC_REQUIRE([AC_HEADER_DIRENT])