(jm_PREREQ_HUMAN): New macro.
[gnulib.git] / m4 / jm-macros.m4
index 625a926..41130aa 100644 (file)
@@ -1,4 +1,4 @@
-#serial 15
+#serial 17
 
 dnl Misc type-related macros for fileutils, sh-utils, textutils.
 
@@ -70,6 +70,7 @@ AC_DEFUN(jm_MACROS,
   AC_REQUIRE([jm_PREREQ])
 
   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])
@@ -107,6 +108,8 @@ AC_DEFUN(jm_MACROS,
   AC_REPLACE_FUNCS(stime strcspn stpcpy strstr strtol strtoul)
   AC_REPLACE_FUNCS(strpbrk)
   AC_REPLACE_FUNCS(euidaccess memcmp mkdir rmdir rpmatch strndup strverscmp)
+  AC_REPLACE_FUNCS(atexit)
+  AC_REPLACE_FUNCS(strnlen)
 
   dnl used by e.g. intl/*domain.c and lib/canon-host.c
   AC_REPLACE_FUNCS(strdup)
@@ -128,8 +131,16 @@ AC_DEFUN(jm_MACROS,
   # 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.
-  AC_SEARCH_LIBS(clock_gettime, [rt posix4])
-  AC_CHECK_FUNCS(clock_gettime)
+
+  # 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)
+  LIBS=$fetish_saved_libs
   AC_CHECK_FUNCS(gettimeofday)
 
   AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
@@ -198,12 +209,9 @@ AC_DEFUN(jm_CHECK_ALL_TYPES,
   # Emit this code into config.h.in.
   # The ifndef is to avoid redefinition warnings.
   AH_VERBATIM([_GNU_SOURCE], [#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
+# define _GNU_SOURCE
 #endif])
 
-  # Enable GNU extensions.
-  AC_DEFINE([_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.