forked from miyagawa/cpanminus
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile.PL
56 lines (44 loc) · 1.67 KB
/
Makefile.PL
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
=for developers
If you're a developer, Makefile.PL will pack `cpanm` from
script/cpanm.PL and then copy that file to `bin/cpanm`.
You can pretend to be an author by running it with:
perl Makefile.PL --author
You should install local::lib, Parse::CPAN::Meta, Module::Metadata,
App::FatPacker and HTTP::Lite before doing so.
Module::Metadata is not available on CPAN as of this writing, get it
from:
git://git.shadowcat.co.uk/p5sagit/Module-Metadata.git
Do not commit the changes to `cpanm` standalone executable. We only
commit changes to this file whenever we tag a new CPAN release.
=cut
my $author = ((grep{ $_ eq '--author' } @ARGV) or -d '.git' && `git remote -v` =~ /git\@github/);
print STDERR "Running as an author mode!\n" if $author;
# Author: perl Makefile.PL packs 'script/cpanm.PL' -> 'cpanm'
if ($author) {
shift @ARGV;
system $^X, "script/build.PL" and die $?;
}
# perl Makefile.PL (from git repo) copies 'cpanm' -> 'bin/cpanm'
if (-e 'cpanm') {
print STDERR "Generating bin/cpanm from cpanm\n";
open my $in, "<cpanm" or die $!;
open my $out, ">bin/cpanm" or die $!;
while (<$in>) {
s|^#!/usr/bin/env perl|#!perl|; # so MakeMaker can fix it
print $out $_
}
}
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'App::cpanminus',
VERSION_FROM => "lib/App/cpanminus.pm",
ABSTRACT => 'Get, unpack, build and install modules from CPAN.',
PREREQ_PM => {
'Module::Build' => 0.36,
'ExtUtils::MakeMaker' => 6.31,
'ExtUtils::Install' => 1.46,
($ENV{PERL5_CPAN_IS_RUNNING} || $ENV{PERL5_CPANPLUS_IS_RUNNING}) ? (LWP => 5.828) : (),
},
LICENSE => 'perl',
EXE_FILES => [ 'bin/cpanm' ],
);