Re: Building OpenOffice.org with GNU make

Stephan Bergmann <[email protected]> Mon, 07 Dec 2009 14:03:11 +0100
Newsgroups gmane.comp.openoffice.devel.tools
Message-ID <[email protected]>
On 12/07/09 12:27, bjoern michaelsen - Sun Microsystems - Hamburg 
Germany wrote:
> On Mon, 07 Dec 2009 11:51:07 +0100
> Stephan Bergmann <[email protected]> wrote:
>> (1)  A new file x/z is added to the SCM.  A file y/z already exists. 
>> Will all C/C++ files be recompiled that #include "z" and have -Ix
>> before -Iy on their compiler command lines?
> If one regenerates dependencies, yes. The question is if one should do
> that on every build by default. I would say no. In any way, it is
> entirely possible to do that with little additional effort.
> 
>> (2)  A linker switch is added to a makefile variable X in some file
>> y. Will all the linker invocations that depend on X, in all the
>> makefiles that (indirectly) include y be re-done?
> Well, all the "build logic" is intended to be kept in a small set of
> files in solenv. Of course, every target can depend on those (in
> addition to the declarative file describing the library to link),
> causing a rebuild when the build system itself changes. Separating
> those to a finer granularity (depending on platform, separating linking
> and building etc.) is also possible, but might require too much effort
> to maintain to be worth it. BTW, this is not to different from the
> considerations on implicit dependencies of default_images recently
> discussed on [email protected].

The question then is whether the mechanisms needed to implement such a 
sound "full dependencies mode" (like always regenerating dependencies 
and having dependencies on "solenv files") are worth the added 
complexity, given that the time/power consumption advantages of a "full 
dependencies mode" rebuild over a complete rebuild will probably be 
somewhat smaller than those of an (erroneous, in the general case) 
"limited dependencies mode" rebuild over a complete one.

Anyway, my main concern was one of false advertising.  Unless we do 
offer a "full dependencies mode," one should not claim that the 
projected new build system will generally make bisectional bug-hunting 
or resync possible without complete rebuilds.

-Stephan