私の目的は、このディレクトリのmake
を呼び出してすべてのターゲットをレンダリングするRMDファイルを持つ各ディレクトリにコピーできるユニバーサルMakefileを持つことですこのディレクトリ内のすべての.Rmdファイルで定義されています。ディレクトリ内のすべての.Rmdファイルのすべてのターゲットをレンダリングするメイクファイル
以下のMakefileは、最後のファイルを期待通りにレンダリングするためだけに機能します。私は何か簡単なことを間違っていると確信しています。
Makefileを変更する必要があるため、どうすればよいですか?
また、make
を2回実行すると、すべてのファイルが再度生成されますが、SOURCEファイルは変更されません。
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)
ありがとう:
は、私は次のMakefileを持っています。