On Thu, Jan 21, 2021 at 11:01:34AM -0500, Zack Weinberg wrote:
> Having said that, switching to *anything else* would be a gigantic
> task -- multiple full-time person-years of effort just for the core --
> and would mean either porting or losing all of the third-party macro
> libraries.  I don't think it makes sense to explore this possibility
> any further unless both a lot of funding and a lot of developers
> materialize.

It could be possible for autoconf to become one option of several for
use with automake.  Then it would not be necessary to replicate the
entire functionality of autoconf in a new system.  People could have
(part of) the configuration written in Perl or other languages.

For this to work, automake would need to change quite a lot, for
example not always using configure.ac as an input file.  There would
be the question of information sharing between automake's own checks and
checks done in user configuration code.  It would never be trivial
to add a new configuration language, but they could all have similar
characteristics, for example communicating their results as a list
of names and values (i.e. the "name=@name@" of autoconf), some of which
would be required for Automake rules (e.g. whatever configuration method
was used, it would have to yield a value for CC if C files were being
compiled).

Perhaps there could be an Automake variable CONFIGURATION_METHOD
that could select which system was to used ("autoconf" being the
current system).  Other options could be to generate the configure
script completely automatically, or to access other programs that
allow some user code in the script.

This all depends on somebody creating a replacement for autoconf, though,
and integrating it with automake.

> A lesser possibility we could think about, would be dusting off GNU M4
> 2.0 and thinking about what we could change about the M4 language to
> make it friendlier for Autoconf's purposes.  Again I would want
> funding and developers lined up, but we'd not need quite so much of
> either.

If you ask if the current design of the autotools is something that
should be preserved forever, when you look at what its use is (creating
build systems for software), you would answer that it shouldn't be.  M4
is part of this.

> [Bob Friesenhahn]
> > There is a fork of Automake which was re-done to be based on GNU
> > Make. This assumes that makefiles written in GNU make can noticeably
> > improve things.  I like your idea of supporting other underlying
> > build tools besides 'make'.  Make's dependence on matching rules and
> > file time stamps is problematic and it does not scale.
> 
> I haven't ever followed automake development closely.  I know that
> at least one person has tried to write a set of GNU Make library files
> intended to replace it altogether, but I've never seen anyone *finish*
> that project.  I'd very much like to see someone give that another go.
> 
> The alternative to the Make family of tools, that I'm most familiar
> with, is Ninja, and it also depends on matching rules and file time
> stamps.  What do you have in mind as a replacement for these things?
> Is there already an alternative tool that you like?

One issue here is that Makefile.am can contain Makefile rules, which
transfer cleanly to use by "make", but possibly not for other programs
like ninja.  (I don't know anything about ninja, though.)

> I have a lot more sympathy with people who are annoyed with the GNU
> *project* and/or the FSF.  I have any number of my own grievances with
> them.  However, I would prefer not to get into that in this
> conversation, because it's liable to drag it off-topic and/or turn
> into a flame war.  Let's declare the known obstacles imposed on
> Autotools by the FSF -- concretely, the requirement for copyright
> assignment paperwork and the requirement not to use proprietary CI and
> forge services -- immobile and out-of-scope for this discussion.

There could be a discussion to be had about project governance and how
to stimulate development in GNU packages: advertising for contributors,
promoting use of the package, encouraging exploratory development.  I
don't have any concrete suggestions, though, and many changes are also
possible for the worse.


Reply via email to