An independent .m4 file for each module.
[gnulib.git] / m4 / jm-macros.m4
index bb2bcf3..b2d55d0 100644 (file)
@@ -1,16 +1,17 @@
-#serial 35   -*- autoconf -*-
+#serial 49   -*- autoconf -*-
 
 dnl Misc type-related macros for fileutils, sh-utils, textutils.
 
 
 dnl Misc type-related macros for fileutils, sh-utils, textutils.
 
-AC_DEFUN(jm_MACROS,
+AC_DEFUN([jm_MACROS],
 [
 [
-  AC_PREREQ(2.49d)
+  AC_PREREQ(2.52g)
 
   GNU_PACKAGE="GNU $PACKAGE"
   AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
     [The concatenation of the strings `GNU ', and PACKAGE.])
   AC_SUBST(GNU_PACKAGE)
 
 
   GNU_PACKAGE="GNU $PACKAGE"
   AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
     [The concatenation of the strings `GNU ', and PACKAGE.])
   AC_SUBST(GNU_PACKAGE)
 
+  AM_MISSING_PROG(HELP2MAN, help2man)
   AC_SUBST(OPTIONAL_BIN_PROGS)
   AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
   AC_SUBST(MAN)
   AC_SUBST(OPTIONAL_BIN_PROGS)
   AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
   AC_SUBST(MAN)
@@ -20,11 +21,12 @@ AC_DEFUN(jm_MACROS,
   AC_REQUIRE([AC_ISC_POSIX])dnl
 
   jm_CHECK_ALL_TYPES
   AC_REQUIRE([AC_ISC_POSIX])dnl
 
   jm_CHECK_ALL_TYPES
-  jm_INCLUDED_REGEX([lib/regex.c])
+  gl_REGEX
 
 
+  AC_REQUIRE([UTILS_HOST_OS])
+  AC_REQUIRE([UTILS_FUNC_MKDIR_TRAILING_SLASH])
   AC_REQUIRE([jm_BISON])
   AC_REQUIRE([jm_ASSERT])
   AC_REQUIRE([jm_BISON])
   AC_REQUIRE([jm_ASSERT])
-  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
   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_TYPE_STRUCT_UTIMBUF])
   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO])
@@ -32,10 +34,12 @@ AC_DEFUN(jm_MACROS,
 
   AC_REQUIRE([jm_PREREQ])
 
 
   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_LCHOWN])
   AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY])
   AC_REQUIRE([jm_FUNC_CHOWN])
-  AC_REQUIRE([jm_FUNC_MKTIME])
+  AC_REQUIRE([gl_FUNC_MKTIME])
   AC_REQUIRE([jm_FUNC_LSTAT])
   AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
   AC_REQUIRE([jm_FUNC_STAT])
   AC_REQUIRE([jm_FUNC_LSTAT])
   AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
   AC_REQUIRE([jm_FUNC_STAT])
