我正在使用make来自动创建一个文件,该文件依赖于其他几个文件,每个文件都取决于正在创建的中间文件,最终取决于硬盘驱动器上的文件。
all
/ \
a1 a2
| |
b1 b2
| |
file1 file2
all
取决于a1
和a2
,它取决于中间文件b1
和b2
,后者又由{{1}制作和硬盘上的file1
。这是我的Makefile。
file2
当我all: $(patsubst %, a%, 1 2)
echo "making all"
a%: b%
echo "making $@ from $^"
b%: file%
echo "making $@ from $^"
时,我会看到以下输出(在触及make -n
和file1
后)。
file2
我的问题是echo "making b1 from file1"
echo "making a1 from b1"
echo "making b2 from file2"
echo "making a2 from b2"
echo "making all"
rm b1 b2
和b1
非常大,我不能同时将它们放在我的硬盘上(在我的实际情况中,它不仅仅是两个而是几十个这些文件)。在开始制作b2
之前,有没有办法告诉make在b1
完成后立即处理a1
?换句话说,我希望看到以下输出。
a2