1 #serial 106 -*- autoconf -*-
3 dnl Misc type-related macros for coreutils.
5 # Copyright (C) 1998, 2000-2007 Free Software Foundation, Inc.
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 # Written by Jim Meyering.
22 AC_DEFUN([coreutils_MACROS],
24 AM_MISSING_PROG(HELP2MAN, help2man)
27 dnl This macro actually runs replacement code. See isc-posix.m4.
28 AC_REQUIRE([AC_ISC_POSIX])dnl
32 AC_REQUIRE([gl_CHECK_DECLS])
34 AC_REQUIRE([gl_PREREQ])
36 AC_REQUIRE([AC_FUNC_FSEEKO])
38 # By default, argmatch should fail calling usage (1).
39 AC_DEFINE(ARGMATCH_DIE, [usage (1)],
40 [Define to the function xargmatch calls on failures.])
41 AC_DEFINE(ARGMATCH_DIE_DECL, [void usage ()],
42 [Define to the declaration of the xargmatch failure function.])
45 AC_REQUIRE([gl_CLOCK_TIME])
47 AC_CHECK_FUNCS_ONCE(directio)
49 AC_CHECK_FUNCS_ONCE( \
67 dnl This can't use AC_REQUIRE; I'm not quite sure why.
70 # for dd.c and shred.c
71 coreutils_saved_libs=$LIBS
72 AC_SEARCH_LIBS([fdatasync], [rt posix4],
73 [test "$ac_cv_search_fdatasync" = "none required" ||
74 LIB_FDATASYNC=$ac_cv_search_fdatasync])
75 AC_SUBST([LIB_FDATASYNC])
76 AC_CHECK_FUNCS(fdatasync)
77 LIBS=$coreutils_saved_libs
79 # See if linking `seq' requires -lm.
80 # It does on nearly every system. The single exception (so far) is
81 # BeOS which has all the math functions in the normal runtime library
82 # and doesn't have a separate math library.
90 AC_TRY_LINK([#include <math.h>], $ac_seq_body, ,
91 [ac_seq_save_LIBS="$LIBS"
93 AC_TRY_LINK([#include <math.h>], $ac_seq_body, SEQ_LIBM=-lm)
94 LIBS="$ac_seq_save_LIBS"
97 AC_REQUIRE([AM_LANGINFO_CODESET])
100 AC_DEFUN([gl_CHECK_ALL_HEADERS],
102 AC_CHECK_HEADERS_ONCE( \
116 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
118 [#if HAVE_SYS_PARAM_H
119 #include <sys/param.h>
123 # This macro must be invoked before any tests that run the compiler.
124 AC_DEFUN([gl_CHECK_ALL_TYPES],
126 dnl This test must come as early as possible after the compiler configuration
127 dnl tests, because the choice of the file model can (in principle) affect
128 dnl whether functions and headers are available, whether they work, etc.
129 AC_REQUIRE([AC_SYS_LARGEFILE])
131 dnl This test must precede tests of compiler characteristics like
132 dnl that for the inline keyword, since it may change the degree to
133 dnl which the compiler supports such features.
134 AC_REQUIRE([AM_C_PROTOTYPES])
136 dnl Checks for typedefs, structures, and compiler characteristics.
137 AC_REQUIRE([AC_C_BIGENDIAN])
138 AC_REQUIRE([AC_C_VOLATILE])
139 AC_REQUIRE([AC_C_INLINE])
140 AC_REQUIRE([AC_C_LONG_DOUBLE])
141 AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
143 AC_REQUIRE([gl_CHECK_ALL_HEADERS])
145 [struct stat.st_author],,,
146 [$ac_includes_default
147 #include <sys/stat.h>
149 AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
151 AC_REQUIRE([AC_TYPE_GETGROUPS])
152 AC_REQUIRE([AC_TYPE_MBSTATE_T])
153 AC_REQUIRE([AC_TYPE_MODE_T])
154 AC_REQUIRE([AC_TYPE_OFF_T])
155 AC_REQUIRE([AC_TYPE_PID_T])
156 AC_REQUIRE([AC_TYPE_SIZE_T])
157 AC_REQUIRE([AC_TYPE_UID_T])
158 AC_CHECK_TYPE(ino_t, unsigned long int)
160 dnl This relies on the fact that Autoconf's implementation of
161 dnl AC_CHECK_TYPE checks includes unistd.h.
162 AC_CHECK_TYPE(major_t, unsigned int)
163 AC_CHECK_TYPE(minor_t, unsigned int)
165 AC_REQUIRE([AC_HEADER_MAJOR])