blob: d2bb9da1ff9712fcd1958730c13617d2361f80da [file] [log] [blame]
use ExtUtils::MakeMaker;
require 5;
use Config;
use Getopt::Long;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
%MakeParams = InitMakeParams();
WriteMakefile(%MakeParams);
sub InitMakeParams {
my $opts;
my %Params = (
'NAME' => 'NetSNMP::ASN',
'VERSION_FROM' => 'ASN.pm', # finds $VERSION
'XSPROTOARG' => '-prototypes',
'PREREQ_PM' => {},
);
my $snmp_lib, $snmp_llib, $sep;
$opts = NetSNMPGetOpts();
$Params{'LIBS'} = `$opts->{'nsconfig'} --libs`;
chomp($Params{'LIBS'});
$Params{'CCFLAGS'} = `$opts->{'nsconfig'} --cflags`;
chomp($Params{'CCFLAGS'});
$Params{'CCFLAGS'} .= " " . $Config{'ccflags'};
if ($opts->{'insource'} eq "true") {
$Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ " . $Params{'LIBS'};
$Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
}
$Params{'CCFLAGS'} =~ s/ -W[-\w]+//g; # ignore developer warnings
if ($Params{'LIBS'} eq "" || $Params{'CCFLAGS'} eq "") {
die "You need to install net-snmp first (I can't find net-snmp-config)";
}
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 ($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 ($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;
}