package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; our $VERSION = '6.68'; 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 |
|
|
ParseXS | Folder | 0755 |
|
|
Typemaps | Folder | 0755 |
|
|
Liblist.pm | File | 9.47 KB | 0644 |
|
MANIFEST.SKIP | File | 824 B | 0644 |
|
MM.pm | File | 2.06 KB | 0644 |
|
MM_AIX.pm | File | 1.53 KB | 0644 |
|
MM_Any.pm | File | 68.58 KB | 0644 |
|
MM_BeOS.pm | File | 982 B | 0644 |
|
MM_Cygwin.pm | File | 3.04 KB | 0644 |
|
MM_DOS.pm | File | 950 B | 0644 |
|
MM_Darwin.pm | File | 918 B | 0644 |
|
MM_MacOS.pm | File | 1.08 KB | 0644 |
|
MM_NW5.pm | File | 6.41 KB | 0644 |
|
MM_OS2.pm | File | 3.75 KB | 0644 |
|
MM_QNX.pm | File | 868 B | 0644 |
|
MM_UWIN.pm | File | 955 B | 0644 |
|
MM_Unix.pm | File | 91.82 KB | 0644 |
|
MM_VMS.pm | File | 59.65 KB | 0644 |
|
MM_VOS.pm | File | 723 B | 0644 |
|
MM_Win32.pm | File | 13.85 KB | 0644 |
|
MM_Win95.pm | File | 1.87 KB | 0644 |
|
MY.pm | File | 652 B | 0644 |
|
MakeMaker.pm | File | 91.59 KB | 0644 |
|
Manifest.pm | File | 22.52 KB | 0644 |
|
Mkbootstrap.pm | File | 3.11 KB | 0644 |
|
Mksymlists.pm | File | 10.5 KB | 0644 |
|
ParseXS.pm | File | 60.01 KB | 0644 |
|
ParseXS.pod | File | 3.74 KB | 0644 |
|
Typemaps.pm | File | 24.81 KB | 0644 |
|
testlib.pm | File | 891 B | 0644 |
|
xsubpp | File | 4.45 KB | 0755 |
|