Makefile 我如何告诉GNU 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

我使用make自动创建一个文件,该文件依赖于其他几个文件,每个文件都依赖于正在创建的中间文件,最终依赖于硬盘上的一个文件

    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"