AFAIK, the "% : error" rule says, that all targets are depending on the 'error' target, so that is built first. The manual says: > There can only be one set of commands to be executed for a file. If more > than one rule gives commands for the same file, make uses the last set > given and prints an error message. This is what you see, except for the error message; but then, maybe your 'exit' prevents the error message being printed. Please remove the 'exit', and if necessary, use '-d' to see waht's going on. Maybe you should consifer using double-colon rules for this, depending on what you want to achieve with the %-rule.
Regards, Johan Bezem CSK Software AG gk wrote: > > I do not understand why the following makefile will not build the second > target. > I thought the explicit rule should take precedence over a match-anything > rule, especially since it appears earier in the makefile. Thanks for any clues. > > # makefile > # .PHONY directive makes no difference regarding this problem > .PHONY: error project > > error : > @echo 'rule: $@' > @echo type "'make project'" > @exit 1 > > # this target cannot be made: > project : > @echo 'rule: $@' > > # if this final rule is removed, it works fine > % : error > @echo this will never print > #eof > > [greg@p3 junk]$ make project > rule: error > type 'make project' > make: *** [error] Error 1 > > - Greg Keraunen > > _______________________________________________ > Help-make mailing list > [EMAIL PROTECTED] > http://mail.gnu.org/mailman/listinfo/help-make _______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-make
