2014-02-27 2 views
1

내 모든 .svg 파일을 컴파일하는 makefile을 갖고 싶습니다. 한 번에 하나의 변수를 명령 줄에 입력하십시오. 지금까지 시도하면 어떻게 것은 :Makefile 다중 줄 변수, 단일 명령

FIGS_SVG= \ 
fault_region.svg \ 
fault_region2.svg 

all: 
inkscape -z -D --file=$(FIGS_SVG) --export-pdf=$(FIGS_SVG:.svg=.pdf) --export-latex 

이 변수가 다른도록 한 후 명령 하나에 설정을 실행하면 :

inkscape -z -D --file=fault_region.svg fault_region2.svg --export-pdf=fault_region.pdf fault_region2.pdf --export-latex 

답변

0

보통 메이크업과 함께, 당신은 회전에 대한 규칙을 제공 또 다른에 파일의 한 종류, 당신은 그것을 구축 할 파일을 얘기하고, 확인 당신을 위해 처리합니다 :

FIGS_SVG = \ 
    fault_region.svg \ 
    fault_region2.svg 

all: $(FIGS_SVG:.svg=.pdf) 

%.pdf %.pdf_tex: %.svg 
    inkscape -z -D --file=$< [email protected] --export-latex 

특별한 변수 [email protected]$<가 documente 있습니다 d 매뉴얼의 Automatic Variables 섹션을 참조하십시오.

이 두 명령

inkscape -z -D --file=fault_region.svg --export-pdf=fault_region.pdf --export-latex 
inkscape -z -D --file=fault_region2.svg --export-pdf=fault_region2.pdf --export-latex 

를 실행되지만 .pdf 파일이 존재하지 않는 또는 해당 .svg 파일보다 이전 파일 수정 시간이있는 경우에만.

Make는 tex 파일이 생성되었다는 것을 알려주므로, 그 중 하나를 삭제하면 Make가 파일을 다시 생성하는 방법을 알 수 있습니다.