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

在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将失败.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...