Просмотр исходного кода

Aded cross-references check to make rules.

Taddeus Kroes 13 лет назад
Родитель
Сommit
4f62d702a0
1 измененных файлов с 14 добавлено и 6 удалено
  1. 14 6
      docs/rules.mk

+ 14 - 6
docs/rules.mk

@@ -1,15 +1,23 @@
 REPORT := report
 REPORT := report
 SCHEME := data/server_scheme
 SCHEME := data/server_scheme
 PDFLATEX_FLAGS = -halt-on-error -interaction=nonstopmode \
 PDFLATEX_FLAGS = -halt-on-error -interaction=nonstopmode \
-	-output-directory $(@D)
+	-output-directory $(@D) -shell-escape
+LATEX = TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS)
+REF_WARNING := "Rerun to get cross-references right"
 
 
-.PHONY: docs
+.PHONY: docs report
 
 
-docs: $(b)$(REPORT).pdf $(b)$(REPORT).bbl $(b)proposal.pdf $(b)presentation.pdf
+docs: report $(b)proposal.pdf $(b)presentation.pdf
+
+report: $(b)$(REPORT).pdf $(b)$(REPORT).bbl
 
 
 $(b)%.pdf: $(d)%.tex
 $(b)%.pdf: $(d)%.tex
 	mkdir -p $(@D)
 	mkdir -p $(@D)
-	TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS) $^
+	$(LATEX) $^
+	@while grep $(REF_WARNING) $(@:.pdf=.log) > /dev/null; do \
+		echo "** Rerunning pdflatex for cross-references **"; \
+		$(LATEX) $^; \
+	done
 
 
 $(b)$(REPORT).pdf: $(b)$(SCHEME).pdf
 $(b)$(REPORT).pdf: $(b)$(SCHEME).pdf
 
 
@@ -19,5 +27,5 @@ $(b)$(SCHEME).pdf: $(d)$(SCHEME).tex
 
 
 $(b)$(REPORT).bbl: $(d)$(REPORT).bib
 $(b)$(REPORT).bbl: $(d)$(REPORT).bib
 	BIBINPUTS=$(d) bibtex8 ${@:.bbl=.aux}
 	BIBINPUTS=$(d) bibtex8 ${@:.bbl=.aux}
-	TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS) $(d)$(REPORT).tex
-	TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS) $(d)$(REPORT).tex
+	$(LATEX) $(d)$(REPORT).tex
+	$(LATEX) $(d)$(REPORT).tex