我有两种类型的文件。脚本和数据集。我想编写一个makefile来运行每个脚本和每个数据集。 我的想法是为每个输出创建一个目标,其中目标的名称包含脚本和模型名称。这些目标将匹配"目标模式" -rule(类型:some_folder /%。eval)。现在" target-pattern" -rule需要从其名称中找出需要哪些文件。但这似乎是一项艰苦的工作。
有更好,更优雅的方式吗?
示例:
文件:ScriptA,ScriptB,InputA,InputB
目标/输出文件:InputA_ScriptA,InputA_ScriptB,InputB_ScriptA,InputB_ScriptB
# generate all combinations
RT_HW = $(foreach script,$(RT_SCRIPT_HW),$(foreach input, $(RT_INPUTS), $(input)_$(script)))
$(SANDBOX)%.eval: <requires Script X and input X>
答案 0 :(得分:2)
你遇到了Make的一个主要缺点:通配符并不是很好。
通过迭代两个变量,您可以通过eval生成规则来获得所需的效果:
getItemPropDetailsfromDB
或通过生成模式规则,只迭代一个,例如输入:
undefined