[Libreoffice] a faster gnumake ? ...

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Tue Apr 5 01:43:42 PDT 2011


On Tue, 05 Apr 2011 01:42:23 -0600
"Tor Lillqvist" <tlillqvist at novell.com>
wrote:

> Now, assume thre are old foo.dll and libfoo.dll.a files around, but
> foo.c has been edited. If Make would cache stat calls, it would not
> have any reason to believe that libfoo.dll.a indeed got updated, too,
> when foo.dll was produced by its recipe, would it? So it would run
> the recipe once more.

GNU make needs to rebuild everything depending on a file, if that file
has been rebuild, regardless of timestamps. If any of the direct or
indirect dependencies of a file are newer it will be rebuild. Other
wise it would be a build-order only dependency (with :| ).

> 
> Well, yeah, Make could reasonably assume that the command does indeed
> update both foo.dll and libfoo.dll.a as both are targets of the
> command and the recipe didn't contain $@. Or something like that. One
> probably can easily come up with more heuristics that could be added
> to (GNU) Make and make it better in our case. But if we start using a
> modified Make, we are back where we started, with our own Make.

No, GNU make considers a target outdated, if the rule of any of its
dependencies fired, regardless if that actually changes any timestamps.
You can see that already pretty well using "make --debug=b".

Best,

Bjoern

-- 
https://launchpad.net/~bjoern-michaelsen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110405/32cc0f4c/attachment.pgp>


More information about the LibreOffice mailing list