Change how pdf doc's are created

 Currently the pdf docs are done with
    sgml -> sgmltool -> tex -> latex -> dvi -> dvips -> ps -> ps2pdf -> pdf
 or
    tex -> latex -> dvi -> dvips -> ps -> ps2pdf -> pdf
 with this patch we do
    sgml -> sgmltool -> tex -> pdflatex -> pdf
 or
    tex -> pdflatex -> pdf
diff --git a/doc/Makefile b/doc/Makefile
index 1df6081..b92957e 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -6,7 +6,7 @@
 
 LATEX=latex
 DVIPS=dvips
-SGML2DVI=sgml2latex --output=dvi
+SGML2DVI=sgml2latex
 SGML2HTML=sgml2html -s 0
 LPR=lpr -Zsduplex
 SHELL=bash
@@ -31,8 +31,11 @@
 print: $(PSFILES)
 	$(LPR) $(PSFILES)
 
+%.tex: %.sgml
+	$(SGML2DVI) --output=tex $<
+
 %.dvi: %.sgml
-	$(SGML2DVI) $<
+	$(SGML2DVI) --output=dvi $<
 
 %.dvi: %.tex
 	@set -e; pass=2; echo "Running LaTeX $<"; \
@@ -44,10 +47,17 @@
 		echo "Re-running LaTeX $<, $${pass}d pass"; pass=$$[$$pass + 1]; \
 	done
 
-#%.pdf: %.tex
-#	pdflatex $<
-%.pdf: %.ps
-	ps2pdf $<
+%.pdf: %.tex
+	@set -e; pass=2; echo "Running pdfLaTeX $<"; \
+	while [ `pdflatex $< </dev/null 2>&1 | \
+		 grep -c '^\(LaTeX Warning: Label(s) may\|No file \|! Emergency stop\)'` -ge 1 ]; do \
+		if [ $$pass -gt 3 ]; then \
+			echo "Seems, something is wrong. Try by hands." ; exit 1 ; \
+		fi; \
+		echo "Re-running pdfLaTeX $<, $${pass}d pass"; pass=$$[$$pass + 1]; \
+	done
+#%.pdf: %.ps
+#	ps2pdf $<
 
 %.ps: %.dvi
 	$(DVIPS) $< -o $@