我有一個簡單的生成文件,運行生成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