我有一个简单的生成文件,运行生成3个csv文件的R程序。我用这个回答:https://stackoverflow.com/a/3077254/4564432具有多个目标的makefiles
但我不觉得这是行得通的。
.PHONY: all one clean
all: one
clean:
-rm *.csv
one: csv1.csv csv2.csv csv3.csv
csv1%csv csv2%csv csv3%csv: myProgram.R
R CMD BATCH $<
当我运行make
最初它工作正常,运行我的程序,并生成我的输出。我的理解是,如果我重新运行make,而不更改myProgram.R
它应该知道不运行任何东西,但是我发现使用上面的makefile它可以在任何时候运行make
,而不管时间戳。
任何帮助,将不胜感激。
编辑: 使用GNU MAKE 3.79.1
答:
我意识到,我的输出,将CSV中,分别进入不同的文件夹,所以我需要做的one: myFolder/csv1.csv myFolder/csv2.csv etc.
我无法复制此行为。第二轮没有为我重建任何东西。你使用的是什么版本的'make'?我使用'GNU Make 3.81'进行测试 – MrFlick
我正在使用GNU Make 3.79.1 – Carl
这是一个很长的画面,但是myProgram.R的修改日期或时间可能在将来吗? – rveerd