我的 Makefile 有一些问题:
# Manage rendering of images
.PHONY: explode
all: explode anime.apng
out.ppm: file.code
./pgm -f $<
explode: out.ppm
split -d -a 3 --lines=$(N) --additional-suffix=.ppm $< frame
# Convert to multiple png
%.png: %.ppm
convert $< $@
optipng $@
# Assemble in one animated png
anime.apng: %.png
apngasm $@ frame000.png
我的问题是:我不知道要生成最终目标需要多少中间文件,所以我无法提前指定它们。示意图:
1 file.code -> 1 out.ppm |> LOADS of .ppm |> LOADS of .png -> 1 anime.apng
+> … +> …
+> … +> …
为此,我使用了一个隐含的规则%.png: %.ppm
。但是我无法为最后一个合并步骤指定先决条件!有任何想法吗?使用 make 以外的其他工具?有什么优雅的吗?