1use strict; use warnings;
2use ExtUtils::MakeMaker;
3
4require 5.006;
5
6my $mm_ver = $ExtUtils::MakeMaker::VERSION;
7if ($mm_ver =~ /_/) { # dev version
8    $mm_ver = eval $mm_ver;
9    die $@ if $@;
10}
11
12my %PREREQ_PM = (
13    'List::Util' => '1.45',
14    'Scalar::Util' => 0,
15    'Heap' => '0.80',
16    'Set::Object' => '1.40',
17);
18
19if ($] >= 5.008) {
20    $PREREQ_PM{'Storable'} = '2.05';
21    $PREREQ_PM{'Safe'	 } = 0,
22}
23
24my $repo = 'graphviz-perl/Graph';
25WriteMakefile(
26    NAME            => 'Graph',
27    VERSION_FROM    => 'lib/Graph.pm',
28    PREREQ_PM       => \%PREREQ_PM,
29    AUTHOR          => 'Jarkko Hietaniemi <jhi@iki.fi>',
30
31    ($mm_ver >= 6.31
32        ? (LICENSE => 'perl')
33        : ()
34    ),
35
36    ($mm_ver >= 6.48
37        ? (MIN_PERL_VERSION => 5.006)
38        : ()
39    ),
40
41    ($mm_ver <= 6.45
42        ? ()
43        : (META_MERGE => {
44            'meta-spec' => { version => 2 },
45            resources => {
46                bugtracker  => { web => "https://github.com/$repo/issues" },
47                repository  => {
48                    type => 'git',
49                    web  => "https://github.com/$repo",
50                    url  => "git://github.com/$repo.git",
51                },
52            },
53            prereqs => {
54                develop => {
55                    requires => {
56                        'Test::Pod::Coverage' => '1.00',
57                        'Test::Pod' => '1.00',
58                    },
59                },
60                test => {
61                    requires => {
62                        'Test::More'	=> '0.82', # explain
63                        'Math::Complex'	=> 0,
64                    },
65                    recommends => {
66                        'App::Prove' => '3.00', # prove -j4
67                    },
68                },
69            },
70        })
71    ),
72);
73
74# Some Debian distributions have a broken List::Util (see rt.cpan.org #9568)
75eval 'require Scalar::Util; import Scalar::Util qw(weaken)';
76if ($@) {
77    die <<__EOF__;
78$@
79You do not have Scalar::Util::weaken, cannot continue, aborting.
80__EOF__
81}
82