2012-01-03 5 views
2

Makefile 작성에 어려움을 겪고 있습니다. 배우려면 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.o에서 파일 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

+1

그냥 문체 포인트 : 당신은 또한 'OUTFILES'을 생성하기 위해 대체 참조를 사용할 수 있습니다 :'OUTFILES = $ (INFILES : .src.html = .html)'. 이것은 무슨 일이 일어나고 있는지 좀 더 분명하게 해줍니다. – eriktous

관련 문제