blob: 46e455e741349af08042fd318865da350b9d3de0 [file] [log] [blame]
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;
}
}
}