我有一个make文件,其中包括:
%.dat: %.txt
... PREPROCESSING OF TEXT FILE
tidy -o $*.html $<
... FURTHER PROCESSING
tidy
产生许多警告,我可以用标志--show-warnings false
禁止显示这些警告,但是尽管警告被抑制,但tidy
的退出状态仍为1而不是0,因此{{ 1}}在整个食谱过程中都失败了。我该如何make
面对make
并给出退出状态1的同时继续让tidy
失败(如果还有其他配方发出警告)呢?
我已经看过这两个问题(Have make fail if unit tests fail和gcc, make: how to disable fail on warning?),但似乎都没有解决这个问题。
修改后:在Make: how to continue after a command fails?中,问题涉及在执行特定命令后,如何使make
在任何非零退出状态之后继续运行,而在情况下,我希望从make
退出状态为2表示错误,导致tidy
失败,但是我希望从make
退出状态为1表示警告tidy
继续。
答案 0 :(得分:1)
最简单的解决方案:
tidy -o $*.html $< || true
因此,如果整洁的退出代码不为零,则true
会产生零退出代码。
但是请检查整洁的exit codes:
退出状态
0
所有输入文件均已成功处理。
1
有警告。
2
有错误。
也许您只想跳过错误代码1
。在这种情况下:
tidy -o $*.html $< || [ $$? -eq 1 ] && true