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)
感謝。