-#serial 56 -*- autoconf -*-
+#serial 103 -*- autoconf -*-
-dnl Misc type-related macros for fileutils, sh-utils, textutils.
+dnl Misc type-related macros for coreutils.
-AC_DEFUN([jm_MACROS],
+# Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
+# Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_MACROS],
[
- AC_PREREQ(2.56)
+ gl_INIT
GNU_PACKAGE="GNU $PACKAGE"
AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
AM_MISSING_PROG(HELP2MAN, help2man)
AC_SUBST(OPTIONAL_BIN_PROGS)
- AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
AC_SUBST(MAN)
AC_SUBST(DF_PROG)
dnl This macro actually runs replacement code. See isc-posix.m4.
AC_REQUIRE([AC_ISC_POSIX])dnl
- jm_CHECK_ALL_TYPES
- jm_INCLUDED_REGEX([lib/regex.c])
-
- AC_REQUIRE([UTILS_HOST_OS])
- AC_REQUIRE([UTILS_FUNC_MKDIR_TRAILING_SLASH])
- AC_REQUIRE([jm_BISON])
- AC_REQUIRE([jm_ASSERT])
- AC_REQUIRE([jm_CHECK_TYPE_STRUCT_UTIMBUF])
- AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
- AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO])
- AC_REQUIRE([jm_CHECK_DECLS])
-
- AC_REQUIRE([jm_PREREQ])
-
- AC_REQUIRE([UTILS_FUNC_DIRFD])
- AC_REQUIRE([AC_FUNC_ACL])
- AC_REQUIRE([jm_FUNC_LCHOWN])
- AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY])
- AC_REQUIRE([jm_FUNC_CHOWN])
- AC_REQUIRE([jm_FUNC_MKTIME])
- AC_REQUIRE([jm_FUNC_LSTAT])
- AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
- AC_REQUIRE([jm_FUNC_STAT])
- AC_REQUIRE([AC_FUNC_REALLOC])
- AC_REQUIRE([AC_FUNC_MALLOC])
- AC_REQUIRE([AC_FUNC_STRERROR_R])
- AC_REQUIRE([jm_FUNC_NANOSLEEP])
- AC_REQUIRE([jm_FUNC_MEMCMP])
- AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
- AC_REQUIRE([AC_FUNC_FNMATCH_GNU])
- AC_REQUIRE([jm_FUNC_GROUP_MEMBER])
- AC_REQUIRE([jm_FUNC_PUTENV])
- AC_REQUIRE([jm_AFS])
- AC_REQUIRE([jm_AC_PREREQ_XSTRTOUMAX])
- AC_REQUIRE([jm_AC_PREREQ_XSTRTOIMAX])
- AC_REQUIRE([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK])
- AC_REQUIRE([AC_FUNC_ERROR_AT_LINE])
- AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
- AC_REQUIRE([jm_FUNC_MKTIME])
- AC_REQUIRE([jm_FUNC_FPENDING])
-
- # This is for od and stat, and any other program that
- # uses the PRI.MAX macros from inttypes.h.
- AC_REQUIRE([gt_INTTYPES_PRI])
-
- AC_REQUIRE([jm_FUNC_GETGROUPS])
-
- AC_REQUIRE([AC_FUNC_FSEEKO])
- AC_REQUIRE([AC_FUNC_VPRINTF])
- AC_REQUIRE([AC_FUNC_ALLOCA])
-
- AC_CONFIG_LIBOBJ_DIR([lib])
- AC_FUNC_GETLOADAVG
-
- AC_REQUIRE([jm_SYS_PROC_UPTIME])
- AC_REQUIRE([jm_FUNC_FTRUNCATE])
- AC_REQUIRE([vb_FUNC_RENAME])
+ gl_CHECK_ALL_TYPES
- AC_REPLACE_FUNCS(strcasecmp strncasecmp)
- AC_REPLACE_FUNCS(dup2)
- AC_REPLACE_FUNCS(gethostname getusershell)
- AC_REPLACE_FUNCS(sig2str)
- AC_REPLACE_FUNCS(strcspn stpcpy strstr strtol strtoul)
- AC_REPLACE_FUNCS(strpbrk)
- AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
- AC_REPLACE_FUNCS(atexit)
- AC_REPLACE_FUNCS(getpass)
+ AC_REQUIRE([gl_CHECK_DECLS])
- # raise is used by at least sort and ls.
- AC_REPLACE_FUNCS(raise)
+ AC_REQUIRE([gl_PREREQ])
- dnl used by e.g. intl/*domain.c and lib/canon-host.c
- AC_REPLACE_FUNCS(strdup)
-
- AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
- AC_CHECK_FUNCS(getpagesize)
+ AC_REQUIRE([AC_FUNC_FSEEKO])
- AC_REQUIRE([UTILS_FUNC_MKSTEMP])
+ AC_CONFIG_LIBOBJ_DIR([lib])
# By default, argmatch should fail calling usage (1).
AC_DEFINE(ARGMATCH_DIE, [usage (1)],
AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()],
[Define to the declaration of the xargmatch failure function.])
- dnl Used to define SETVBUF in sys2.h.
- dnl This evokes the following warning from autoconf:
- dnl ...: warning: AC_TRY_RUN called without default to allow cross compiling
+ dnl Used to define SETVBUF in ../src/system.h.
AC_FUNC_SETVBUF_REVERSED
- # used by sleep and shred
- # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
- # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
-
- # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all*
- # programs in the package would end up linked with that potentially-shared
- # library, inducing unnecessary run-time overhead.
- fetish_saved_libs=$LIBS
- AC_SEARCH_LIBS(clock_gettime, [rt posix4],
- [LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
- AC_SUBST(LIB_CLOCK_GETTIME)
- AC_CHECK_FUNCS(clock_gettime clock_settime)
- LIBS=$fetish_saved_libs
- AC_CHECK_FUNCS(gettimeofday)
- AC_FUNC_GETTIMEOFDAY_CLOBBER
-
- AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
- AC_REQUIRE([jm_FUNC_UTIME])
-
- AC_CHECK_FUNCS( \
- bcopy \
+ # used by ls
+ AC_REQUIRE([gl_CLOCK_TIME])
+ # used by shred
+ AC_CHECK_FUNCS_ONCE(directio)
+
+ AC_CHECK_FUNCS_ONCE( \
endgrent \
endpwent \
- fchdir \
- fdatasync \
- ftime \
+ fchown \
ftruncate \
- getcwd \
- gethrtime \
- getmntinfo \
- hasmntopt \
- isascii \
iswspace \
- lchown \
- listmntent \
- localeconv \
- memcpy \
- mempcpy \
mkfifo \
- realpath \
+ mbrlen \
+ setgroups \
sethostname \
- strchr \
- strerror \
- strrchr \
+ siginterrupt \
+ sync \
sysctl \
sysinfo \
- wcrtomb \
- tzset \
+ tcgetpgrp \
)
- AM_FUNC_GETLINE
- if test $am_cv_func_working_getline != yes; then
- AC_CHECK_FUNCS(getdelim)
- fi
- AC_FUNC_OBSTACK
+ AC_REQUIRE([cu_PREREQ_STAT_PROG])
- AC_FUNC_STRTOD
+ # for dd.c and shred.c
+ coreutils_saved_libs=$LIBS
+ AC_SEARCH_LIBS([fdatasync], [rt posix4],
+ [test "$ac_cv_search_fdatasync" = "none required" ||
+ LIB_FDATASYNC=$ac_cv_search_fdatasync])
+ AC_SUBST([LIB_FDATASYNC])
+ AC_CHECK_FUNCS(fdatasync)
+ LIBS=$coreutils_saved_libs
# See if linking `seq' requires -lm.
# It does on nearly every system. The single exception (so far) is
LIBS="$ac_seq_save_LIBS"
])
- AM_LANGINFO_CODESET
- jm_GLIBC21
- AM_ICONV
- jm_FUNC_UNLINK_BUSY_TEXT
-
- # These tests are for df.
- jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
- jm_FSTYPENAME
- jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
- if test $list_mounted_fs = yes && test $space = yes; then
- DF_PROG=df
- AC_LIBOBJ(fsusage)
- AC_LIBOBJ(mountlist)
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+
+ # Build df only if there's a point to it.
+ if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then
+ DF_PROG='df$(EXEEXT)'
fi
- AC_REQUIRE([jm_AC_DOS])
- AC_REQUIRE([AC_FUNC_CANONICALIZE_FILE_NAME])
+ # If any of these functions don't exist (e.g. DJGPP 2.03),
+ # use the corresponding stub.
+ AC_CHECK_FUNC([fchdir], , [AC_LIBOBJ(fchdir-stub)])
])
-# These tests must be run before any use of AC_CHECK_TYPE,
-# because that macro compiles code that tests e.g., HAVE_UNISTD_H.
-# See the definition of ac_includes_default in `configure'.
-AC_DEFUN([jm_CHECK_ALL_HEADERS],
+AC_DEFUN([gl_CHECK_ALL_HEADERS],
[
- AC_CHECK_HEADERS( \
- errno.h \
- fcntl.h \
- float.h \
+ AC_CHECK_HEADERS_ONCE( \
hurd.h \
- limits.h \
- memory.h \
- mntent.h \
- mnttab.h \
- netdb.h \
paths.h \
- stdlib.h \
- stddef.h \
- stdint.h \
- string.h \
- sys/filsys.h \
- sys/fs/s5param.h \
- sys/fs_types.h \
- sys/fstyp.h \
+ priv.h \
+ stropts.h \
sys/ioctl.h \
- sys/mntent.h \
- sys/mount.h \
sys/param.h \
sys/resource.h \
- sys/socket.h \
- sys/statfs.h \
- sys/statvfs.h \
- sys/sysctl.h \
sys/systeminfo.h \
sys/time.h \
- sys/timeb.h \
- sys/vfs.h \
sys/wait.h \
syslog.h \
termios.h \
- unistd.h \
- utime.h \
- values.h \
)
+ AC_CHECK_HEADERS(sys/sysctl.h, [], [],
+ [AC_INCLUDES_DEFAULT
+ [#if HAVE_SYS_PARAM_H
+ #include <sys/param.h>
+ #endif]])
])
# This macro must be invoked before any tests that run the compiler.
-AC_DEFUN([jm_CHECK_ALL_TYPES],
+AC_DEFUN([gl_CHECK_ALL_TYPES],
[
dnl This test must come as early as possible after the compiler configuration
dnl tests, because the choice of the file model can (in principle) affect
dnl Checks for typedefs, structures, and compiler characteristics.
AC_REQUIRE([AC_C_BIGENDIAN])
- AC_REQUIRE([AC_C_CONST])
AC_REQUIRE([AC_C_VOLATILE])
AC_REQUIRE([AC_C_INLINE])
AC_REQUIRE([AC_C_LONG_DOUBLE])
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
- AC_REQUIRE([jm_CHECK_ALL_HEADERS])
- AC_REQUIRE([AC_HEADER_DIRENT])
- AC_REQUIRE([AC_HEADER_STDC])
+ AC_REQUIRE([gl_CHECK_ALL_HEADERS])
AC_CHECK_MEMBERS(
- [struct stat.st_author,
- struct stat.st_blksize],,,
+ [struct stat.st_author],,,
[$ac_includes_default
#include <sys/stat.h>
])
AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
- AC_REQUIRE([AC_STRUCT_TM])
- AC_REQUIRE([AC_STRUCT_TIMEZONE])
- AC_REQUIRE([AC_HEADER_STAT])
- AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
- AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
- AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
-
AC_REQUIRE([AC_TYPE_GETGROUPS])
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
AC_REQUIRE([AC_TYPE_MODE_T])
AC_REQUIRE([AC_TYPE_OFF_T])
AC_REQUIRE([AC_TYPE_PID_T])
- AC_REQUIRE([AC_TYPE_SIGNAL])
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_REQUIRE([AC_TYPE_UID_T])
- AC_CHECK_TYPE(ino_t, unsigned long)
+ AC_CHECK_TYPE(ino_t, unsigned long int)
- dnl This relies on the fact that autoconf 2.14a's implementation of
+ dnl This relies on the fact that Autoconf's implementation of
dnl AC_CHECK_TYPE checks includes unistd.h.
- AC_CHECK_TYPE(ssize_t, int)
AC_CHECK_TYPE(major_t, unsigned int)
AC_CHECK_TYPE(minor_t, unsigned int)
- AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
- AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-
AC_REQUIRE([AC_HEADER_MAJOR])
- AC_REQUIRE([AC_HEADER_DIRENT])
-
])