Re: build.pl debug=1 for sw and svx

Mathias Bauer <[email protected]> Mon, 11 Apr 2011 09:24:54 +0200
Newsgroups gmane.comp.openoffice.devel.general
Message-ID <[email protected]>
On 08.04.2011 11:19, Michael Stahl wrote:
> On 07/04/2011 10:05, Mathias Bauer wrote:
>> On 06.04.2011 19:47, Michael Stahl wrote:
>>> On 06/04/2011 18:45, tora - Takamichi Akiyama wrote:
>>>> Hello Christian,
>>>>
>>>> On 2011/04/06 20:55, Christian Lippka wrote:
>>>>> While Niklas and Daniel are absolutely right, make clean may not always
>>>>> be what you want.
>>>>>
>>>>> For example, if you just want to rebuild svx with debug and do a
>>>>> make -sr clean, your next make in sw module would rebuild a lot of
>>>>> stuff, since all dependency to svx would fire.
>>> actually, for a module like svx it shouldn't rebuild any cxx files in
>>> dependent modules (which takes up most of the time), because gbuild will
>>> preserve the timestamp of the original file when delivering.
>>>
>>> of course if headers are *generated*, then dependent cxx files will be
>>> rebuilt.
>>>
>>> hmm... on second thought, if you actually use the top-level makefile, then
>>> probably the cxx files will be rebuilt in this case... :(
>>
>> If "in this case" means: "if there are generated headers", this is true.
>
> no, i mean for ordinary headers that are just copied.
> (that generated headers cause rebuild is really obvious...)
>
> for headers that are just copied, GNU make will consider the target in the
> outdir outdated, because, well, it doesn't exist, and will copy the header
> to the outdir.

Ah, I see. I just overlooked that you talked about build after "make 
clean". Sorry.

> of course the right question here is, why the hell are we copying all
> those headers?
> it seems pointless to me: they could just as well be included from the
> source directory instead of from the solver.

I agree. OTOH this would be a huge change. The current way we include 
our headers from outside the current module assumes that they reside in 
a common root folder. If we took them from their location in the source 
directory, we either had to move all currently "delivered" header files 
into a common source directory or we had to change all include 
statements (e.g. from "#include <sfx2/objsh.hxx" to "#include 
<sfx2/inc/sfx2/objsh.hxx>".
The third option to add all modules to the INCLUDE path is a no-go for 
performance reasons.

There is a fourth, somewhat pragmatic option: add a second clean target 
that does't remove headers that are only copied but not generated.

For those who now start to think that the rebuild caused by a "make 
clean" is a bug in the new build system: that's not true. The bug is 
that we copy header files in the build instead of using them where they are.

Regards,
Mathias

-- 
Mathias Bauer (mba) - Project Lead OpenOffice.org Writer
OpenOffice.org Engineering at Oracle: http://blogs.sun.com/GullFOSS
Please don't reply to "[email protected]".
I use it for the OOo lists and only rarely read other mails sent to it.
-- 
-----------------------------------------------------------------
To unsubscribe send email to [email protected]
For additional commands send email to [email protected]
with Subject: help