package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; our $VERSION = '7.36'; $VERSION =~ tr/_//d; require ExtUtils::Liblist; require ExtUtils::MakeMaker; our @ISA = qw(ExtUtils::Liblist ExtUtils::MakeMaker); =head1 NAME ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass =head1 SYNOPSIS require ExtUtils::MM; my $mm = MM->new(...); =head1 DESCRIPTION B<FOR INTERNAL USE ONLY> ExtUtils::MM is a subclass of ExtUtils::MakeMaker which automatically chooses the appropriate OS specific subclass for you (ie. ExtUils::MM_Unix, etc...). It also provides a convenient alias via the MM class (I didn't want MakeMaker modules outside of ExtUtils/). This class might turn out to be a temporary solution, but MM won't go away. =cut { # Convenient alias. package MM; our @ISA = qw(ExtUtils::MM); sub DESTROY {} } sub _is_win95 { # miniperl might not have the Win32 functions available and we need # to run in miniperl. my $have_win32 = eval { require Win32 }; return $have_win32 && defined &Win32::IsWin95 ? Win32::IsWin95() : ! defined $ENV{SYSTEMROOT}; } my %Is = (); $Is{VMS} = $^O eq 'VMS'; $Is{OS2} = $^O eq 'os2'; $Is{MacOS} = $^O eq 'MacOS'; if( $^O eq 'MSWin32' ) { _is_win95() ? $Is{Win95} = 1 : $Is{Win32} = 1; } $Is{UWIN} = $^O =~ /^uwin(-nt)?$/; $Is{Cygwin} = $^O eq 'cygwin'; $Is{NW5} = $Config{osname} eq 'NetWare'; # intentional $Is{BeOS} = ($^O =~ /beos/i or $^O eq 'haiku'); $Is{DOS} = $^O eq 'dos'; if( $Is{NW5} ) { $^O = 'NetWare'; delete $Is{Win32}; } $Is{VOS} = $^O eq 'vos'; $Is{QNX} = $^O eq 'qnx'; $Is{AIX} = $^O eq 'aix'; $Is{Darwin} = $^O eq 'darwin'; $Is{Unix} = !grep { $_ } values %Is; map { delete $Is{$_} unless $Is{$_} } keys %Is; _assert( keys %Is == 1 ); my($OS) = keys %Is; my $class = "ExtUtils::MM_$OS"; eval "require $class" unless $INC{"ExtUtils/MM_$OS.pm"}; ## no critic die $@ if $@; unshift @ISA, $class; sub _assert { my $sanity = shift; die sprintf "Assert failed at %s line %d\n", (caller)[1,2] unless $sanity; return; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Command | Folder | 0755 |
|
|
Liblist | Folder | 0755 |
|
|
MakeMaker | Folder | 0755 |
|
|
Command.pm | File | 7.61 KB | 0444 |
|
Install.pm | File | 39.63 KB | 0444 |
|
Installed.pm | File | 14.03 KB | 0444 |
|
Liblist.pm | File | 9.27 KB | 0444 |
|
MANIFEST.SKIP | File | 971 B | 0444 |
|
MM.pm | File | 2.08 KB | 0444 |
|
MM_AIX.pm | File | 1.44 KB | 0444 |
|
MM_Any.pm | File | 80.9 KB | 0444 |
|
MM_BeOS.pm | File | 1.02 KB | 0444 |
|
MM_Cygwin.pm | File | 3.99 KB | 0444 |
|
MM_DOS.pm | File | 1.02 KB | 0444 |
|
MM_Darwin.pm | File | 931 B | 0444 |
|
MM_MacOS.pm | File | 887 B | 0444 |
|
MM_NW5.pm | File | 5.33 KB | 0444 |
|
MM_OS2.pm | File | 3.14 KB | 0444 |
|
MM_QNX.pm | File | 889 B | 0444 |
|
MM_UWIN.pm | File | 976 B | 0444 |
|
MM_Unix.pm | File | 111.52 KB | 0444 |
|
MM_VMS.pm | File | 66.6 KB | 0444 |
|
MM_VOS.pm | File | 744 B | 0444 |
|
MM_Win32.pm | File | 14.32 KB | 0444 |
|
MM_Win95.pm | File | 1.25 KB | 0444 |
|
MY.pm | File | 673 B | 0444 |
|
MakeMaker.pm | File | 106.18 KB | 0444 |
|
Manifest.pm | File | 22.89 KB | 0444 |
|
Mkbootstrap.pm | File | 3.22 KB | 0444 |
|
Mksymlists.pm | File | 10.74 KB | 0444 |
|
Packlist.pm | File | 8.36 KB | 0444 |
|
testlib.pm | File | 911 B | 0444 |
|