Makefile:Crosscombinations的目标

时间:2016-10-10 11:01:28

标签: makefile target

我有两种类型的文件。脚本和数据集。我想编写一个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>

1 个答案:

答案 0 :(得分:2)

你遇到了Make的一个主要缺点:通配符并不是很好。

通过迭代两个变量,您可以通过eval生成规则来获得所需的效果:

getItemPropDetailsfromDB

或通过生成模式规则,只迭代一个,例如输入:

undefined