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

SNMP编程

开发平台:

Unix_Linux

  1. sub NetSNMPGetOpts {
  2.     my %ret;
  3.     my $rootpath = shift;
  4.     $rootpath = "../" if (!$rootpath);
  5.     $rootpath .= '/' if ($rootpath !~ //$/);
  6.     
  7.     if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
  8.       # Grab command line options first.  Only used if environment variables are not set
  9.       GetOptions("NET-SNMP-IN-SOURCE=s" => $ret{'insource'},
  10.         "NET-SNMP-PATH=s"      => $ret{'prefix'},          
  11.         "NET-SNMP-DEBUG=s"     => $ret{'debug'});
  12.       if ($ENV{'NET-SNMP-IN-SOURCE'})
  13.       {
  14. $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'};
  15.         undef ($ret{'prefix'});
  16.       }
  17.       elsif ($ENV{'NET-SNMP-PATH'})
  18.       {
  19. $ret{'prefix'} = $ENV{'NET-SNMP-PATH'};
  20.       }
  21.       if ($ENV{'NET-SNMP-DEBUG'})
  22.       {
  23. $ret{'debug'} = $ENV{'NET-SNMP-DEBUG'};
  24.       }
  25.       # Update environment variables in case they are needed
  26.       $ENV{'NET-SNMP-IN-SOURCE'}    = $ret{'insource'};
  27.       $ENV{'NET-SNMP-PATH'}         = $ret{'prefix'};
  28.       $ENV{'NET-SNMP-DEBUG'}        = $ret{'debug'};        
  29.      
  30.       $basedir = `%COMSPEC% /c cd`;
  31.       chomp $basedir;
  32.       $basedir =~ /(.*?)\perl.*/;
  33.       $basedir = $1;
  34.       print "Net-SNMP base directory: $basedirn";
  35.       if ($basedir =~ / /) {
  36.         die "nA space has been detected in the base directory.  This is not " .
  37.             "supportednPlease rename the folder and try again.nn";
  38.       }
  39.     }
  40.     else
  41.     {
  42.       if ($ENV{'NET-SNMP-CONFIG'} && 
  43.         $ENV{'NET-SNMP-IN-SOURCE'}) {
  44. # have env vars, pull from there
  45. $ret{'nsconfig'} = $ENV{'NET-SNMP-CONFIG'};
  46. $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'};
  47.       } else {
  48. # don't have env vars, pull from command line and put there
  49. GetOptions("NET-SNMP-CONFIG=s" => $ret{'nsconfig'},
  50.            "NET-SNMP-IN-SOURCE=s" => $ret{'insource'});
  51. if (lc($ret{'insource'}) eq "true" && $ret{'nsconfig'} eq "") {
  52.     $ret{'nsconfig'}="sh ROOTPATH../net-snmp-config";
  53. } elsif ($ret{'nsconfig'} eq "") {
  54.     $ret{'nsconfig'}="net-snmp-config";
  55. }
  56. $ENV{'NET-SNMP-CONFIG'}    = $ret{'nsconfig'};
  57. $ENV{'NET-SNMP-IN-SOURCE'} = $ret{'insource'};
  58.       }
  59.     }
  60.     
  61.     $ret{'nsconfig'} =~ s/ROOTPATH/$rootpath/;
  62.     $ret{'rootpath'} = $rootpath;
  63.     %ret;
  64. }
  65. sub find_files {
  66.     my($f,$d) = @_;
  67.     my ($dir,$found,$file);
  68.     for $dir (@$d){
  69. $found = 0;
  70. for $file (@$f) {
  71.     $found++ if -f "$dir/$file";
  72. }
  73. if ($found == @$f) {
  74.     return $dir;
  75. }
  76.     }
  77. }