Jef*_*eff 7 lockfile makefile gnu-make onerror
在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
Run Code Online (Sandbox Code Playgroud)
我会在同一目标中执行锁定/解锁file-maker:
file.out: file.in
lockfile $@.lock
file-maker < $< > $@; \
status=$$?; \
rm -f $@.lock; \
exit $$status
Run Code Online (Sandbox Code Playgroud)
这种执行file-maker和解锁在同一外壳的步骤,节省的状态,file-maker所以make如果将失败file-maker失败.