automake
[Top][All Lists]
Advanced

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

Re: Could automake-generated Makefiles required GNU make? (was: Re: [gnu


From: Stefano Lattarini
Subject: Re: Could automake-generated Makefiles required GNU make? (was: Re: [gnu-prog-discuss] portability)
Date: Wed, 23 Nov 2011 10:23:20 +0100
User-agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; )

On Tuesday 22 November 2011, Bob Friesenhahn wrote:
> 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?
>
I honestly don't know.  But I *guess* that, if it can, it would require
a lot of work, and probably a lot of hacks.

> > 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.
>
Sadly true.  Starting to take advantage of GNU make might help in
mitigating this.  Or maybe this is just wishful thinking; we won't
know until we try it out.

> 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.
>
But GNU make is not a "random" GNU tool -- it's a mature, well-known,
alredy widespread tool, already used and required by non-trivial
build systems (e.g., Linux kernel's, and git's).

> In autotools, great effort is made to try to write shell, sed, awk, 
> and m4 code which works portably across many implementations
>
[micro-nit: this is not the case anymore for the m4 code, which has
 been since long requiring GNU m4]

> 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.
>
Again, I'm not opposed to the idea (which might have a large acceptance
after all, judging from CMake success).  But I find it ortoghonal to
the proposal under discussion, which has a much narrower and less
"speculative" scope (note that "speculative" is to be intended in its
good sense here!).

Regards,
  Stefano



reply via email to

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