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

Pedro Alves
2016-11-16T19:58:44Z

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.

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.

> So I think it shows that it wouldn't hurt to use ".SUFFIXES =" and the
> other rules from the gcc Makefile. I couldn't manage to get rid of the
> %.{y,l,w} -> %.c implicit rules though no matter what I tried. Calling
> make with the -r flag was the only way. At this point the returns are
> minimal though, so I don't think we should worry about it.

Thanks,
Pedro Alves