use ExtUtils
::MakeMaker
::Config
;
use vars
qw(@ISA $VERSION);
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
@ISA = qw(ExtUtils::Liblist ExtUtils::MakeMaker);
ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass
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
$Is{MacOS
} = $^O
eq 'MacOS';
Win32
::IsWin95
() ?
$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; # XXX should this be that loose?
$Is{Unix
} = !grep { $_ } values %Is;
map { delete $Is{$_} unless $Is{$_} } keys %Is;
_assert
( keys %Is == 1 );
my $class = "ExtUtils::MM_$OS";
eval "require $class" unless $INC{"ExtUtils/MM_$OS.pm"};
die sprintf "Assert failed at %s line %d\n", (caller)[1,2] unless $sanity;