autoconf-patches
[Top][All Lists]
Advanced

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

Re: [PATCH 0/3] RFC: automated bootstrap script


From: Jim Meyering
Subject: Re: [PATCH 0/3] RFC: automated bootstrap script
Date: Sat, 6 Feb 2021 08:23:16 -0800

On Fri, Feb 5, 2021 at 7:42 AM Zack Weinberg <zackw@panix.com> wrote:
> The procedure for building Autoconf from a git checkout is a little
> awkward, involving building it once, then using the just-built
> autoconf to regenerate the configure script in the source directory,
> then throwing away the entire first build and doing it over again, and
> only then is the test suite reliable.
>
> This patch set automates and optimizes the process with a new
> top-level, git-only script called ‘bootstrap’.  The idea is copied
> from Automake: you run this script instead of ‘autoreconf -i’.  It
> does what ‘autoreconf -i’ would do, but it uses the unbuilt autoconf
> from the git checkout itself to generate the configure script, so it’s
> right the first time.  In addition to being automated and therefore
> less error-prone, it’s also substantially faster, because it doesn’t
> waste time building all the documentation or tools that aren’t needed
> for the bootstrap process.
>
> I have verified that the tarball created by
>
> git clean -xdf
> ./bootstrap
> ./configure
> make dist
>
> is identical to the tarball created by
>
> git clean -xdf
> autoreconf -i
> ./configure
> make
> (PATH=$PWD/tests:$PATH; autoreconf -i)
> make distclean
> ./configure
> make dist
>
> starting from the same point in the version history.
>
> I would like to land this patchset on both trunk and the 2.70 branch,
> because it will help with setting up CI quite a bit.  However, it does
> involve some relatively invasive changes to the actual code, notably
> rewriting the ‘autoconf’ driver program in Perl so the bootstrap
> script doesn’t have to know how to generate M4sh scripts, so I’m
> posting this for comments and will wait one week before proceeding.
> (I think the code changes are desirable for other reasons, but the
> bootstrap process is why I did them now.)
>
> Zack Weinberg (3):
>   Generate version.m4 from config.status, in lib/ not lib/m4sugar/.
>   Rewrite bin/autoconf in Perl.
>   Add a bootstrap script like Automake has.

Thank you for your work on autoconf. I like this approach, too.



reply via email to

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