2012-01-03 6 views
2

私はMakefileを書くのに苦労しています。私は学ぶにはbuilding up some examplesです。ビルドを並行させ、プロジェクトをより統一して管理しやすくするので、Makefileを使いたいです。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.oを別のファイルstem.cから作成する方法を示しています。

ので、

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

+1

ちょうど文体的な点です:あなたは 'OUTFILES'を生成するために代替参照を使うこともできます:' OUTFILES = $(INFILES:.src.html = .html) '。これにより、何が起きているのかが少しだけ明確になります。 – eriktous

関連する問題