Slaven Rezić

NAME

GraphViz::Makefile - Create Makefile graphs using GraphViz

SYNOPSIS

Output to a .png file:

    use GraphViz::Makefile;
    my $gm = GraphViz::Makefile->new(undef, "Makefile");
    $gm->generate("all"); # or another makefile target
    open my $ofh, ">", "makefile.png" or die $!;
    binmode $ofh;
    print $ofh $gm->GraphViz->as_png;

Output to a .ps file:

    use GraphViz::Makefile;
    my $gm = GraphViz::Makefile->new(undef, "Makefile");
    $gm->generate("all"); # or another makefile target
    open my $ofh, ">", "makefile.ps" or die $!;
    binmode $ofh;
    print $ofh $gm->GraphViz->as_ps;

DESCRIPTION

GraphViz::Makefile uses the GraphViz and Make modules to visualize Makefile dependencies.

METHODS

new($graphviz, $makefile, $prefix, %args)

Create a GraphViz::Makefile object. The first argument should be a GraphViz object or undef. In the latter case, a new GraphViz object is created by the constructor. The second argument should be a Make object, the filename of a Makefile, or undef. 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.

Further arguments (specified as key-value pairs):

reversed => 1

Point arrows in the direction of dependencies. If not set, then the arrows point in the direction of "build flow".

generate($rule)

Generate the graph, beginning at the named Makefile rule. If $rule is not given, all is used instead.

GraphViz

Return a reference to the GraphViz object. This object can be used for the output methods.

Make

Return a reference to the Make object.

MEMBERS

For backward compatibility, the following members in the hash-based GraphViz::Makefile object may be used instead of the methods:

  • GraphViz

  • Make

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.

SEE ALSO

GraphViz, Make, make(1), tkgvizmakefile.




Hosting generously
sponsored by Bytemark