On Tue, 05 Apr 2011 01:42:23 -0600
"Tor Lillqvist" <tlillqv...@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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to