diff options
Diffstat (limited to 'Makefile.PL')
-rw-r--r-- | Makefile.PL | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..4578ac2 --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,144 @@ +use strict; +use ExtUtils::MakeMaker 6.17; + +my $EUMM = eval( $ExtUtils::MakeMaker::VERSION ); + +my $meta = { + "abstract" => "an exporter with the features of Sub::Exporter but only core dependencies", + "author" => ["Toby Inkster (TOBYINK) <tobyink\@cpan.org>"], + "dynamic_config" => 0, + "generated_by" => "Dist::Inkt::Profile::TOBYINK version 0.023, CPAN::Meta::Converter version 2.140640", + "keywords" => [], + "license" => ["perl_5"], + "meta-spec" => { + url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + version => 2, + }, + "name" => "Exporter-Tiny", + "no_index" => { directory => ["eg", "examples", "inc", "t", "xt"] }, + "prereqs" => { + configure => { requires => { "ExtUtils::MakeMaker" => 6.17 } }, + runtime => { requires => { perl => 5.006001 } }, + test => { + recommends => { "Test::Fatal" => 0, "Test::Warnings" => 0 }, + requires => { "Test::More" => 0.47 }, + }, + }, + "provides" => { + "Exporter::Shiny" => { file => "lib/Exporter/Shiny.pm", version => 0.042 }, + "Exporter::Tiny" => { file => "lib/Exporter/Tiny.pm", version => 0.042 }, + }, + "release_status" => "stable", + "resources" => { + bugtracker => { + web => "http://rt.cpan.org/Dist/Display.html?Queue=Exporter-Tiny", + }, + homepage => "https://metacpan.org/release/Exporter-Tiny", + license => ["http://dev.perl.org/licenses/"], + repository => { + type => "git", + url => "git://github.com/tobyink/p5-exporter-tiny.git", + web => "https://github.com/tobyink/p5-exporter-tiny", + }, + x_identifier => "http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/project", + x_IRC => "irc://irc.perl.org/#moops", + }, + "version" => 0.042, +}; + +my %dynamic_config; + +my %WriteMakefileArgs = ( + ABSTRACT => $meta->{abstract}, + AUTHOR => ($EUMM >= 6.5702 ? $meta->{author} : $meta->{author}[0]), + DISTNAME => $meta->{name}, + VERSION => $meta->{version}, + EXE_FILES => [ map $_->{file}, values %{ $meta->{x_provides_scripts} || {} } ], + NAME => do { my $n = $meta->{name}; $n =~ s/-/::/g; $n }, + test => { TESTS => "t/*.t" }, + %dynamic_config, +); + +$WriteMakefileArgs{LICENSE} = $meta->{license}[0] if $EUMM >= 6.3001; + +sub deps +{ + my %r; + for my $stage (@_) + { + for my $dep (keys %{$meta->{prereqs}{$stage}{requires}}) + { + next if $dep eq 'perl'; + my $ver = $meta->{prereqs}{$stage}{requires}{$dep}; + $r{$dep} = $ver if !exists($r{$dep}) || $ver >= $r{$dep}; + } + } + \%r; +} + +my ($build_requires, $configure_requires, $runtime_requires, $test_requires); +if ($EUMM >= 6.6303) +{ + $WriteMakefileArgs{BUILD_REQUIRES} ||= deps('build'); + $WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure'); + $WriteMakefileArgs{TEST_REQUIRES} ||= deps('test'); + $WriteMakefileArgs{PREREQ_PM} ||= deps('runtime'); +} +elsif ($EUMM >= 6.5503) +{ + $WriteMakefileArgs{BUILD_REQUIRES} ||= deps('build', 'test'); + $WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure'); + $WriteMakefileArgs{PREREQ_PM} ||= deps('runtime'); +} +elsif ($EUMM >= 6.52) +{ + $WriteMakefileArgs{CONFIGURE_REQUIRES} ||= deps('configure'); + $WriteMakefileArgs{PREREQ_PM} ||= deps('runtime', 'build', 'test'); +} +else +{ + $WriteMakefileArgs{PREREQ_PM} ||= deps('configure', 'build', 'test', 'runtime'); +} + +{ + my ($minperl) = reverse sort( + grep defined && /^[0-9]+(\.[0-9]+)?$/, + map $meta->{prereqs}{$_}{requires}{perl}, + qw( configure build runtime ) + ); + + if (defined($minperl)) + { + die "Installing $meta->{name} requires Perl >= $minperl" + unless $] >= $minperl; + + $WriteMakefileArgs{MIN_PERL_VERSION} ||= $minperl + if $EUMM >= 6.48; + } +} + +sub FixMakefile +{ + return unless -d 'inc'; + my $file = shift; + + local *MAKEFILE; + open MAKEFILE, "< $file" or die "FixMakefile: Couldn't open $file: $!; bailing out"; + my $makefile = do { local $/; <MAKEFILE> }; + close MAKEFILE or die $!; + + $makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /; + $makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g; + $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g; + $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m; + $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m; + + open MAKEFILE, "> $file" or die "FixMakefile: Couldn't open $file: $!; bailing out"; + print MAKEFILE $makefile or die $!; + close MAKEFILE or die $!; +} + +my $mm = WriteMakefile(%WriteMakefileArgs); +FixMakefile($mm->{FIRST_MAKEFILE} || 'Makefile'); +exit(0); + |