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

Reply via email to