Makefile 我如何告诉GNU make立即删除中间文件?
我使用make自动创建一个文件,该文件依赖于其他几个文件,每个文件都依赖于正在创建的中间文件,最终依赖于硬盘上的一个文件Makefile 我如何告诉GNU make立即删除中间文件?,makefile,Makefile,我使用make自动创建一个文件,该文件依赖于其他几个文件,每个文件都依赖于正在创建的中间文件,最终依赖于硬盘上的一个文件 all / \ a1 a2 | | b1 b2 | | file1 file2 所有这些都取决于a1和a2,它们取决于中间文件b1和b2,而中间文件b1和b2又由硬盘上的文件1和文件2生成。这是我的Makefile all: $(patsubst %, a%, 1 2) echo "making a
all
/ \
a1 a2
| |
b1 b2
| |
file1 file2
所有这些都取决于a1和a2,它们取决于中间文件b1和b2,而中间文件b1和b2又由硬盘上的文件1和文件2生成。这是我的Makefile
all: $(patsubst %, a%, 1 2)
echo "making all"
a%: b%
echo "making $@ from $^"
b%: file%
echo "making $@ from $^"
当我使用make-n时,在触摸file1和file2之后,我会看到以下输出
我的问题是b1和b2非常大,在我的实际情况中,我不能同时将它们保存在硬盘上,这不仅仅是两个,而是几十个这样的文件。有没有办法告诉make在a1完成后立即处理b1,然后再开始制作a2?换句话说,我希望看到以下输出
echo "making b1 from file1"
echo "making a1 from b1"
rm b1
echo "making b2 from file2"
echo "making a2 from b2"
rm b2
echo "making all"
你不能。不过,您可以自己删除这些文件,方法是在a1和a2.facepalm的配方中显式地添加rm命令。是的,我想这是显而易见的解决方案,谢谢。
echo "making b1 from file1"
echo "making a1 from b1"
rm b1
echo "making b2 from file2"
echo "making a2 from b2"
rm b2
echo "making all"