[Libreoffice] a faster gnumake ? ...
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>
> 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".
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 490 bytes
Desc: not available
More information about the LibreOffice