我有一个makefile
,其中包含一堆.R
个脚本,可以创建.csv
个文件作为输出。然后在python模拟中使用这些文件。
all: $(FILES)
python simulation.py
$(FILES): %.csv: %.R
Rscript $<
这很简单。我的皱纹是.R
脚本中有一个(且只有一个)有自己的依赖关系,比如说sourcedata
。似乎将这种依赖放在模式中会很烦人
all: $(FILES)
python simulation.py
$(FILES): %.csv: %.R sourcedata
Rscript $<
sourcedata:
wget "sourcedata.zip"
但是这样做all: sourcedata $(FILES)
并依赖于操作顺序be less effective。我想我也可以给那个R文件自己的虚假规则
problem_script.R: sourcedata
@echo R script read
但我无法测试是否可行。有没有确定的方法来做到这一点?
答案 0 :(得分:3)
除非我误解,否则只要 R文件或 sourcedata
,就需要指定需要重建特定的CSV文件文件更改,对吗?
如果是这样,只需添加:
problem_script.csv: sourcedata
(不需要食谱)。这声明了该特定CSV文件的额外先决条件,因此,只要它与sourcedata
相关,就会重建它。