2012-01-03 45 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