一个makefile通过一个中间文件从另一个文件生成一个文件并自动删除中间文件:
.INTERMEDIATE $(B_FILES)
%.b : %.a
a_to_b $<
%.c : %.b
b_to_c $<
all: $(A_FILES)
以上是一个简化的示例——它生成一个 .c 文件并删除中间的 .b 文件。如果专门制作,可以生成并保留中间 .b 文件:
$ make my_file.b
但是,通过添加规则来生成中间文件:
b_files: $(B_FILES)
可以制作所有中间文件:
$ make b_files
但是,make 在生成 .b 文件后会删除它们,因为它们被列为中间文件。使用此特定目标时,是否可以防止 make 删除它们?
我认为答案需要在 b_files 规则中重新定义 .INTERMEDIATE 但我不确定是否可以在特定规则中重新定义目标。