UPDATE: as of ocaml 3.05, the functionality of ocamldot is now built into the ocamldoc tool that comes with the standard ocaml distribution.
Ocamldot generates program dependency graphs for ocaml programs. Here's an example:

dependency graph

The dependency graph output by ocamldot can be rendered by a separate program, dot. Dot is freely available from http://www.research.att.com/sw/tools/graphviz/.

Ocamldot is designed to process the output of ocamldep. A typical use would be

ocamldep *.ml | ocamldot > dep.dot


ocamldep *.ml > .depend
ocamldot .depend > dep.dot

This will output a dot graph into the file dep.dot. You can then use the program dotty to view, edit, and print the graph.

Ocamldot has the following options:

draw the full graph (default is to draw only the kernel)
output in landscape format (default is portrait)
draw graph from left to right (default is top to bottom)
-r <r>
use <r> as a root in the graph; nodes reachable from <r> will be shown

(The transitive kernel of a dag is the smallest subset of the dag whose transitive closure is the same as the transitive closure of the dag. For example, the kernel of A->B, A->C, B->C is just the two edges A->B, B->C.)

Download ocamldot.tar