line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
use strict; |
3
|
52
|
|
|
52
|
|
420710
|
use warnings; |
|
52
|
|
|
|
|
279
|
|
|
52
|
|
|
|
|
1302
|
|
4
|
52
|
|
|
52
|
|
234
|
use ExtUtils::MakeMaker::Config; |
|
52
|
|
|
|
|
84
|
|
|
52
|
|
|
|
|
1346
|
|
5
|
52
|
|
|
52
|
|
9141
|
|
|
52
|
|
|
|
|
120
|
|
|
52
|
|
|
|
|
435
|
|
6
|
|
|
|
|
|
|
our $VERSION = '7.64'; |
7
|
|
|
|
|
|
|
$VERSION =~ tr/_//d; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
require ExtUtils::Liblist; |
10
|
|
|
|
|
|
|
require ExtUtils::MakeMaker; |
11
|
|
|
|
|
|
|
our @ISA = qw(ExtUtils::Liblist ExtUtils::MakeMaker); |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
=head1 NAME |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
=head1 SYNOPSIS |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
require ExtUtils::MM; |
20
|
|
|
|
|
|
|
my $mm = MM->new(...); |
21
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
=head1 DESCRIPTION |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
B<FOR INTERNAL USE ONLY> |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
ExtUtils::MM is a subclass of L<ExtUtils::MakeMaker> which automatically |
27
|
|
|
|
|
|
|
chooses the appropriate OS specific subclass for you |
28
|
|
|
|
|
|
|
(ie. L<ExtUtils::MM_Unix>, etc...). |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
It also provides a convenient alias via the MM class (I didn't want |
31
|
|
|
|
|
|
|
MakeMaker modules outside of ExtUtils/). |
32
|
|
|
|
|
|
|
|
33
|
|
|
|
|
|
|
This class might turn out to be a temporary solution, but MM won't go |
34
|
|
|
|
|
|
|
away. |
35
|
|
|
|
|
|
|
|
36
|
|
|
|
|
|
|
=cut |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
{ |
39
|
|
|
|
|
|
|
# Convenient alias. |
40
|
|
|
|
|
|
|
our @ISA = qw(ExtUtils::MM); |
41
|
|
|
|
|
|
|
|
42
|
|
|
|
|
|
|
# miniperl might not have the Win32 functions available and we need |
43
|
|
|
|
0
|
|
|
# to run in miniperl. |
44
|
|
|
|
|
|
|
my $have_win32 = eval { require Win32 }; |
45
|
|
|
|
|
|
|
return $have_win32 && defined &Win32::IsWin95 ? Win32::IsWin95() |
46
|
|
|
|
|
|
|
: ! defined $ENV{SYSTEMROOT}; |
47
|
|
|
|
|
|
|
} |
48
|
|
|
|
|
|
|
|
49
|
0
|
|
|
0
|
|
0
|
my %Is = (); |
|
0
|
|
|
|
|
0
|
|
50
|
|
|
|
|
|
|
$Is{VMS} = $^O eq 'VMS'; |
51
|
0
|
0
|
0
|
|
|
0
|
$Is{OS2} = $^O eq 'os2'; |
52
|
|
|
|
|
|
|
$Is{MacOS} = $^O eq 'MacOS'; |
53
|
|
|
|
|
|
|
if( $^O eq 'MSWin32' ) { |
54
|
|
|
|
|
|
|
_is_win95() ? $Is{Win95} = 1 : $Is{Win32} = 1; |
55
|
|
|
|
|
|
|
} |
56
|
|
|
|
|
|
|
$Is{UWIN} = $^O =~ /^uwin(-nt)?$/; |
57
|
|
|
|
|
|
|
$Is{Cygwin} = $^O eq 'cygwin'; |
58
|
|
|
|
|
|
|
$Is{NW5} = $Config{osname} eq 'NetWare'; # intentional |
59
|
|
|
|
|
|
|
$Is{BeOS} = ($^O =~ /beos/i or $^O eq 'haiku'); |
60
|
|
|
|
|
|
|
$Is{DOS} = $^O eq 'dos'; |
61
|
|
|
|
|
|
|
if( $Is{NW5} ) { |
62
|
|
|
|
|
|
|
$^O = 'NetWare'; |
63
|
|
|
|
|
|
|
delete $Is{Win32}; |
64
|
|
|
|
|
|
|
} |
65
|
|
|
|
|
|
|
$Is{VOS} = $^O eq 'vos'; |
66
|
|
|
|
|
|
|
$Is{QNX} = $^O eq 'qnx'; |
67
|
|
|
|
|
|
|
$Is{AIX} = $^O eq 'aix'; |
68
|
|
|
|
|
|
|
$Is{Darwin} = $^O eq 'darwin'; |
69
|
|
|
|
|
|
|
$Is{OS390} = $^O eq 'os390'; |
70
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
$Is{Unix} = !grep { $_ } values %Is; |
72
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
map { delete $Is{$_} unless $Is{$_} } keys %Is; |
74
|
|
|
|
|
|
|
_assert( keys %Is == 1 ); |
75
|
|
|
|
|
|
|
my($OS) = keys %Is; |
76
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
|
78
|
|
|
|
|
|
|
my $class = "ExtUtils::MM_$OS"; |
79
|
|
|
|
|
|
|
eval "require $class" unless $INC{"ExtUtils/MM_$OS.pm"}; ## no critic |
80
|
|
|
|
|
|
|
die $@ if $@; |
81
|
|
|
|
|
|
|
unshift @ISA, $class; |
82
|
|
|
|
|
|
|
|
83
|
|
|
|
|
|
|
|
84
|
|
|
|
|
|
|
my $sanity = shift; |
85
|
|
|
|
|
|
|
die sprintf "Assert failed at %s line %d\n", (caller)[1,2] unless $sanity; |
86
|
|
|
|
|
|
|
return; |
87
|
|
|
|
|
|
|
} |