On Tue, 05 Apr 2011 01:42:23 -0600 "Tor Lillqvist" <[email protected]> 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
signature.asc
Description: PGP signature
_______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
