Makefile中的错误处理(如果是其他情况)

时间:2020-07-21 10:57:38

标签: shell makefile gnu-make

我处于某种情况下,我想做的事情是目标返回错误。我的代码是:

pre-submit:
    cp test.csv test.csv.bk
    make test.csv
    make lint
    rm test.csv.bk

这很好。但是在某些情况下,make lintmake test.csv会出现错误,在这种情况下,我想删除test.csv(如果有)并将test.csv.bk重命名为test.csv

我找不到我们是否可以捕获从 target

引发的错误

编辑:皮棉看起来像这样:

.PHONY: lint
lint: | env
    ./env/bin/python lint.py

1 个答案:

答案 0 :(得分:2)

一种执行所需操作的方法是使用shell:

pre-submit:
    cp test.csv test.csv.bk
    (make test.csv && make lint) || mv test.csv.bk test.csv

但是您也可以使用Make本身:

pre-submit: test.csv.new lint
    mv test.csv test.csv.bk
    mv test.csv.new test.csv