autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: calling autoreconf and minimizing rebuilds


From: Ralf Wildenhues
Subject: Re: calling autoreconf and minimizing rebuilds
Date: Tue, 5 Dec 2006 22:10:57 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

* Paul Eggert wrote on Tue, Dec 05, 2006 at 06:21:42PM CET:
> 
> In the mean time, sleeping for 1 second should suffice.

Thank you.  I applied the patch below, assuming we'll hear about
the significance of failures on bug-autoconf.

> The goal here is to avoid a tradition of tests that sleep.  Sleeping
> slows things down.

Right.  Autoconf and Automake seem to have different priorities here,
though.

> (And it's harder to parallelize.  :-)

Efficiently parallelizing inefficient, unrelated tests does not get
easier or more difficult by it.

Cheers,
Ralf
 
        * tests/tools.at (autom4te preselections): New test, to flag
        entries missing from autom4te.cfg.
        Report by David Byron <address@hidden>.

Index: tests/tools.at
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/tools.at,v
retrieving revision 1.95
diff -u -r1.95 tools.at
--- tests/tools.at      25 Oct 2006 18:31:02 -0000      1.95
+++ tests/tools.at      5 Dec 2006 20:58:50 -0000
@@ -827,3 +827,50 @@
 AT_CHECK_AUTOUPDATE
 
 AT_CLEANUP
+
+
+# Keeping autom4te.cfg complete
+# -----------------------------
+
+AT_SETUP([autom4te preselections])
+: ${sleep='sleep 1'}   # Command to force different time stamps.
+# If this test should run on FAT file systems and older w32,
+# then setting $sleep correctly needs to be revisited.
+
+# We use aclocal and automake.
+AT_CHECK([automake --version || exit 77], [], [ignore], [ignore])
+AT_CHECK([test ! -f $HOME/.autom4te.cfg || exit 77], [], [ignore], [ignore])
+
+AT_DATA([configure.in],
+[[AC_INIT(GNU foo, 1.0)
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+]])
+
+AT_DATA([Makefile.am],
+[[AUTOMAKE_OPTIONS = foreign
+]])
+
+$sleep # `aclocal.m4' should be strictly younger than its inputs
+
+# If Autoconf is too old, or the user has turned caching off, skip:
+AT_CHECK([aclocal || { ret=$?; test $ret -eq 63 && ret=77; exit $ret; }],
+         [], [], [ignore])
+AT_CHECK([test -d autom4te.cache || exit 77])
+AT_CHECK([autoconf])
+
+# If this test fails due to missing entries in lib/autom4te.in, then
+# comparing the old and new requests is a good place to start debugging:
+cp autom4te.cache/requests old-requests
+$sleep # need to make sure the stamp file is strictly newer.
+echo newer >newer
+$sleep # if `configure' is regenerated, we want it to be strictly newer,
+       # to catch the error consistently.
+AT_CHECK([aclocal], [], [], [ignore])
+AT_CHECK([automake --no-force --add-missing], [], [], [ignore])
+AT_CHECK([autoconf])
+AT_CHECK([set x `ls -1t newer configure`; test "$2" = newer ||
+         { diff old-requests autom4te.cache/requests; exit 1; }])
+
+AT_CLEANUP




reply via email to

[Prev in Thread] Current Thread [Next in Thread]