Blame Makefile.PL

Packit 0965bd
use 5.006;
Packit 0965bd
use ExtUtils::MakeMaker qw(prompt WriteMakefile);
Packit 0965bd
use File::Copy 'copy';
Packit 0965bd
Packit 0965bd
my $libs = '';
Packit 0965bd
my $define = '';
Packit 0965bd
Packit 0965bd
for ($^O) {
Packit 0965bd
  if (/svr/) {
Packit 0965bd
    copy ('arch/sco.xs', 'MemInfo.xs');
Packit 0965bd
    print "Sys::MemInfo for UnixWare\n";
Packit 0965bd
  } elsif (/aix/) {
Packit 0965bd
    copy ('arch/aix.xs', 'MemInfo.xs');
Packit 0965bd
    $libs = '-lperfstat';
Packit 0965bd
    print "Sys::MemInfo for AIX\n";
Packit 0965bd
  } elsif (/linux/ or /cygwin/) {
Packit 0965bd
    copy ('arch/linux.xs', 'MemInfo.xs');
Packit 0965bd
    my $kver = `uname -r`;
Packit 0965bd
    die "Error extracting kernel version.\n" unless ($kver =~ /^(\d+)\.(\d+)(?:\.(\d+))?/);
Packit 0965bd
    if ($1<=2 && ($2<3 || ($2==3 && $3<17))) {
Packit 0965bd
      $define = '-DOLDKERNEL';
Packit 0965bd
      print "Sys::MemInfo for Linux 2.3.16 and lower\n";
Packit 0965bd
    } else {
Packit 0965bd
      print "Sys::MemInfo for Linux 2.3.17 and higher\n";
Packit 0965bd
    }
Packit 0965bd
  } elsif (/solaris/) {
Packit 0965bd
    copy ('arch/solaris.xs', 'MemInfo.xs');
Packit 0965bd
    print "Sys::MemInfo for Solaris\n";
Packit 0965bd
  } elsif (/freebsd/) {
Packit 0965bd
    copy ('arch/freebsd.xs', 'MemInfo.xs');
Packit 0965bd
    $kver = `uname -r`;
Packit 0965bd
    die "Error extracting kernel version.\n" unless ($kver =~ /^(\d+)\./);
Packit 0965bd
    if ($1>=5) {
Packit 0965bd
      $define = '-DFREEBSD5';
Packit 0965bd
      print "Sys::MemInfo for FreeBSD 5 and higher\n";
Packit 0965bd
    } else {
Packit 0965bd
      print "Sys::MemInfo for FreeBSD 4 and lower\n";
Packit 0965bd
    }
Packit 0965bd
  } elsif (/bsd/) {
Packit 0965bd
    copy ('arch/bsd.xs', 'MemInfo.xs');
Packit 0965bd
    if (/netbsd/) {
Packit 0965bd
      $define = '-DNETBSD';
Packit 0965bd
      print "Sys::MemInfo for NetBSD\n";
Packit 0965bd
    } else {
Packit 0965bd
      print "Sys::MemInfo for *BSD\n";
Packit 0965bd
    }
Packit 0965bd
  } elsif (/hpux/) {
Packit 0965bd
    copy ('arch/hpux.xs', 'MemInfo.xs');
Packit 0965bd
    $define ='-D_XOPEN_SOURCE_EXTENDED';
Packit 0965bd
    print "Sys::MemInfo for HPUX\n";
Packit 0965bd
  } elsif (/dec_osf/) {
Packit 0965bd
    copy ('arch/tru64.xs', 'MemInfo.xs');
Packit 0965bd
    $libs='-lmach';
Packit 0965bd
    print "Sys::MemInfo for Tru64\n";
Packit 0965bd
  } elsif (/MSWin32/) {
Packit 0965bd
    copy('arch/win32.xs', 'MemInfo.xs');
Packit 0965bd
    require Win32;	
Packit 0965bd
    my (undef, $version)= Win32::GetOSVersion() ;
Packit 0965bd
    if ($version && 5 <= $version) {
Packit 0965bd
      print "Sys::MemInfo for Windows 200X/XP/Vista and higher\n";
Packit 0965bd
    } else {
Packit 0965bd
      print "Sys::MemInfo for Windows 9X/ME/NT\n";
Packit 0965bd
      $define='-DOLDWIN';
Packit 0965bd
    }  
Packit 0965bd
  } elsif (/irix/) {
Packit 0965bd
    copy('arch/irix.xs', 'MemInfo.xs');
Packit 0965bd
    print "Sys::MemInfo for Irix\n";
Packit 0965bd
  } elsif (/darwin/) {
Packit 0965bd
    copy('arch/darwin.xs', 'MemInfo.xs');
Packit 0965bd
    print "Sys::MemInfo for MacOS X Darwin\n";
Packit 0965bd
  } else {
Packit 0965bd
    die "unsupported OS: $_\n";
Packit 0965bd
  }
Packit 0965bd
}
Packit 0965bd
Packit 0965bd
Packit 0965bd
WriteMakefile(
Packit 0965bd
  'NAME'         => 'Sys::MemInfo',
Packit 0965bd
  'VERSION_FROM' => 'MemInfo.pm', # finds $VERSION
Packit 0965bd
  'DEFINE'       => $define,
Packit 0965bd
  'NORECURS'     => 1,
Packit 0965bd
  'XSOPT'        => '-noprototypes',
Packit 0965bd
  'XS'           => { 'MemInfo.xs'  => 'MemInfo.c', },
Packit 0965bd
  clean => { 'FILES' => 'MemInfo.xs', },
Packit 0965bd
  'LIBS'         => $libs,
Packit 0965bd
Packit 0965bd
  ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
Packit 0965bd
    (ABSTRACT_FROM => 'MemInfo.pm', # retrieve abstract from module
Packit 0965bd
    'AUTHOR'       => 'Sylvain CRESTO <scresto@gmail.com>') : ()),
Packit 0965bd
);
Packit 0965bd
Packit 0965bd
# vim:et:ts=2:sts=2:sw=2