use ExtUtils::MakeMaker; require 5; use Config; use Getopt::Long; my $lib_version; my %MakeParams = (); my %opts; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. # determine if we are in larger build and prepend libval-config path GetOptions(\%opts, 'topdir=s', 'sysconfdir=s'); $ENV{PATH} = "$opts{topdir}/validator:$ENV{PATH}" if exists $opts{topdir}; local $LD_LPATH; $LD_LPATH = "$opts{topdir}/validator/libsres/.libs:$opts{topdir}/validator/libval/.libs:\$LD_LIBRARY_PATH" if exists $opts{topdir}; sub MY::test_via_harness { my($self, $perl, $tests) = @_; local $_ = $self->MM::test_via_harness($perl, $tests); s/PERL_DL_NONLAZY=1/$& LD_LIBRARY_PATH=$LD_LPATH/g if defined $LD_LPATH; return $_; } sub MY::test_via_script { my($self, $perl, $tests) = @_; local $_ = $self->MM::test_via_script($perl, $tests); s/PERL_DL_NONLAZY=1/$& LD_LIBRARY_PATH=$LD_LPATH/g if defined $LD_LPATH; return $_; } %MakeParams = InitMakeParams(); WriteMakefile(%MakeParams); sub InitMakeParams { my %Params = ( NAME => 'Net::DNS::SEC::Validator', dist => { SUFFIX => "gz", COMPRESS => "gzip -9f"}, XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'Validator.pm', ); # test for libval install and get link/compile info my $ldflags = `libval-config --libs`; $Params{'LIBS'} = $ldflags; my $cflags = `libval-config --cflags`; die "error: unable to determine compile flags (check validator install)" if $? or not $cflags; $Params{'CCFLAGS'} = $cflags; if (defined $opts{topdir}) { $Params{'INC'} = "-I$opts{topdir}/validator/include"; $Params{'LIBS'} = "-L$opts{topdir}/validator/libval/.libs " . "-L$opts{topdir}/validator/libsres/.libs " . $Params{'LIBS'}; } my $dnsval_conf = `libval-config --dnsval_config`; chomp $dnsval_conf; my $root_hints = `libval-config --root_hints`; chomp $root_hints; my $resolv_conf = `libval-config --resolver_config`; chomp $resolv_conf; `echo 'our \$dnsval_conf = \"$dnsval_conf\"\;' > ./defines.pl`; `echo 'our \$root_hints = \"$root_hints\"\;' >> ./defines.pl`; `echo 'our \$resolv_conf = \"$resolv_conf\"\;' >> ./defines.pl`; return(%Params); }