1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
package main;
require 5.008000;
use strict;
use warnings;
use ExtUtils::MakeMaker qw( WriteMakefile );
use File::Spec;
use Getopt::Long;
my $live = 0;
my $local = 1;
GetOptions(
'live!' => \$live,
'local!' => \$local,
'all' => sub { print "All tests are on by default. This option is deprecated.\n" },
'mech-dump!' => sub { print "mech-dump is always installed now. This option is deprecated.\n" },
) or exit 1;
my @tests = glob File::Spec->catfile( 't', '*.t' );
push( @tests, glob File::Spec->catfile( 't', 'local', '*.t' ) ) if $local;
push( @tests, glob File::Spec->catfile( 't', 'live', '*.t' ) ) if $live;
push( @tests, glob File::Spec->catfile( 't', 'mech-dump', '*.t' ) );
my $parms = {
NAME => 'WWW::Mechanize',
VERSION_FROM => 'lib/WWW/Mechanize.pm', # finds $VERSION
ABSTRACT_FROM => 'lib/WWW/Mechanize.pm', # retrieve abstract from module
AUTHOR => 'Jesse Vincent <jesse@bestpractical.com>',
EXE_FILES => [ 'bin/mech-dump' ],
PREREQ_PM => {
'Carp' => 0,
'File::Temp' => 0,
'FindBin' => 0,
'Getopt::Long' => 0,
'HTML::Form' => 6.00,
'HTML::HeadParser' => 0,
'HTML::Parser' => 3.33,
'HTML::TokeParser' => 2.28,
'HTML::TreeBuilder' => 0,
'HTTP::Daemon' => 0,
'HTTP::Request' => 1.30,
'HTTP::Server::Simple' => 0.35,
'HTTP::Server::Simple::CGI' => 0,
'HTTP::Status' => 0,
'LWP' => 5.829,
'LWP::UserAgent' => 5.829,
'Pod::Usage' => 0,
'Test::More' => 0.34,
'Test::Warn' => 0.11,
'URI' => 1.36,
'URI::URL' => 0,
'URI::file' => 0,
},
test => { TESTS => join( ' ', @tests ) },
clean => { FILES => 'WWW-Mechanize-*' },
};
if ( $^O !~ /Win32/ ) {
}
if ( $ExtUtils::MakeMaker::VERSION ge '6.45_01' ) {
$parms->{META_MERGE} = {
resources => {
license => 'http://dev.perl.org/licenses/',
homepage => 'https://github.com/bestpractical/www-mechanize',
bugtracker => 'http://code.google.com/p/www-mechanize/issues/list',
Repository => 'https://github.com/bestpractical/www-mechanize',
MailingList => 'http://groups.google.com/group/www-mechanize-users',
}
};
$parms->{LICENSE} = 'perl';
}
if ( $ExtUtils::MakeMaker::VERSION ge '6.47_02' ) {
$parms->{MIN_PERL_VERSION} = 5.008;
}
eval { require LWP; };
if (!$@) {
if ( ! LWP::Protocol::implementor('https') ) {
print <<EOT;
It looks like you don't have SSL capability (like IO::Socket::SSL) installed.
You will not be able to process https:// URLs correctly.
EOT
}
}
my @missing;
my @nice = qw( Test::Pod Test::Memory::Cycle Test::Warn Test::Taint );
for my $nice ( @nice ) {
eval "require $nice";
push( @missing, $nice ) if $@;
}
if ( @missing ) {
@missing = map { "\t$_\n" } @missing;
print <<EOT;
WWW::Mechanize likes to have a lot of test modules for some of its tests.
The following are modules that would be nice to have, but not required.
@missing
EOT
}
WriteMakefile( %$parms );
sub MY::postamble {
return <<'MAKE_FRAG';
.PHONY: tags critic
tags:
ctags -f tags --recurse --totals \
--exclude=blib \
--exclude=.svn \
--exclude='*~' \
--languages=Perl --langmap=Perl:+.t \
critic:
perlcritic -1 -q -profile perlcriticrc bin/ lib/ t/
MAKE_FRAG
}
1;
|