2014-10-11 144 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 
相關問題