我有一个perl脚本返回值"返回1;"或"返回0;"。我也试过"出口1"one_answers"出口0";
在我的makefile中,我有以下代码:ifneq ($(TRG_TYPE),node)
VAR := $(shell perl $(ROOT)/Make/chipdep.pl $(ROOT) $(CHIP) $(NAME) )
ifeq ($(VAR),1)
$(error just a test error. Aborting)
endif
endif
我知道perl脚本可以工作-我单独测试了它,但是我从来没有看到这个错误和中止,即使它应该被看到!
shell
调用的值是shell命令的输出,而不是它的退出代码。将脚本设置为print 0
或print 1
,或者在一般情况下,执行$(shell yourcmd >/dev/null 2>&1; echo $$?)
以从shell
命令中获取退出代码。
这似乎有点倒退。如果脚本返回0表示成功,返回1表示失败,也许您应该简单地将其作为目标的第一个命令运行;如果目标的任何命令失败,目标将中止。