【发布时间】:2014-07-08 09:52:23
【问题描述】:
默认情况下,make 会在不再需要目标时自动删除它们。
例如:
do_it: write_bar write_baz
echo done > $@
.INTERMEDIATE: write_foo write_bar write_baz
write_foo:
echo foo > $@
write_bar: write_foo
cat $< > $@
echo bar >> $@
write_baz: write_foo
echo buz > $@
这里的write_foo会在write_bar和write_baz都执行后被删除。
我不想简单地删除文件,而是在 write_foo 删除之前执行一些操作。
我可以更改自动删除命令或为此操作分配任何挂钩吗?
更新:自动删除仅适用于中间规则。
【问题讨论】:
-
不,你今天不能这样做。事实上,make 甚至不运行
rm命令,它只是打印rm,但在内部它使用unlink()系统调用来删除文件。