NAME
GraphViz::Makefile - Create Makefile graphs using GraphViz
SYNOPSIS
Output to a .png file:
use GraphViz::Makefile;
my $gm = GraphViz::Makefile->new(undef, "Makefile");
my $g = GraphViz2->new(global => {combine_node_and_port => 0, directed => 1});
$g->from_graph(GraphViz::Makefile::graphvizify($gm->generate_graph));
$g->run(format => "png", output_file => "makefile.png");
To output to a .ps file, just replace png
with ps
in the filename and method above.
Or, using the deprecated mutation style:
use GraphViz::Makefile;
my $gm = GraphViz::Makefile->new(undef, "Makefile");
$gm->generate;
$gm->GraphViz->run(format => "png", output_file => "makefile.png");
DESCRIPTION
GraphViz::Makefile uses the GraphViz2 and Make modules to visualize Makefile dependencies.
METHODS
- new($graphviz, $makefile, $prefix, %args)
-
Create a
GraphViz::Makefile
object. The first argument should be aGraphViz2
object orundef
. The second argument should be aMake
object, the filename of a Makefile, orundef
. In the latter case, the default Makefile is used. The third argument$prefix
is optional and can be used to prepend a prefix to all rule names in the graph output.The created nodes are named
$prefix$name
.Further arguments (specified as key-value pairs): none at present.
- generate
-
Generate the graph. Mutates the internal
GraphViz2
object. - generate_graph
-
my $gm = GraphViz::Makefile->new(undef, "Makefile"); my $graph = $gm->generate_graph; $gv->from_graph(GraphViz::Makefile::graphvizify($graph)); $gv->run(format => "png", output_file => "makefile.png");
Return a Graph object representing this Makefile.
- GraphViz
-
Return a reference to the
GraphViz2
object. This object will be used for the output methods. Will only be created if used. It is recommended to instead use thegenerate_graph
method and make the calls on an externally-controlled GraphViz2 object. - Make
-
Return a reference to the
Make
object.
FUNCTIONS
graphviz_escape
Turn characters in the given string, that are considered special by GraphViz, into escaped versions so that they will appear literally as given in the visualisation.
graphvizify
my $gv_graph = GraphViz::Makefile::graphvizify($make_graph);
Given a Graph object representing a makefile, creates a new object to visualise it using "from_graph" in GraphViz2.
ALTERNATIVES
There's another module doing the same thing: Makefile::GraphViz.
AUTHOR
Slaven Rezic <srezic@cpan.org>
COPYRIGHT
Copyright (c) 2002,2003,2005,2008,2013 Slaven Rezic. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.