2005-04-02 Paul Jakma <paul@dishone.st>

	* fig{-{normal,rs}-processing,_topologies_{rs,full}}.dia: new
          files, dia diagramme XML versions of the original corresponding
          EPS encapsulated bitmaps.
	* fig{-{normal,rs}-processing,_topologies_{rs,full}}.png: new
	  files, png exports by dia of the source dia diagrammes above.
	* fig{-{normal,rs}-processing,_topologies_{rs,full}}.eps: removed,
	  replaced by above dia source.
	* routeserver.texi: remove extension in image macros.
	* quagga.info: updated build
	* Makefile.am: Add rules to build eps (using 'convert'), png (using
	  dia). Add figures_BUILT_SOURCES to extra_dist to avoid the
	  dependency on dia :) (amongst other things) for dist users.
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 5322aa8..3f32789 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,29 +1,47 @@
 ## Process this file with automake to produce Makefile.in.
 
+# Dia, the version i have at least, doesn't do very good EPS output
+# (some of the text is scaled strangely). So this will work, but 
+# it is probably better to use something like gimp to convert the 
+# dia exported PNG files to EPS manually.
+#
+# Here we use 'convert' from the well known 'ImageMagick' package
+# to do conversion from png to eps.
+#
+# PDF is required for quagga.pdf, we use epstopdf from the well known TeTeX
+# TeX implementation, which we depend on already anyway.
+#
+# dia -> (dia) -> png -> (convert) -> eps -> (epstopdf) -> pdf
+DIATOPNG = dia -t png -e
+DIATOEPS = dia -t eps -e
+PNGTOEPS = convert
 EPSTOPDF = epstopdf
 
-# rather twisted logic because we have to build PDFs of the EPS figures
-# and yet build one PDF, quagga.pdf, from texi source. Which means we cant
-# rely on a single automatic rule for *.pdf.
-# If you are an automake wizard, please feel free to compact it somehow.
-#figures_pdfs = Normal-Announcement-processing.eps \
-#	       RS-Announcement-processing.eps \
-#	       topologias_full.eps topologias_rs.eps 
+# The figure sources
+figures_names_parts = -normal-processing -rs-processing \
+	_topologies_full _topologies_rs
+figures_SOURCES := $(figures_names_parts:%=fig%.dia)
+figures_BUILT_SOURCES := $(figures_names_parts:%=fig%.png) \
+			 $(figures_names_parts:%=fig%.eps) \
+			 $(figures_names_parts:%=fig%.pdf)
+
+# rather twisted logic because we have to build PDFs of the EPS figures for
+# PDFTex and yet build one PDF, quagga.pdf, from texi source. Which means we
+# cant rely on a single automatic rule for *.pdf, eg the one automatically
+# provided by automake. If you are an automake wizard, please feel free to
+# compact it somehow.
 
 # Built from defines.texi.in
 BUILT_SOURCES = defines.texi
 
 info_TEXINFOS = quagga.texi
 
-CLEANFILES = *.pdf
+# i'd prefer to have this in CVS, but not nice for dist tarball users,
+# as these are all built sources, with various build dependencies (eg dia)
+#CLEANFILES = *.pdf *.eps *.png
 
-# The figure sources
-figures_SOURCES = fig-normal-processing.eps \
-		  fig_topologies_full.eps \
-		  fig-rs-processing.eps \
-		  fig_topologies_rs.eps
-
-# Have to manually 		  
+# Have to manually specify the quagga.pdf rule in order to allow
+# us to have a generic automatic .pdf rule to build the figure sources
 quagga.pdf: quagga.texi \
             fig-normal-processing.pdf fig_topologies_full.pdf \
 	    fig-rs-processing.pdf fig_topologies_rs.pdf
@@ -34,14 +52,20 @@
 	protocol.texi ripd.texi ripngd.texi routemap.texi snmp.texi \
 	vtysh.texi routeserver.texi defines.texi $(figures_SOURCES)
 
+%.eps: %.png
+	$(PNGTOEPS) $< "$@"
+
 %.pdf: %.eps
 	$(EPSTOPDF) --outfile="$@" $<
 
+%.png: %.dia
+	$(DIATOPNG) "$@" $<
+
 man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 isisd.8
 
 EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS) \
 	mpls/ChangeLog.opaque.txt mpls/cli_summary.txt \
-	mpls/opaque_lsa.txt mpls/ospfd.conf
+	mpls/opaque_lsa.txt mpls/ospfd.conf $(figures_BUILT_SOURCES)
 
 draft-zebra-00.txt:
 	groff -T ascii -ms draft-zebra-00.ms > draft-zebra-00.txt