Makefile.PL
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. use ExtUtils::MakeMaker;
  2. use Config;
  3. use Getopt::Long;
  4. require 5;
  5. %MakeParams = InitMakeParams();
  6. WriteMakefile(%MakeParams);
  7. sub InitMakeParams {
  8.     $nsconfig="net-snmp-config"; # in path by default
  9.     my %Params = (
  10.   'NAME' => 'Bundle::NetSNMP',
  11.   'DIR' => [qw(default_store ASN OID agent SNMP TrapReceiver)]
  12.   );
  13.     # bogus, but these options need to be passed to the lower levels
  14.     $opts = NetSNMPGetOpts("./");
  15.     return(%Params);
  16. }
  17. # common subroutines -- DO NOT EDIT.
  18. # They are imported from the Makefile.subs.pl file
  19. sub NetSNMPGetOpts {
  20.     my %ret;
  21.     my $rootpath = shift;
  22.     $rootpath = "../" if (!$rootpath);
  23.     $rootpath .= '/' if ($rootpath !~ //$/);
  24.     
  25.     if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
  26.       # Grab command line options first.  Only used if environment variables are not set
  27.       GetOptions("NET-SNMP-IN-SOURCE=s" => $ret{'insource'},
  28.         "NET-SNMP-PATH=s"      => $ret{'prefix'},          
  29.         "NET-SNMP-DEBUG=s"     => $ret{'debug'});
  30.       if ($ENV{'NET-SNMP-IN-SOURCE'})
  31.       {
  32. $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'};
  33.         undef ($ret{'prefix'});
  34.       }
  35.       elsif ($ENV{'NET-SNMP-PATH'})
  36.       {
  37. $ret{'prefix'} = $ENV{'NET-SNMP-PATH'};
  38.       }
  39.       if ($ENV{'NET-SNMP-DEBUG'})
  40.       {
  41. $ret{'debug'} = $ENV{'NET-SNMP-DEBUG'};
  42.       }
  43.       # Update environment variables in case they are needed
  44.       $ENV{'NET-SNMP-IN-SOURCE'}    = $ret{'insource'};
  45.       $ENV{'NET-SNMP-PATH'}         = $ret{'prefix'};
  46.       $ENV{'NET-SNMP-DEBUG'}        = $ret{'debug'};        
  47.      
  48.       $basedir = `%COMSPEC% /c cd`;
  49.       chomp $basedir;
  50.       $basedir =~ /(.*?)\perl.*/;
  51.       $basedir = $1;
  52.       print "Net-SNMP base directory: $basedirn";
  53.       if ($basedir =~ / /) {
  54.         die "nA space has been detected in the base directory.  This is not " .
  55.             "supportednPlease rename the folder and try again.nn";
  56.       }
  57.     }
  58.     else
  59.     {
  60.       if ($ENV{'NET-SNMP-CONFIG'} && 
  61.         $ENV{'NET-SNMP-IN-SOURCE'}) {
  62. # have env vars, pull from there
  63. $ret{'nsconfig'} = $ENV{'NET-SNMP-CONFIG'};
  64. $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'};
  65.       } else {
  66. # don't have env vars, pull from command line and put there
  67. GetOptions("NET-SNMP-CONFIG=s" => $ret{'nsconfig'},
  68.            "NET-SNMP-IN-SOURCE=s" => $ret{'insource'});
  69. if (lc($ret{'insource'}) eq "true" && $ret{'nsconfig'} eq "") {
  70.     $ret{'nsconfig'}="sh ROOTPATH../net-snmp-config";
  71. } elsif ($ret{'nsconfig'} eq "") {
  72.     $ret{'nsconfig'}="net-snmp-config";
  73. }
  74. $ENV{'NET-SNMP-CONFIG'}    = $ret{'nsconfig'};
  75. $ENV{'NET-SNMP-IN-SOURCE'} = $ret{'insource'};
  76.       }
  77.     }
  78.     
  79.     $ret{'nsconfig'} =~ s/ROOTPATH/$rootpath/;
  80.     $ret{'rootpath'} = $rootpath;
  81.     %ret;
  82. }
  83. sub find_files {
  84.     my($f,$d) = @_;
  85.     my ($dir,$found,$file);
  86.     for $dir (@$d){
  87. $found = 0;
  88. for $file (@$f) {
  89.     $found++ if -f "$dir/$file";
  90. }
  91. if ($found == @$f) {
  92.     return $dir;
  93. }
  94.     }
  95. }