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"; } 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; } } }