为什么一个模式规则有效但另一个无效?

时间:2015-06-17 12:18:40

标签: svg makefile latex inkscape

我在理解为什么我的makefile中的一个模式规则工作得很好而不是另一个模式规则时遇到了问题,因为它们看起来与我非常相似。我尝试做的是使用makefile编译LaTeX文档,包括从Inkscape导出的SVG插图:

#Program paths
LATEX = latex
BIBTEX = bibtex
PDFLATEX = pdflatex
INKSCAPE_PATH = inkscape

#Options
LATEX_OPS=-interaction=nonstopmode
BIBTEX_OPS=
PDFLATEX_OPS=
INKSCAPE_OPS=-D -z --export-latex

#File paths
LATEX_PATH=.
PICS_PATH=/path/to/user\ name/pics

all: my_illustration.svg my_pdf_file.pdf

#Generate files for including SVG illustration
%.svg: $(PICS_PATH)/%.svg
    $(INKSCAPE_PATH) $(INKSCAPE_OPS) --file="$^" --export-pdf="$(subst svg,pdf,$^)"

#Generate PDF
%.pdf: $(LATEX_PATH)/%.tex
    -$(LATEX) $(LATEX_OPS) $^
    -$(BIBTEX) $(BIBTEX_OPS) $(LATEX_PATH)/$(subst .pdf,,$@).aux
    $(PDFLATEX) $(PDFLATEX_OPS) $^
    $(PDFLATEX) $(PDFLATEX_OPS) $^

现在,单独生成my_pdf_file.pdf工作正常,但SVG规则失败:

No rule to make target `my_illustration.svg', needed by `all'.  Stop.

我做错了什么?提前谢谢。

0 个答案:

没有答案