Re: [PATCH 3/4] Makefile: Replace old suffix rules with pattern rules

Simon Marchi
2016-11-16T20:18:28Z

On 2016-11-16 14:58, Pedro Alves wrote:
> On 11/16/2016 07:38 PM, Simon Marchi wrote:
>
>> I did some experiments, here's the time it takes to run make in the
>> gdb/
>> directory with nothing to re-build. The other number is the number of
>> lines printed when running make -d. It gives a rough idea of the
>> amount
>> of operations make does.
>>
>> Note that these results are by changing both gdb/Makefile.in and
>> gdb/gdbserver/Makefile.in. That's fair, since the -r applies
>> recursively as well.
>>
>> Baseline: 2.5 seconds, 2306335 lines
>> With .SUFFIXES: 0.7 seconds, 307706 lines
>> With .SUFFIXES and the other %:: rules: 0.6 seconds, 255386 lines
>> With -r flag (make -r): 0.5 seconds, 160682 lines
>
> That's a nice speedup. Presumably if you change gdb/doc/ and
> gdb/testsuite/ too, the number without -r gets even closer to
> the -r number.

Right, but not by much I think. The implicit rules are mostly for yacc,
lex and c files. There isn't much target matching those in testsuite
and doc.

> If it works, I think it'll be nice to put the
> ".SUFFIXES and the other %:: rules" bits in a shared makefile fragment
> that
> is included (with the include directive) by all the main Makefile.in
> files.

Good idea.