| use ExtUtils::MakeMaker; |
| use Config; |
| use Getopt::Long; |
| require 5; |
| |
| %MakeParams = InitMakeParams(); |
| |
| WriteMakefile(%MakeParams); |
| |
| sub InitMakeParams { |
| $nsconfig="net-snmp-config"; # in path by default |
| my %Params = ( |
| 'NAME' => 'Bundle::NetSNMP', |
| 'DIR' => [qw(default_store ASN OID agent SNMP TrapReceiver)] |
| ); |
| |
| # bogus, but these options need to be passed to the lower levels |
| $opts = NetSNMPGetOpts("./"); |
| |
| return(%Params); |
| } |
| |
| # common subroutines -- DO NOT EDIT. |
| # They are imported from the Makefile.subs.pl file |
| sub NetSNMPGetOpts { |
| my %ret; |
| my $rootpath = shift; |
| $rootpath = "../" if (!$rootpath); |
| $rootpath .= '/' if ($rootpath !~ /\/$/); |
| |
| if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) { |
| |
| # Grab command line options first. Only used if environment variables are not set |
| GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'}, |
| "NET-SNMP-PATH=s" => \$ret{'prefix'}, |
| "NET-SNMP-DEBUG=s" => \$ret{'debug'}); |
| |
| if ($ENV{'NET-SNMP-IN-SOURCE'}) |
| { |
| $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'}; |
| undef ($ret{'prefix'}); |
| } |
| elsif ($ENV{'NET-SNMP-PATH'}) |
| { |
| $ret{'prefix'} = $ENV{'NET-SNMP-PATH'}; |
| } |
| |
| if ($ENV{'NET-SNMP-DEBUG'}) |
| { |
| $ret{'debug'} = $ENV{'NET-SNMP-DEBUG'}; |
| } |
| |
| # Update environment variables in case they are needed |
| $ENV{'NET-SNMP-IN-SOURCE'} = $ret{'insource'}; |
| $ENV{'NET-SNMP-PATH'} = $ret{'prefix'}; |
| $ENV{'NET-SNMP-DEBUG'} = $ret{'debug'}; |
| |
| $basedir = `%COMSPEC% /c cd`; |
| chomp $basedir; |
| $basedir =~ /(.*?)\\perl.*/; |
| $basedir = $1; |
| print "Net-SNMP base directory: $basedir\n"; |
| if ($basedir =~ / /) { |
| die "\nA space has been detected in the base directory. This is not " . |
| "supported\nPlease rename the folder and try again.\n\n"; |
| } |
| } |
| else |
| { |
| if ($ENV{'NET-SNMP-CONFIG'} && |
| $ENV{'NET-SNMP-IN-SOURCE'}) { |
| # have env vars, pull from there |
| $ret{'nsconfig'} = $ENV{'NET-SNMP-CONFIG'}; |
| $ret{'insource'} = $ENV{'NET-SNMP-IN-SOURCE'}; |
| } else { |
| # don't have env vars, pull from command line and put there |
| GetOptions("NET-SNMP-CONFIG=s" => \$ret{'nsconfig'}, |
| "NET-SNMP-IN-SOURCE=s" => \$ret{'insource'}); |
| |
| if (lc($ret{'insource'}) eq "true" && $ret{'nsconfig'} eq "") { |
| $ret{'nsconfig'}="sh ROOTPATH../net-snmp-config"; |
| } elsif ($ret{'nsconfig'} eq "") { |
| $ret{'nsconfig'}="net-snmp-config"; |
| } |
| |
| $ENV{'NET-SNMP-CONFIG'} = $ret{'nsconfig'}; |
| $ENV{'NET-SNMP-IN-SOURCE'} = $ret{'insource'}; |
| } |
| } |
| |
| $ret{'nsconfig'} =~ s/ROOTPATH/$rootpath/; |
| |
| $ret{'rootpath'} = $rootpath; |
| |
| \%ret; |
| } |
| |
| sub find_files { |
| my($f,$d) = @_; |
| my ($dir,$found,$file); |
| for $dir (@$d){ |
| $found = 0; |
| for $file (@$f) { |
| $found++ if -f "$dir/$file"; |
| } |
| if ($found == @$f) { |
| return $dir; |
| } |
| } |
| } |
| |