一尘不染

如何获取GNU Makefile中使用的shell命令的退出状态?

linux

我在执行linux工具时有一个makefile规则。我需要检查工具命令的退出状态,如果该命令失败,则必须中止make。

我尝试检查$?,$$?\ $?等等在makefile中。但是当makefile运行时,它们给了我语法错误。

什么是正确的方法?

这是Makefile中的相关规则

    mycommand \
    if [ $$? -ne 0 ]; \
    then \
        echo "mycommand failed"; \
        false; \
    fi

阅读 643

收藏
2020-06-07

共1个答案

一尘不染

在makefile中:

mycommand || (echo "mycommand failed $$?"; exit 1)

makefile操作中的每一行都调用一个新的shell-必须在命令失败的操作行中检查错误。

如果mycommand失败,则逻辑分支到echo语句,然后退出。

2020-06-07