Follow-up Comment #1, bug #23210 (project make):

For this makefile:

> ../libfoo.a: foo1.o
>        ar rcs ../libfoo.a foo1.o

make is doing what you told it to; the problem is that the makefile doesn't
capture your intent.  That makefile says "add or update the foo1.o member of
../libfoo.a if _and_only_if_ the foo1.o file is newer
_than_the_archive_itself_".  That's wrong: the foo1.o member should be updated
if the foo1.o file is newer than the _member_in_the_archive_.  Using the
archive member syntax solves that:

../libfoo.a(foo1.o): foo1.o
        ar rcs ../libfoo.a foo1.o

(Of course, archive members targets have their own issue with parallel
builds, but that at least can be handled with .NOTPARALLEL)


Philip Guenther


    _______________________________________________________

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