我想使用 make 作为可重复研究的工具。这项研究涉及一个很长的管道,我将为许多独立的数据集运行它,需要一个我将在“pseudo-make”中描述的工作流程,如下所示:
datasets = foo bar baz
$(datasets): path/to/result/%.dat:
./generate_dat_from %
$(datasets): path/to/figs/%.png: path/to/result/%.dat
./generate_png_from_dat path/to/result/%.dat
[etc.]
如果 make 只是简单地将每个数据集的名称替换为 '%',这正是我想要的。但是,GNU make 手册对静态模式规则的语法有这样的说法:
当 target-pattern 匹配一个目标时,`%' 可以匹配目标名称的任何部分;这部分称为茎。模式的其余部分必须完全匹配。
这就解释了为什么上面的代码不起作用。在 make 中完成此任务的最佳方法是什么,或者 make 根本不是这项工作的正确工具?
在此先感谢,如果问题提出不当,我深表歉意——我是新手,几乎不知道如何表达这个问题。