在GNU Make 3.81中,我需要在工具链的任何部分发生
错误时
删除锁
文件.是否有特殊目标可以让我这样做?我需要编写包装脚本吗?
在下面的示例中,如果file.out的规则失败,我需要unlock_id.
谢谢!
-Jeff
all: lock_id file.out unlock_id
file.out: file.in
file-maker < file.in > $@
lock_id:
lockfile file.lock
unlock_id:
rm -rf file.lock
我会在与
文件制作者相同的目标中进行锁定/解锁:
file.out: file.in
lockfile $@.lock
file-maker < $< > $@; \
status=$$?; \
rm -f $@.lock; \
exit $$status
这会在同一个shell中执行文件制作者和解锁步骤,从而保存文件制作者的状态,因此如果文件制作者失败,make将失败.