1use ExtUtils::MakeMaker; 2 3my $mm_ver = $ExtUtils::MakeMaker::VERSION; 4if ($mm_ver =~ /_/) { # dev version 5 $mm_ver = eval $mm_ver; 6 die $@ if $@; 7} 8 9my @REQUIRES = ( 10 'strict' => 0, 11 'warnings' => 0, 12 'Exporter' => 0, 13 'vars' => 0, 14 'Carp' => 0, 15); 16 17my @TEST_REQUIRES = ( 18 'Test::More' => 0.88, 19); 20 21push(@REQUIRES, @TEST_REQUIRES) if $mm_ver < 6.64; 22 23warn "Carp::Assert likes to have B::Deparse but can't find it.\n" unless 24 eval { require B::Deparse }; 25 26WriteMakefile( 27 NAME => 'Carp::Assert', 28 VERSION_FROM => 'lib/Carp/Assert.pm', # finds $VERSION 29 PREREQ_PM => { @REQUIRES }, 30 'dist' => {COMPRESS => 'gzip -9', 31 SUFFIX => '.gz', 32 DIST_DEFAULT => 'all tardist', 33 }, 34 35 ($mm_ver >= 6.64 36 ? (TEST_REQUIRES => { @TEST_REQUIRES }) 37 : () 38 ), 39 40 ($mm_ver >= 6.31 ? (LICENSE => 'perl') : ()), 41 42 ($mm_ver >= 6.48 43 ? (MIN_PERL_VERSION => 5.006) 44 : () 45 ), 46 47 ($mm_ver <= 6.45 ? () : (META_MERGE => { 48 'meta-spec' => { version => 2 }, 49 resources => { 50 repository => { 51 type => 'git', 52 web => 'https://github.com/schwern/Carp-Assert', 53 url => 'git://github.com/schwern/Carp-Assert.git', 54 }, 55 }, 56 })), 57 58); 59 60{ 61 package MY; 62 sub top_targets { 63 my($self) = @_; 64 65 return $self->SUPER::top_targets(@_) unless 66 eval { require Pod::Tests; 1 }; 67 68 my $out = "POD2TEST_EXE = pod2test\n"; 69 70 $out .= $self->SUPER::top_targets(@_); 71 $out =~ s/^(pure_all\b.*)/$1 testifypods/m; 72 73 foreach my $pod (keys %{$self->{MAN1PODS}}, 74 keys %{$self->{MAN3PODS}}) 75 { 76 (my $test = $pod) =~ s/\.(pm|pod)$//; 77 $test =~ s/^lib\W//; 78 $test =~ s/\W/-/; 79 $test = "t/embedded-$test.t"; 80 81 $pod2test{$pod} = $test; 82 } 83 84 $out .= <<"END_OF_MAKE"; 85 86testifypods : @{[ join " ", values %pod2test ]} 87\t\$(NOECHO) \$(NOOP) 88 89END_OF_MAKE 90 91 for my $pod (keys %pod2test) { 92 my $test = $pod2test{$pod}; 93 94 $out .= <<"END_OF_MAKE"; 95$test : $pod 96\t\$(NOECHO) \$(ECHO) Testifying $pod to $test 97\t\$(NOECHO) \$(POD2TEST_EXE) $pod $test 98 99END_OF_MAKE 100 } 101 102 return $out; 103 } 104 105 106 sub test_via_harness { 107 my($self, $orig_perl, $tests) = @_; 108 109 my @perls = ($orig_perl); 110 push @perls, qw(bleadperl 111 perl5.6.1 112 perl5.005_03 113 perl5.004_05 114 perl5.004_04 115 perl5.004 116 ) 117 if $ENV{PERL_TEST_ALL}; 118 119 my $out; 120 foreach my $perl (@perls) { 121 $out .= $self->SUPER::test_via_harness($perl, $tests); 122 } 123 124 return $out; 125 } 126} 127