我有一个运行数据分析的makefile,我正在为许多具有共同工作流的数据集做。我有很多规则......
data/a/a.tax : code/a.sh code/a.x
bash $<
data/b/b.tax : code/b.sh code/b.x
bash $<
data/c/c.tax : code/c.sh code/c.x
bash $<
我想我能做到......
data/%/%.tax : code/%.sh code/%.x
bash $<
但这似乎不起作用(make: *** No rule to make target data/a/a.tax'. Stop
)
关于什么可行的任何建议?
答案 0 :(得分:0)
模式规则目标只能包含一个%
,.SECONDEXPANSION
可以解决此问题
.SECONDEXPANSION:
data/%.tax: code/$$(notdir $$*).sh code/$$(notdir $$*).x
bash $<
尽管如此,除非您绝对需要特定的树结构,否则将先决条件更改为code/a/a.sh
等更简单
data/%.tax : code/%.sh code/%.x
bash $<