我使用 aMakefile
对我的文件进行字节编译R
(主要是为了检测代码的潜在问题)。编译文件时,我会加载它的library
需求loadcmp
及其本地依赖项:
R = R --quiet
MISC_REQ = entropy igraph data.table
misc.Rc : REQ = $(MISC_REQ)
import.Rc : import.R misc.Rc
import.Rc : REQ = $(MISC_REQ)
modeling-functions.Rc : modeling-functions.R misc.Rc
modeling-functions.Rc : REQ = $(MISC_REQ) plyr Matrix e1071
%.Rc : %.R
$(R) $(foreach f,$(REQ),-e 'library("$f")') \
$(foreach f,$(filter %.Rc, $^),-e 'loadcmp("$f")') \
-e 'source("$<"); cmpfile("$<"); checkUsageEnv(.GlobalEnv)'
我想知道是否有办法让我避免两次指定依赖项:一次是当我提到import.Rc
依赖项时misc.Rc
,第二次是添加MISC_REQ
到REQ
for时import.Rc
。
编辑:对于我非常简单的依赖树,我可以使用以下简化:
REQ = entropy igraph data.table
misc.Rc :
share-click-import.Rc : share-click-import.R misc.Rc
modeling-functions.Rc : modeling-functions.R misc.Rc
modeling-functions.Rc : REQ += plyr Matrix e1071
但是,我想要一个更通用的解决方案。
自动依赖检测omake
会很好。