1
我的目标是有一个通用的Makefile,我可以复制到每个目录下我有一个RMD文件,该文件,在该目录中调用make
,使所有目标在此目录中的所有.Rmd文件中定义。Makefile来渲染所有.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 "$< -> [email protected]"
@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)
感谢。