2012-01-03 46 views
2

我很努力地写Makefiles,我很努力地学习building up some examples。我想使用Makefiles,因为它使构建并发,项目更统一,更易于管理。构建脚本到Makefile

你有任何资源可以分享吗?

例如,我正在努力思考如何将这个简单的构建脚本转换为Makefile,以便index.html仅在其index.src.html被修改时才构建。

for i in */index.src.html 
do 
    anolis --max-depth=3 $i $(dirname $i)/index.html 
done 

回答

2

尝试使用模式规则。从the GNU Makefile manual

因此,模式规则'%.o:%.c'说明如何从另一个文件stem.c中创建任何文件stem.o。

所以,像

INFILES = $(shell find . -name index.src.html) 
OUTFILES = $(addsuffix .html, $(basename $(basename $(INFILES)))) 

default: $(OUTFILES) 

%.html : %.src.html 
    anolis --max-depth=3 $< [email protected] 

clean: 
    rm -f $(OUTFILES) 

的技巧就成为一个可靠的和安全的方式建立INFILES

+0

s,%。src,%。src.html,否则太棒了!作品很棒:) – hendry 2012-01-03 10:28:29

+1

只是一个风格点:你也可以使用替代引用来生成'OUTFILES':'OUTFILES = $(INFILES:.src.html = .html)'。这使得它更清楚地发生了什么。 – eriktous 2012-01-03 12:46:19