Perl脚本在makefile中返回值



我有一个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 0print 1,或者在一般情况下,执行$(shell yourcmd >/dev/null 2>&1; echo $$?)以从shell命令中获取退出代码。

这似乎有点倒退。如果脚本返回0表示成功,返回1表示失败,也许您应该简单地将其作为目标的第一个命令运行;如果目标的任何命令失败,目标将中止。

最新更新