【发布时间】:2017-10-20 12:20:21
【问题描述】:
我的目标是拥有一个通用的 Makefile,我可以将它复制到我有一个 RMD 文件的每个目录中,该文件将在此目录中调用 make 时呈现此目录中所有 .Rmd 文件中定义的所有目标。
下面的 Makefile 仅用于按预期呈现最后一个文件。我确定我做错了一些简单的事情。
我必须如何修改 Makefile 才能完成它应该做的事情?
另外:当我第二次运行make 时,所有文件都会再次生成,尽管没有更改 SOURCE 文件。
我有以下 Makefile:
SOURCES=$(shell find . -name "*.Rmd")
TARGETS_pdf=$(SOURCES:%.Rmd=%.pdf)
TARGETS_html=$(SOURCES:%.Rmd=%.html)
TARGETS_nb_html=$(SOURCES:%.Rmd=%.nb.html)
TARGETS_docx=$(SOURCES:%.Rmd=%.docx)
default: $(SOURCES)
$(info Generating defined targets from $(SOURCES))
@echo "$< -> $@"
@Rscript -e "rmarkdown::render('$<', output_format = 'all')"
clean:
rm -rf $(TARGETS_pdf)
rm -rf $(TARGETS_html)
rm -rf $(TARGETS_nb_html)
rm -rf $(TARGETS_docx)
谢谢。
【问题讨论】:
标签: r macos makefile knitr r-markdown