use ExtUtils::MakeMaker; use Config; my @libs = (); push @libs,'-lresolv' unless $Config{d_inetaton}; my $guess_cfg = { 'freebsd' => { 'defs' => '-D__USE_BSD', }, 'netbsd' => { 'defs' => '-D__USE_BSD', }, 'openbsd' => { 'defs' => '-D__USE_BSD', } }; my $guess = $guess_cfg->{$^O}; unless (ref $guess eq 'HASH') { $guess = {'defs' => ''}; } WriteMakefile( 'NAME' => 'IO::Interface', 'VERSION_FROM' => 'Interface.pm', # finds $VERSION 'LIBS' => ["@libs"], # e.g., '-lm' 'INC' => '', # e.g., '-I/usr/include/other' PMLIBDIRS => ['Interface'], CONFIGURE => sub { my %attrs; $attrs{DEFINE} = $guess->{'defs'}; print "Checking for getifaddrs()..."; eval { require 'ifaddrs.ph' }; if ($@ && !-r "/usr/include/ifaddrs.h") { print " Nope, will not use it.\n"; } else { $attrs{DEFINE} .= ' -DUSE_GETIFADDRS'; print " Okay, I will use it.\n"; } print "Checking for sockaddr_dl..."; if (!-r "/usr/include/net/if_dl.h") { print " Nope, will not use it.\n"; } else { $attrs{DEFINE} .= ' -DHAVE_SOCKADDR_DL_STRUCT'; print " Okay, I will use it.\n"; } \%attrs; }, );