use ExtUtils::MakeMaker;
my %modules =
(
'Mail::Header' => { min_version => "1.01" },
'Mail::Internet' => { min_version => "1.0203" },
'Mail::Field' => { min_version => "1.05" },
'MIME::Base64' => { min_version => "2.20",
rec_version => "3.03" },
'IO::Stringy' => { min_version => "1.211" },
'File::Spec' => { min_version => "0.6" },
'File::Path' => { min_version => "1" }
);
my($m, $foundit, $foundrec, @missing);
@missing = ();
foreach $m (sort keys %modules) {
$foundit = 0;
$foundrec = 0;
my $min_ver = $modules{$m}{min_version};
my $rec_ver = $modules{$m}{rec_version};
if (defined($rec_ver)) {
print "Checking for module $m (version $rec_ver)... ";
my $eval = "require $m; $m->VERSION >= $rec_ver;";
my $r = eval($eval);
if ($@ || !$r) {
print "not found.\n --- Fallback: ";
} else {
$foundit = 1;
$foundrec = 1;
print "ok.\n";
}
}
if (!$foundit) {
print "Checking for module $m (version $min_ver)... ";
my $eval = "require $m; $m->VERSION >= $min_ver;";
my $r = eval($eval);
if ($@ || !$r) {
print "not found.\n";
} else {
$foundit = 1;
print "ok.\n";
}
}
if (defined($rec_ver) and $foundit and !$foundrec) {
print "\n *** Warning: We can work with version $min_ver of $m, but\n *** we recommend that you upgrade to version $rec_ver.\n\n";
if ($m eq "MIME::Base64") {
print " *** Note that if you type 'make test', then tests\n *** 4, 5 and 7-11 of t/Misc.t may fail because of the old version\n *** of $m\n";
}
}
push @missing, "$m: At least version $min_ver" unless $foundit;
}
if ($ print "\n\n *** The following required modules are missing:\n";
foreach $m (@missing) {
print "$m\n";
}
print " *** Please install them before attempting to use MIME::Tools.\n";
}
WriteMakefile(
NAME => "MIME-tools",
VERSION_FROM => "lib/MIME/Tools.pm",
PREREQ_PM => {"Mail::Header" => 1.01,
"Mail::Internet" => 1.0203,
"Mail::Field" => 1.05,
"MIME::Base64" => 2.20,
"IO::Stringy" => 1.211,
"File::Spec" => 0.6,
"File::Path" => 1,
},
AUTHOR => 'Eryq <eryq@zeegee.com>, David F. Skoll <dfs@roaringpenguin.com>',
ABSTRACT => 'Tools to manipulate MIME messages',
'dist' => {
COMPRESS =>'gzip -f',
SUFFIX =>'gz',
},
);