Follow-up Comment #2, bug #23210 (project make): I can see your point. Your change essentially makes the target in the "target: source" rule more specific thus turning foo2.o into an exhaustive list of things the new more-specified target depends on. Previously one Makefile said libfoo.a depends on foo1.o, and another said it depends on foo2.o, and that allowed the target to get updated before 100% of the things it depended on were created.
But I still find the behavior odd, because in the original example foo2.o _is_ newer than libfoo.a for a reasonably intuitive sense of the word "newer": it was created chronologically after the most recent update to libfoo.a. It's only the luck of how quickly the operations happen and the granularity of the filesystem's mtime that determines whether the second foo2.o will be ar'd or not. I do like the facility you pointed out which allows a subset of an archive to be used as a target though, since it's quite natural to update an archive piecemeal and that wouldn't be possible without such a facility. It seems like a pretty specialized solution, although I'll admit I'm not coming up with many other examples offhand where piecemeal updates are as common/natural as an archive (maybe a .tar file). _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?23210> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make