For what is worth, here is the snippet of code I use to generate my dependency graphs:
( echo "digraph interval_deps {" ;
echo "node [shape=ellipse, style=filled, URL=\"html/Interval.\N.html\", color=black];";
( cd src; coqdep -R . Interval $VFILES ) |
sed -n -e 's,/,.,g;s/[.]vo.*: [^ ]*[.]v//p' |
while read src dst; do
color=$(echo "$src" | sed -e 's,Real.*,turquoise,;s,Interval[.].*,plum,;s,Integral.*,lightcoral,;s,Poly.*,yellow,;s,Float.*,cornflowerblue,;s,Eval.*,green,;s,[A-Z].*,white,')
echo "\"$src\" [fillcolor=$color];"
for d in $dst; do
echo "\"$src\" -> \"${d%.vo}\" ;"
done
done;
echo "}" ) | tred > deps.dot
dot -T png deps.dot > deps.png
dot -T cmap deps.dot | sed -e 's,>$,/>,' > deps.map
This produces two files deps.png
and deps.map
which can then be embedded into a webpage. The specific parts in the script above are the src
physical path and the Interval
logical path, as well as the color
line, which is used to split the library into various sublibraries. This gives the following graph: CoqInterval. The same kind of script is used for Flocq and Coquelicot