Am 01.11.2011 18:04, schrieb Joerg Sonnenberger:> On Tue, Nov 01, 2011 at 11:09:41AM +0100, Joachim Durchholz wrote:
>> On the reasons why make-based builds are slow, Peter Miller has some
>> insight to offer:
>> http://miller.emu.id.au/pmiller/books/rmch/ .
>> I'm not sure how widely recognized that paper is. Maybe it's
widely
>> known and today's build times stem from other things than recursive
make.
>
> Please stop pointing to that article. It should be called "GNU make
> considered harmful" if anything, since most of the content is a direct
> result of issues in that tool.
The salient point in that article is about common use of recursive make
not doing what most people expect. In particular, if the dependencies
are a DAG instead of a tree, you need to put everything into one big
makefile since recursive make's design cannot handle the situation
correctly.
This is a property of the basic design of make, and cannot be fixed
unless by changing what a recursive make actually does.
(I have built my own make, in Rexx, as I was young and needed the tool.
This otherwise unremarkable endeavour forced me to learn more about
make's semantic than a mere student should be exposed to.)
> As I said earlier in this thread:
Sorry, I missed that post.
> LLVM is> nowhere big enough in terms of subdirectories that recursive make is a
> significant contributor to build time.
Did you verify that this is the case? Some of the gotchas in the make
semantics can cause exponential behaviour, and that's easy to overlook
if the N in your O(2^N) behaviour is incremented only occasionally.
Regards,
Jo