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

Reply via email to