--- /dev/null
+.PHONY: gv-clean gv-distclean
+
+DOT := dot
+DOTFLAG :=
+PSTOPDF := pstopdf
+
+%.pdf: %.ps
+ $(PSTOPDF) $<
+
+%.ps: %.gv
+ $(DOT) $(DOTFLAG) -Tps $< -o $@
+
+%.png: %.gv
+ $(DOT) $(DOTFLAG) -Tpng $< -o $@
+
+%.svg: %.svg.gv
+ $(DOT) $(DOTFLAG) -Tsvg $< -o $@
+
+gv-clean:
+
+gv-distclean: gv-clean
+ $(RM) $(subst .gv,.pdf,$(wildcard *.gv)) $(subst .gv,.png,$(wildcard *.gv)) $(subst .gv,.svg,$(wildcard *.gv)) $(subst .gv,.ps,$(wildcard *.gv))