[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: non-recursive make: is there a performance gain?
From: |
Stefano Lattarini |
Subject: |
Re: non-recursive make: is there a performance gain? |
Date: |
Sat, 08 Sep 2012 20:10:06 +0200 |
On 09/08/2012 07:46 PM, Jim Meyering wrote:
> Stefano Lattarini wrote:
>> On 09/08/2012 03:29 PM, Jim Meyering wrote:
>>>
>>> But, ... surprise! So far there is *no* improvement, and in fact a small
>>> penalty in this very worst case:
>>>
>> My wild guess is that the culprit for this might be the Automake-generated
>> recursive make invocation in the handling of $(BUILT_SOURCES):
>>
>> all: $(BUILT_SOURCES)
>> $(MAKE) $(AM_MAKEFLAGS) all-am
>>
>> What happens if, after the first build, you substitute the rule above in
>> your Makefile with simply:
>>
>> all: all-am
>>
>> ? Is there any improvement?
>
> Good call! Yes:
>
> [SNIP]
>
Unfortunately, the extra recursive invocation involving $(BUILT_SOURCES) is
truly needed in order to have correct semantics, because $(BUILT_SOURCES) must
be built before *any* other (direct or indirect) prerequisite of 'all'.
Automake-NG plays dirty tricks to maintain this semantics while avoiding that
recursion, but I haven't been able to come up with a similar trick working also
for portable make.
Regards,
Stefano