【发布时间】:2012-03-06 23:57:09
【问题描述】:
我正在尝试用一个 makefile 编译一个 Sweave 文档,使用存储在另一个目录中的数据,由当前目录中的脚本组装。工作流程是这样的:
datamaker.R > /otherdirectory/data > .rnw > .tex > .pdf
我目前有一个类似于下面创建的makefile:
MASTER = foo.pdf
VPATH = /otherdirectory
all: $(MASTER)
open $<
data: datamaker.R
R CMD BATCH 'datamaker.R'
foo.rnw: data
foo.tex: foo.rnw
R CMD SWEAVE 'foo.rnw'
foo.pdf: foo.tex
pdflatex foo.tex
问题在于 R CMD BATCH 命令每次都会运行,即使“datamaker”比“data”更早。我确定我遗漏了一些相当明显的东西,但我已经把头发拔了好几个小时了。
【问题讨论】:
-
猜测:
R CMD BATCH命令实际上在otherdirectory/中生成data,而不是在当前目录中,对吗?