On Saturday, 28 October, Eli Zaretskii ([EMAIL PROTECTED]) wrote: > > No, I think this is a bug. Make should choose the first pattern rule to > > build lib%.a, because both patterns can be built. > > I'm confused: I think Make did choose the first pattern rule. The > problem was with the order of prerequisites in that rule. Am I > missing something?
If you unpack the example attached to the first post and annotate it a little bit, you'll see that what actually happens is make chooses the second pattern rule rather than the first one: .c.o: ; @echo '.c -> .o' lib%.a : %.def %.o ; @echo Rule: .def .o lib%.a: %.def ; @echo Rule: .def $ make -rR Rule: .def .c -> .o $ make-3.80 -rR .c -> .o Rule: .def .o I think 3.80 (and below) have this right, and 3.81 has this wrong. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Make-w32 mailing list [email protected] http://lists.gnu.org/mailman/listinfo/make-w32
