2014-10-11 143 views

回答

1

这不可能是一个真实的例子。 shell将退出,并执行最后一条命令的结果,如果if语句成功,则退出代码为make,这正是您想要的。所以显然在你真实的代码中,你必须在make和end之间做一些其他的命令。您可以将结果副本保留在变量中,并将其作为退出:

if [ -f $(@D)/src/Makefile ]; then \ 
    $(MAKE) -C $(@D); \ 
    r=$$?; \ 
     ...do other stuff...; \ 
    exit $$r; \ 
fi 
1

不知怎的,我无法重现你的问题,但我想下面应该为你工作:

%/all: 
if [ -f $(@D)/src/Makefile ]; then \ 
    $(MAKE) -C $(@D) || (echo "make failure: $$?"; exit 1) \ 
fi 
相关问题