On Mon, Jun 22, 2009 at 2:50 PM, Fritz Code<codefr...@googlemail.com> wrote:
> ifneq ($(shell ./error_check),0)
>   �...@echo "error";
>    $(error ...)
> else
>    @echo "no error";
> endif

i don't think that will work how you want it to. "echo" can only
appear in target rules, not outside of target rules. $(error) is
(AFAIK) only useful outside of rules. Thus you cannot use $(error) to
report shell-level errors. The correct way to check inside a target is
something like:

target:
    @do .something; x=$$?; test x0 != x$$x && {echo "Error! RC=$$x!";
exit $$x; }; \
    true

The last "true" bit is so that the rule will exit with 0 if the second
&& part is not triggered.

In summary: you're trying to mix shell and make constructs
interchangeably, and that won't work - they are separate beasts and
have separate rules regarding when they can be used.

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/


_______________________________________________
Help-make mailing list
Help-make@gnu.org
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to