* Bugs fixed
- - Generated file timestamp checks handle filesystems with sub-second
- timestamp granularity dynamically, greatly speeding up make check,
- etc. However, this requires an autom4te from Autoconf 2.72 or later
- (or random test failures and other timing problems may ensue), as
- well as a Perl, sleep program, make program, and filesystem that all
- support sub-second resolution; otherwise, we fall back to one-second
- granularity as before. When everything is supported, a line
- "Features: subsecond-mtime" is now printed by automake --version and
- autom4te --version. (commit 720a11531,
+ - Generated file timestamp checks handle filesystems with subsecond
+ timestamp granularity dynamically, greatly speeding up the sleep
+ done by AC_OUTPUT when generating config.status (all packages) and
+ Automake's make check.
+
+ However, this subsecond-mtime support requires an autom4te from
+ Autoconf 2.72 or later (or random test failures and other timing
+ problems may ensue), as well as a Perl, sleep program, make program,
+ and filesystem that all support subsecond resolution; otherwise, we
+ fall back to a two-second granularity, not even testing the (common)
+ 1s case since that would induce a 2s delay for all configure scripts
+ in all packages on all systems that don't support subsecond mtimes.
+
+ When everything is supported, a line "Features: subsecond-mtime" is
+ now printed by automake --version and autom4te --version.
+
+ To override this check and delay, e.g. to use 1 second:
+ am_cv_filesystem_timestamp_resolution=1
+ export am_cv_filesystem_timestamp_resolution
+
+ (commit 720a11531,
https://lists.gnu.org/archive/html/automake-commit/2022-02/msg00009.html
- then bug#60808, bug#64756, bug#67670, bug#68808, et al.)
+ then bug#60808, bug#64756, bug#67670, bug#68808, bug#71652,
+ history reviewed in
+ https://lists.gnu.org/archive/html/automake/2024-06/msg00054.html
+ and more info in surrounding threads.)
- The default value of $ARFLAGS is now "cr" instead of "cru", to better
support deterministic builds. (bug#20082)
# Make sure ls -t actually works. Do 'set' in a subshell so we don't
# clobber the current shell's arguments. (Outer-level square brackets
-# are for m4; be careful, it's easy to get confused.)
+# are removed by m4; they're present so that m4 does not expand
+# <dollar><star>; be careful, easy to get confused.)
if (
set X `[ls -t conftest.ts[12]]` &&
{
# everything else supports the subsecond mtimes, but make doesn't;
# notably on macOS, which ships make 3.81 from 2006 (the last one
# released under GPLv2). https://bugs.gnu.org/68808
+ #
+ # It is incorrect to be testing "make" here; we should be testing
+ # $(MAKE). But $(MAKE) is not defined? At any rate, our hope is
+ # that in practice it does not matter: it is the system "make"
+ # which is (by far) the most likely to be broken, whereas if the
+ # user overrides it, probably they did so with a better, or at
+ # least not worse, make. Nevertheless: FIXME.
+ # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html
#
# So, first let's create a Makefile (real tab character):
rm -f conftest.mk
echo "timestamp, slept: $am_has_slept" > conftest.file
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
+ if test "$[]*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
- test "$[2]" = conftest.file
+ test "$[]*" = conftest.file
); then
am_build_env_is_sane=yes
break