如何在makefile目标中保存和返回退出代码

问题描述 投票:0回答:1

我有一个看起来像这样的目标:

.PHONY: run-my-test
run-my-test: all
    run_test_suite.sh --all --log-to-file
    post_process_logs.sh

如果测试用例失败,则run_test_suite.sh的退出代码将导致Make无法继续运行post_process_logs.sh。这是一个问题,因为即使是失败的测试,我也想获取处理后的日志。我应该如何更新我的目标?

我已经考虑过以某种方式保存退出代码,并可能在目标定义的末尾退出。还是将通话分为多个目标?

我还可以补充一点,由于我们的构建系统的工作原理,我几乎必须从Make中执行此操作。而且我宁愿不必添加更多目标,因为make文件通常会被这些目标弄得一团糟。

shell makefile
1个回答
0
投票
的退出代码

如果您希望构建失败,并且在运行post_process_logs.sh时失败,请在相同的条目中输入这两个命令。.PHONY: run-my-test run-my-test: all run_test_suite.sh --all --log-to-file; e=$$?; post_process_logs.sh; exit $$e

run_test_suite.sh的退出状态保存在外壳变量e中,该变量用作exit之后的post_process_logs.sh的参数,以设置整个命令的退出状态。
© www.soinside.com 2019 - 2024. All rights reserved.