On Tue, 22 Nov 2011, Stefano Lattarini wrote:
In order for this to work, Automake would need to become self-hosting
(not need other packages to be installed in advance) and written only
in a GNU-approved and FSF-copyrighted portable implementation
language.
Honestly, my idea was to follow the "lead" of Quagmire here, and use
GNU make's own "extensibility" ($(eval), $(call), self-reflection
features like $(.VARIABLES), etc.) as a leverage. If we don't, we'd
better try to create a new-generation build system instead, as you've
proposed.
I would like to use a build system which maintains a formal record of
input files used, as well as their signatures, so that the software is
properly built even if a file is set back in time (e.g. replaced with
an older version). I would also like to use a build system which
intelligently avoids unnecessary re-linking of objects and libraries
but always re-links when needed. I would like to use a build system
which can intelligently distribute builds across multiple machines if
necessary. Can pure GNU make syntax be used to accomplish all that?
That sounds like a too grand, over-reaching plan to me; and its very
concept seems to be somewhat at odds with the Unix philosophy.
How so? It is true that Kernighan & Pike recommend simplicity but
they don't recommend inefficiency either. Today the GNU build system
suffers from considerable inefficiency and a huge amount of
complexity. If GNU is willing to require that a GNU build tool be
installed in advance, then that build tool should be the best fit for
the actual requirements as possible.
In autotools, great effort is made to try to write shell, sed, awk,
and m4 code which works portably across many implementations and
requires a great many fork/exec calls and opening, reading, writing,
and closing of files. If GNU is to require installing a build tool
then that build tool should entirely eliminate any need to worry about
syntax portability so that scripts can be written to do exactly what
is required.
Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/