PageRenderTime 49ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/Unix-Statgrab-0.04/Makefile.PL

#
Perl | 75 lines | 73 code | 2 blank | 0 comment | 4 complexity | dee4bccc5fed4f39b9448b162c4bfdc7 MD5 | raw file
  1. use 5.00503;
  2. use ExtUtils::MakeMaker;
  3. use Config;
  4. sub have_libstatgrab {
  5. my $CC = $Config{cc};
  6. my %args = map { split /\s*=\s*/ } @ARGV;
  7. my $LIBS = $args{ LIBS } || "-lstatgrab";
  8. my $INC = $args{ INC };
  9. return 1 if system("$CC check.c $INC $LIBS 2>/dev/null") == 0;
  10. return 0;
  11. }
  12. if (! have_libstatgrab()) {
  13. die <<EOD;
  14. *******************************************
  15. Couldn't find libstatgrab (at least 0.12)
  16. which is required for this module.
  17. To obtain it, go to
  18. http://www.i-scream.org/libstatgrab/
  19. *******************************************
  20. EOD
  21. }
  22. WriteMakefile(
  23. NAME => 'Unix::Statgrab',
  24. VERSION_FROM => 'lib/Unix/Statgrab.pm', # finds $VERSION
  25. PREREQ_PM => {},
  26. ($] >= 5.005 ? ## Add these new keywords supported since 5.005
  27. (ABSTRACT_FROM => 'lib/Unix/Statgrab.pm', # retrieve abstract from module
  28. AUTHOR => 'Tassilo von Parseval <tassilo.von.parseval@rwth-aachen.de>') : ()),
  29. LIBS => ['-lstatgrab'],
  30. DEFINE => '',
  31. INC => '-I.',
  32. clean => { FILES => "a.out" },
  33. );
  34. if (eval {require ExtUtils::Constant; 1}) {
  35. # If you edit these definitions to change the constants used by this module,
  36. # you will need to use the generated const-c.inc and const-xs.inc
  37. # files to replace their "fallback" counterparts before distributing your
  38. # changes.
  39. my @names = (qw(SG_ERROR_ASPRINTF SG_ERROR_DEVSTAT_GETDEVS
  40. SG_ERROR_DEVSTAT_SELECTDEVS SG_ERROR_ENOENT
  41. SG_ERROR_GETIFADDRS SG_ERROR_GETMNTINFO SG_ERROR_GETPAGESIZE
  42. SG_ERROR_KSTAT_DATA_LOOKUP SG_ERROR_KSTAT_LOOKUP
  43. SG_ERROR_KSTAT_OPEN SG_ERROR_KSTAT_READ
  44. SG_ERROR_KVM_GETSWAPINFO SG_ERROR_KVM_OPENFILES
  45. SG_ERROR_MALLOC SG_ERROR_NONE SG_ERROR_OPEN SG_ERROR_OPENDIR
  46. SG_ERROR_PARSE SG_ERROR_SETEGID SG_ERROR_SETEUID
  47. SG_ERROR_SETMNTENT SG_ERROR_SOCKET SG_ERROR_SWAPCTL
  48. SG_ERROR_SYSCONF SG_ERROR_SYSCTL SG_ERROR_SYSCTLBYNAME
  49. SG_ERROR_SYSCTLNAMETOMIB SG_ERROR_UNAME SG_ERROR_UNSUPPORTED
  50. SG_ERROR_XSW_VER_MISMATCH SG_IFACE_DUPLEX_FULL
  51. SG_IFACE_DUPLEX_HALF SG_IFACE_DUPLEX_UNKNOWN
  52. SG_PROCESS_STATE_RUNNING SG_PROCESS_STATE_SLEEPING
  53. SG_PROCESS_STATE_STOPPED SG_PROCESS_STATE_UNKNOWN
  54. SG_PROCESS_STATE_ZOMBIE));
  55. ExtUtils::Constant::WriteConstants(
  56. NAME => 'Unix::Statgrab',
  57. NAMES => \@names,
  58. DEFAULT_TYPE => 'IV',
  59. C_FILE => 'const-c.inc',
  60. XS_FILE => 'const-xs.inc',
  61. );
  62. }
  63. else {
  64. use File::Copy;
  65. use File::Spec;
  66. foreach my $file ('const-c.inc', 'const-xs.inc') {
  67. my $fallback = File::Spec->catfile('fallback', $file);
  68. copy ($fallback, $file) or die "Can't copy $fallback to $file: $!";
  69. }
  70. }