@@ -46,20 +50,21 @@ AC_DEFUN(jm_MACROS,
   AC_REQUIRE([jm_FUNC_READDIR])
   AC_REQUIRE([jm_FUNC_MEMCMP])
   AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
   AC_REQUIRE([jm_FUNC_READDIR])
   AC_REQUIRE([jm_FUNC_MEMCMP])
   AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
-  AC_REQUIRE([jm_FUNC_FNMATCH])
+  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_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([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK])
-  AC_REQUIRE([AM_FUNC_ERROR_AT_LINE])
+  AC_REQUIRE([AC_FUNC_ERROR_AT_LINE])
   AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
   AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
-  AC_REQUIRE([jm_FUNC_MKTIME])
   AC_REQUIRE([jm_FUNC_FPENDING])
 
   AC_REQUIRE([jm_FUNC_GETGROUPS])
   test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS"
 
   AC_REQUIRE([jm_FUNC_FPENDING])
 
   AC_REQUIRE([jm_FUNC_GETGROUPS])
   test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS"
 
+  AC_REQUIRE([AC_FUNC_FSEEKO])
   AC_REQUIRE([AC_FUNC_VPRINTF])
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_FUNC_GETLOADAVG([lib])
   AC_REQUIRE([AC_FUNC_VPRINTF])
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_FUNC_GETLOADAVG([lib])
@@ -70,11 +75,11 @@ AC_DEFUN(jm_MACROS,
   AC_REPLACE_FUNCS(strcasecmp strncasecmp)
   AC_REPLACE_FUNCS(dup2)
   AC_REPLACE_FUNCS(gethostname getusershell)
   AC_REPLACE_FUNCS(strcasecmp strncasecmp)
   AC_REPLACE_FUNCS(dup2)
   AC_REPLACE_FUNCS(gethostname getusershell)
-  AC_REPLACE_FUNCS(stime strcspn stpcpy strstr strtol strtoul)
+  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(strpbrk)
   AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
   AC_REPLACE_FUNCS(atexit)
-  AC_REPLACE_FUNCS(strnlen)
   AC_REPLACE_FUNCS(getpass)
 
   dnl used by e.g. intl/*domain.c and lib/canon-host.c
   AC_REPLACE_FUNCS(getpass)
 
   dnl used by e.g. intl/*domain.c and lib/canon-host.c
@@ -83,10 +88,7 @@ AC_DEFUN(jm_MACROS,
   AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
   AC_CHECK_FUNCS(getpagesize)
 
   AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
   AC_CHECK_FUNCS(getpagesize)
 
-  AC_REPLACE_FUNCS(mkstemp)
-  if test $ac_cv_func_mkstemp != yes; then
-    AC_LIBOBJ(tempname)
-  fi
+  AC_REQUIRE([UTILS_FUNC_MKSTEMP])
 
   # By default, argmatch should fail calling usage (1).
   AC_DEFINE(ARGMATCH_DIE, [usage (1)],
 
   # By default, argmatch should fail calling usage (1).
   AC_DEFINE(ARGMATCH_DIE, [usage (1)],
@@ -110,21 +112,21 @@ AC_DEFUN(jm_MACROS,
     AC_SEARCH_LIBS(clock_gettime, [rt posix4],
                   [LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
     AC_SUBST(LIB_CLOCK_GETTIME)
     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)
+    AC_CHECK_FUNCS(clock_gettime clock_settime)
   LIBS=$fetish_saved_libs
   AC_CHECK_FUNCS(gettimeofday)
   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( \
 
   AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
   AC_REQUIRE([jm_FUNC_UTIME])
 
   AC_CHECK_FUNCS( \
-    acl \
     bcopy \
     bcopy \
+    canonicalize_file_name \
     endgrent \
     endpwent \
     fchdir \
     fdatasync \
     endgrent \
     endpwent \
     fchdir \
     fdatasync \
-    fseeko \
     ftime \
     ftruncate \
     getcwd \
     ftime \
     ftruncate \
     getcwd \
@@ -132,6 +134,7 @@ AC_DEFUN(jm_MACROS,
     getmntinfo \
     hasmntopt \
     isascii \
     getmntinfo \
     hasmntopt \
     isascii \
+    iswspace \
     lchown \
     listmntent \
     localeconv \
     lchown \
     listmntent \
     localeconv \
@@ -153,11 +156,9 @@ AC_DEFUN(jm_MACROS,
   if test $am_cv_func_working_getline != yes; then
     AC_CHECK_FUNCS(getdelim)
   fi
   if test $am_cv_func_working_getline != yes; then
     AC_CHECK_FUNCS(getdelim)
   fi
-  AM_FUNC_OBSTACK
+  AC_FUNC_OBSTACK
 
 
-  AM_FUNC_STRTOD
-  AC_SUBST(POW_LIBM)
-  test $am_cv_func_strtod_needs_libm = yes && POW_LIBM=-lm
+  AC_FUNC_STRTOD
 
   # See if linking `seq' requires -lm.
   # It does on nearly every system.  The single exception (so far) is
 
   # See if linking `seq' requires -lm.
   # It does on nearly every system.  The single exception (so far) is
@@ -177,9 +178,9 @@ AC_DEFUN(jm_MACROS,
      LIBS="$ac_seq_save_LIBS"
     ])
 
      LIBS="$ac_seq_save_LIBS"
     ])
 
-  jm_LANGINFO_CODESET
+  AM_LANGINFO_CODESET
   jm_GLIBC21
   jm_GLIBC21
-  jm_ICONV
+  AM_ICONV
   jm_FUNC_UNLINK_BUSY_TEXT
 
   # These tests are for df.
   jm_FUNC_UNLINK_BUSY_TEXT
 
   # These tests are for df.
@@ -187,7 +188,7 @@ AC_DEFUN(jm_MACROS,
   jm_FSTYPENAME
   jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
   if test $list_mounted_fs = yes && test $space = yes; then
   jm_FSTYPENAME
   jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
   if test $list_mounted_fs = yes && test $space = yes; then
-    DF_PROG="df"
+    DF_PROG=df
     AC_LIBOBJ(fsusage)
     AC_LIBOBJ(mountlist)
   fi
     AC_LIBOBJ(fsusage)
     AC_LIBOBJ(mountlist)
   fi
@@ -198,13 +199,14 @@ AC_DEFUN(jm_MACROS,
 # 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'.
 # 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([jm_CHECK_ALL_HEADERS],
 [
   AC_CHECK_HEADERS( \
     errno.h  \
     fcntl.h \
     fenv.h \
     float.h \
 [
   AC_CHECK_HEADERS( \
     errno.h  \
     fcntl.h \
     fenv.h \
     float.h \
+    hurd.h \
     limits.h \
     memory.h \
     mntent.h \
     limits.h \
     memory.h \
     mntent.h \
@@ -215,7 +217,6 @@ AC_DEFUN(jm_CHECK_ALL_HEADERS,
     stddef.h \
     stdint.h \
     string.h \
     stddef.h \
     stdint.h \
     string.h \
-    sys/acl.h \
     sys/filsys.h \
     sys/fs/s5param.h \
     sys/fs_types.h \
     sys/filsys.h \
     sys/fs/s5param.h \
     sys/fs_types.h \
@@ -242,13 +243,8 @@ AC_DEFUN(jm_CHECK_ALL_HEADERS,
 ])
 
 # This macro must be invoked before any tests that run the compiler.
 ])
 
 # This macro must be invoked before any tests that run the compiler.
-AC_DEFUN(jm_CHECK_ALL_TYPES,
+AC_DEFUN([jm_CHECK_ALL_TYPES],
 [
 [
-  # FIXME: I shouldn't have to require this macro here.  Rather, it should
-  # be required by any autoconf macro that performs a compile-time test or
-  # otherwise uses confdefs.h.
-  AC_REQUIRE([AC__GNU_SOURCE])
-
   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 whether functions and headers are available, whether they work, etc.
   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 whether functions and headers are available, whether they work, etc.
@@ -261,7 +257,6 @@ AC_DEFUN(jm_CHECK_ALL_TYPES,
 
   dnl Checks for typedefs, structures, and compiler characteristics.
   AC_REQUIRE([AC_C_BIGENDIAN])
 
   dnl Checks for typedefs, structures, and compiler characteristics.
   AC_REQUIRE([AC_C_BIGENDIAN])
-  AC_REQUIRE([AC_PROG_CC_STDC])
   AC_REQUIRE([AC_C_CONST])
   AC_REQUIRE([AC_C_VOLATILE])
   AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_C_CONST])
   AC_REQUIRE([AC_C_VOLATILE])
   AC_REQUIRE([AC_C_INLINE])
@@ -270,7 +265,10 @@ AC_DEFUN(jm_CHECK_ALL_TYPES,
   AC_REQUIRE([jm_CHECK_ALL_HEADERS])
   AC_REQUIRE([AC_HEADER_DIRENT])
   AC_REQUIRE([AC_HEADER_STDC])
   AC_REQUIRE([jm_CHECK_ALL_HEADERS])
   AC_REQUIRE([AC_HEADER_DIRENT])
   AC_REQUIRE([AC_HEADER_STDC])
-  AC_CHECK_MEMBERS([struct stat.st_blksize],,,[$ac_includes_default
+  AC_CHECK_MEMBERS(
+    [struct stat.st_author,
+     struct stat.st_blksize],,,
+    [$ac_includes_default
 #include <sys/stat.h>
   ])
   AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
 #include <sys/stat.h>
   ])
   AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
@@ -294,6 +292,8 @@ AC_DEFUN(jm_CHECK_ALL_TYPES,
   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)
   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([jm_AC_TYPE_UINTMAX_T])
   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])