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

I don't think this is a bug. You get what you deserved with the makefile you
provided: you redefined the (%.o): %.c rule and as a result, you got no
actual file in archive even though the rule claims to create one.

First, I checked your makefile with make 3.81 and 3.80. Both exhibit the
following expected behavior:

- When the make is run for the first time, the library is built as you
expect:

cc -c -o a.o a.c # to just compile the files
cc -c -o b.o b.c # to just compile the files
ar cru mylib.a a.o b.o # Add all new objects to the archive
rm -f a.o b.o # Remove the objects

- When a.c is touched and make is rerun, a.c is recompiled but not put into
the archive:

cc -c -o a.o a.c # to just compile the files

This is what one would expect from your makefile: once a library is already
created, its modification date is newer than any of the objects therein.
Therefore, the rule that archives the newly built objects is not invoked.

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=14927>

_______________________________________________
  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