|
From: | Andrew Guertin |
Subject: | Re: [Gnash-dev] Large-scale Makefile.am cleanup |
Date: | Tue, 19 Apr 2011 06:12:00 -0400 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9 |
On 04/18/2011 09:01 AM, Rob Savoye wrote:
On 04/18/11 02:32, Andrew Guertin wrote:Why do you often build only a directory or two?For example, lately I've been doing much hacking on librender, so often just do "make -C librender&& gui/fb-gnash -vv test.swf". Since it's a small library, it recompiles quickly. If you look at the hwaccel branch, you can see that while all top level libraries build recursively, all the sub directories do use non-recursive Makefiles. I think it's this hybrid technique that works best.
So it looks like you're mainly using it to hack around the normal build method to gain speed.
I call this a hack because it's fragile and requires a knowledgeable developer to know when it's permissible and when a full rebuild is required (e.g. in the case of any API/ABI changes), but when it is used with caution, it does provide the speed benefit.
My expectation is that switching to non-recursive would provide enough of a speed increase to nearly equal the current hack: the major culprits of traversing unchanged directories and linking objects multiple times would be removed. Also, even those without the ability to determine if the hack is safe (e.g. buildbot) would benefit.
Would you be willing to change your workflow if a switch does speed things up enough?
(Note that another option is to move to non-recursive, but keep all the libraries as-is. This would allow your workflow to remain almost identical. [librender would be a target in the top level (only) makefile, so you would run something like "make libgnashrender.la" instead of "make -C librender".] I don't recommend it, though; better is to speed things up enough that hacks aren't necessary.)
-- dolphinling <http://dolphinling.net/>
[Prev in Thread] | Current Thread | [Next in Thread] |