在Makefile中,如何清理lockfile文件?

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)

Jac*_*lly 7

我会在同一目标中执行锁定/解锁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失败.