X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fjm-macros.m4;h=6a4e250dcf4485ec17e11a7d381605a3aa942738;hb=76bd5cd5304484617bd8b15bfc8a59b0264482b8;hp=b2d55d01aa01c0e208efb70afa773f015d914ec5;hpb=e059c2358aad79ce8dfd9581dd6f12ce8503dc63;p=gnulib.git diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4 index b2d55d01a..6a4e250dc 100644 --- a/m4/jm-macros.m4 +++ b/m4/jm-macros.m4 @@ -1,10 +1,29 @@ -#serial 49 -*- autoconf -*- +#serial 76 -*- 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 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Written by Jim Meyering. + +AC_DEFUN([gl_MACROS], [ - AC_PREREQ(2.52g) + AC_PREREQ(2.58) GNU_PACKAGE="GNU $PACKAGE" AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE", @@ -13,82 +32,52 @@ AC_DEFUN([jm_MACROS], 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 - gl_REGEX + gl_CHECK_ALL_TYPES - 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([gl_HOST_OS]) + AC_REQUIRE([gl_ASSERT]) + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF]) + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE]) + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO]) + AC_REQUIRE([gl_CHECK_DECLS]) - AC_REQUIRE([jm_PREREQ]) + AC_REQUIRE([gl_PREREQ]) - AC_REQUIRE([UTILS_FUNC_DIRFD]) + AC_REQUIRE([gl_FUNC_DIRFD]) AC_REQUIRE([AC_FUNC_ACL]) - AC_REQUIRE([jm_FUNC_LCHOWN]) + AC_REQUIRE([gl_FUNC_LCHOWN]) AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY]) - AC_REQUIRE([jm_FUNC_CHOWN]) - AC_REQUIRE([gl_FUNC_MKTIME]) - AC_REQUIRE([jm_FUNC_LSTAT]) + AC_REQUIRE([gl_FUNC_CHOWN]) AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) - AC_REQUIRE([jm_FUNC_STAT]) - AC_REQUIRE([jm_FUNC_REALLOC]) - AC_REQUIRE([jm_FUNC_MALLOC]) AC_REQUIRE([AC_FUNC_STRERROR_R]) - AC_REQUIRE([jm_FUNC_NANOSLEEP]) - AC_REQUIRE([jm_FUNC_READDIR]) - 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_FPENDING]) - - AC_REQUIRE([jm_FUNC_GETGROUPS]) - test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS" + AC_REQUIRE([gl_FUNC_GROUP_MEMBER]) + AC_REQUIRE([gl_AFS]) + AC_REQUIRE([gl_AC_FUNC_LINK_FOLLOWS_SYMLINK]) + AC_REQUIRE([gl_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([gl_FUNC_GETGROUPS]) AC_REQUIRE([AC_FUNC_FSEEKO]) - AC_REQUIRE([AC_FUNC_VPRINTF]) AC_REQUIRE([AC_FUNC_ALLOCA]) - AC_FUNC_GETLOADAVG([lib]) - AC_REQUIRE([jm_SYS_PROC_UPTIME]) - AC_REQUIRE([jm_FUNC_FTRUNCATE]) - AC_REQUIRE([vb_FUNC_RENAME]) - - 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) - dnl used by e.g. intl/*domain.c and lib/canon-host.c - AC_REPLACE_FUNCS(strdup) + AC_CONFIG_LIBOBJ_DIR([lib]) + AC_FUNC_GETLOADAVG([lib]) - AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset) - AC_CHECK_FUNCS(getpagesize) + AC_REQUIRE([gl_SYS_PROC_UPTIME]) + AC_REQUIRE([gl_FUNC_FTRUNCATE]) - AC_REQUIRE([UTILS_FUNC_MKSTEMP]) + # raise is used by at least sort and ls. + AC_REPLACE_FUNCS(raise) # By default, argmatch should fail calling usage (1). AC_DEFINE(ARGMATCH_DIE, [usage (1)], @@ -102,36 +91,19 @@ AC_DEFUN([jm_MACROS], 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_REQUIRE([gl_CLOCK_TIME]) + AC_CHECK_FUNCS_ONCE(gettimeofday) AC_FUNC_GETTIMEOFDAY_CLOBBER + # used by shred + AC_CHECK_FUNCS_ONCE(directio) AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID]) - AC_REQUIRE([jm_FUNC_UTIME]) - AC_CHECK_FUNCS( \ - bcopy \ - canonicalize_file_name \ + AC_CHECK_FUNCS_ONCE( \ endgrent \ endpwent \ - fchdir \ - fdatasync \ - ftime \ ftruncate \ - getcwd \ gethrtime \ - getmntinfo \ hasmntopt \ isascii \ iswspace \ @@ -141,25 +113,34 @@ AC_DEFUN([jm_MACROS], memcpy \ mempcpy \ mkfifo \ + mbrlen \ realpath \ - resolvepath \ sethostname \ strchr \ strerror \ strrchr \ + sysctl \ sysinfo \ + tcgetpgrp \ wcrtomb \ tzset \ ) - AM_FUNC_GETLINE - if test $am_cv_func_working_getline != yes; then - AC_CHECK_FUNCS(getdelim) - fi - AC_FUNC_OBSTACK - AC_FUNC_STRTOD + AC_REQUIRE([cu_PREREQ_STAT_PROG]) + AC_REQUIRE([GL_FUNC_GETCWD_PATH_MAX]) + AC_REQUIRE([GL_FUNC_READDIR]) + + # for dd.c and shred.c + fetish_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=$fetish_saved_libs + # See if linking `seq' requires -lm. # It does on nearly every system. The single exception (so far) is # BeOS which has all the math functions in the normal runtime library @@ -179,32 +160,34 @@ AC_DEFUN([jm_MACROS], ]) AM_LANGINFO_CODESET - jm_GLIBC21 + gl_GLIBC21 AM_ICONV - jm_FUNC_UNLINK_BUSY_TEXT + gl_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([gl_FSUSAGE]) + AC_REQUIRE([gl_MOUNTLIST]) + 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([gl_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)]) + + AC_REQUIRE([gl_FUNC_FREE]) ]) # 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( \ + AC_CHECK_HEADERS_ONCE( \ errno.h \ fcntl.h \ - fenv.h \ float.h \ hurd.h \ limits.h \ @@ -223,7 +206,6 @@ AC_DEFUN([jm_CHECK_ALL_HEADERS], sys/fstyp.h \ sys/ioctl.h \ sys/mntent.h \ - sys/mount.h \ sys/param.h \ sys/resource.h \ sys/socket.h \ @@ -238,12 +220,16 @@ AC_DEFUN([jm_CHECK_ALL_HEADERS], termios.h \ unistd.h \ utime.h \ - values.h \ ) + AC_CHECK_HEADERS(sys/mount.h sys/sysctl.h, [], [], + [AC_INCLUDES_DEFAULT + [#if HAVE_SYS_PARAM_H + #include + #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 @@ -262,7 +248,7 @@ AC_DEFUN([jm_CHECK_ALL_TYPES], AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_LONG_DOUBLE]) - AC_REQUIRE([jm_CHECK_ALL_HEADERS]) + AC_REQUIRE([gl_CHECK_ALL_HEADERS]) AC_REQUIRE([AC_HEADER_DIRENT]) AC_REQUIRE([AC_HEADER_STDC]) AC_CHECK_MEMBERS( @@ -273,30 +259,31 @@ AC_DEFUN([jm_CHECK_ALL_TYPES], ]) 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) + + gt_TYPE_SSIZE_T dnl This relies on the fact that autoconf 2.14a'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([gl_AC_TYPE_UINT32_T]) + AC_REQUIRE([gl_AC_TYPE_UINTMAX_T]) + AC_REQUIRE([gl_AC_TYPE_UINTPTR_T]) + AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) AC_REQUIRE([AC_HEADER_MAJOR]) AC_REQUIRE([AC_HEADER_DIRENT])