在具有相当复杂的构建过程的项目中,我需要通过一个工具传递一些生成的文件,该工具在stdout
stdin
上生成一些输出。
相应的食谱是:
out-file: in-file
@tool < $< > $@
(实际上,名称是通用的,不是静态的,但这不是重点)
我的问题是此工具在警告时返回1,在错误时返回2,我想在错误上停止 。上面写的食谱的方式,make
将停止警告,如果我写:
out-file: in-file
@-tool < $< > $@
然后它会不停止错误。
如何实现此行为,最好只使用make?
答案 0 :(得分:1)
如果您关心的代码是返回代码,则需要手动捕获错误并仅退出并显示错误。
类似的东西:
@tool < $< > $@; [ $$? -ne 2 ]
或更确切地说:
@tool < $< > $@; ret=$$?; [ $$ret -eq 0] || [ $$ret -eq 1 ]