]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
bootstrap: Use an absolute path for ACBOOTDIR.
authorZack Weinberg <zackw@panix.com>
Sun, 12 Mar 2023 23:39:47 +0000 (19:39 -0400)
committerZack Weinberg <zackw@panix.com>
Sun, 12 Mar 2023 23:39:47 +0000 (19:39 -0400)
If we use a relative path for ACBOOTDIR, Automake can’t tell the
difference between Autoconf’s configure script’s aclocal.m4
inclusions (…/m4/*.m4) and the guts of Autoconf
itself (…/lib/autoconf/*.m4) so it puts both of them into
$(am__aclocal_m4_deps).  This would be harmless, except that the
guts-of-Autoconf files are named *relative to $ACBOOTDIR*, which
means Make can’t find them later.  And this is why a build from a
clean git checkout always starts by regenerating aclocal.m4 and
configure again.

Using an absolute path for ACBOOTDIR gives automake enough of a clue
what’s going on (see the heuristic circa 5500 of current automake.in,
commented “Some modified versions of autoconf don’t use frozen files…”)
for it to produce the same value for $(am__aclocal_m4) that it would
if we were running an installed Autoconf.

bootstrap

index 50861367792507b5d703de4f7f140ca9b6058d96..46e7662e8dffd06853c7df6a65a3b1a3552c2ba4 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -177,6 +177,7 @@ PACKAGE_TARNAME='<<not available>>'
 
 # Root for temporary partial installation tree.
 ACBOOTDIR=$(mktemp -d acboot.XXXXXXXXXX)
+ACBOOTDIR=$(realpath $ACBOOTDIR)
 
 # dosubst options infile outfile -- performs the substitutions that
 # config.status would perform on INFILE, creating OUTFILE.  INFILE is