Re: Future plans for Autotools

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

 



On Thu, Jan 21, 2021 at 4:09 PM Tom Tromey <tom@xxxxxxxxxx> wrote:

> Zack> Now we've all had a while to recover from the long-awaited Autoconf
> Zack> 2.70 release, I'd like to start a conversation about where the
> Zack> Autotools in general might be going in the future.  Clearly any
> future
> Zack> development depends on finding people who will do the work, but
> before
> Zack> we worry about that I think we might want to figure out what work we
> Zack> _want_ to do.
>
> Thank you very much for writing this.
>
> Zack> Followup discussion should go to the Autoconf mailing list.
>
> I trimmed the CCs.
>
> Zack> Tarball releases produced by Autotools have a predictable,
> Zack> standardized (literally; it’s a key aspect of the GNU Coding
> Zack> Standards) interface for setting build-time options, building them,
> Zack> testing them, and installing them.
>
> This is maybe the biggest thing I've missed when I've had to tinker with
> other build systems.
>
> Zack> Automake tries very hard to generate Makefiles that will work with
> any
> Zack> Make implementation, not just GNU make, and not even just (GNU or
> BSD)
> Zack> make.
>
> Paul Eggert mentioned the Emacs experience here.
>
> For gdb we also started relying on GNU make a while ago.  I have never
> heard a complaint about this.  I imagine the BSDs simply build it with
> gmake.  We've occasionally had to work around a GNU make bug but
> otherwise it's been straightforward.
>
> Some parts of the gdb tree do use Automake, but other parts do not.
>
> Based on this experience I tend to think that make portability isn't
> that important any more.
>
> Zack> And weak coordination with other Autotools compounds the issue.
>
> Zack> Building an Autotools-based project directly from its VCS checkout is
> Zack> often significantly harder than building it from a tarball release,
> Zack> and may involve tracking down and installing any number of unusual
> Zack> tools.
>
> Zack> Coordination among the Autotools is weak, even though the tools are
> Zack> tightly coupled to each other.
>
> Zack> Division of labor among the Autotools, and the sources of third-party
> Zack> macros, is ad-hoc and unclear. (Which macros should be part of
> Zack> Autoconf proper? Which should be part of Gnulib? Which should be part
> Zack> of the Autoconf Macro Archive? Which should be shipped with Automake?
> Zack> Which tools should autoreconf know how to run? Etc.)
>
> A couple of ideas come to mind here.
>
> One is that perhaps autoconf, automake, and libtool (but see below)
> should be combined into a single project.  This would help eliminate the
> coordination problem.
>

I personally love the idea of combining the projects so we no longer have
these inter-project
release issues, and so we can get more cross-project features in place with
less in-fighting -
or more to what really happens: less just plain ignoring requests that
involve other projects
because of lack of control or ego issues.

I also like the idea of moving to GNU make. I feel like we'd be able to do
a lot of stream-
lining with such a change - removing old crufty stuff designed only to
service standard make
deficiencies. Another good reason for this was also mentioned earlier - the
make code that
automake generates could be much more efficient and performant.

John




[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux