Make
使用 Makefile 輸出到多個文件
我有一個makefile,用於通過乳膠模板將markdown中的文件轉換為.pdf。目前,這一次只能處理一個文件。但是,我希望 makefile在活動目錄中的任何markdown 文件上執行,並使用單個 make 命令輸出到具有相同名稱的 .pdf。例如,我可能有以下內容:
Foo.md —> Foo.pdf
條形圖.md —> 條形圖.pdf
我目前的makefile在這裡:
TEX = pandoc MEXT = md src = template.tex $(wildcard *.$(MEXT)) FLAGS = --latex-engine=xelatex letter.pdf : $(src) $(TEX) $(filter-out $<,$^ ) -o $@ --template=$< $(FLAGS) .PHONY: clean clean : rm output.pdf
感謝您的任何指點…
試試這個:
TEX = pandoc MEXT = md SRC = $(wildcard *.$(MEXT)) PDFS = $(SRC:.md=.pdf) TMP = template.tex FLAGS = --latex-engine=xelatex all: ${PDFS} %.pdf: %.md ${TMP} ${TEX} $(filter-out $<,$^ ) -o $@ --template=${TMP} $(FLAGS) $< .PHONY: clean clean: rm *.pdf
我沒有對此進行完全測試,但我認為它應該進行一些修改。使用 for 循環:
TEX = pandoc MEXT = md SRC = $(wildcard *.$(MEXT)) TMP = template.tex FLAGS = --latex-engine=xelatex letter.pdf : $(foreach i, $(SRC), $(TEX) -o $(i).pdf --template=$(TMP) $(FLAGS) $(i);) .PHONY: clean clean : rm -f *.pdf
另請注意,此解決方案不會生成
md
文件:foo.md -> foo.md.pdf
不過應該不難修復。