blob: ccf1731ede37a3835b0fb8afa6e128f4441b7a47 [file] [log] [blame]
use strict;
use warnings;
use lib qw(../lib);
use ModPerl::BuildMM ();
require ModPerl::Code;
use Apache2::Build ();
my $build = ModPerl::BuildMM::build_config();
my $srcdir = '../../../src/modules/perl';
my @names = ModPerl::Code::src_apr_ext();
my(@obj, @clean, %src);
for (@names) {
push @obj, join '.', $_, 'o';
my $cfile = join '.', $_, 'c';
push @clean, $cfile;
$src{$cfile} = "$srcdir/$cfile";
}
push @obj, q{modperl_dummy.o};
my @skip = qw(dynamic test);
push @skip, q{static}
unless (Apache2::Build::BUILD_APREXT);
my %args = (NAME => 'lib' . $build->{MP_APR_LIB},
VERSION_FROM => '../APR/APR.pm',
SKIP => [ @skip ] ,
LINKTYPE => 'static',
OBJECT => "@obj",
clean => { FILES => "@clean" },
);
my $ccopts = $build->ccopts;
# avoid referencing &perl_module outside of mod_perl
$ccopts .= ' -DMP_IN_XS';
$args{CCFLAGS} = $ccopts;
ModPerl::BuildMM::WriteMakefile(%args);
# avoid redefined warnings from imported postamble symbol from
# elsewhere in other Makefile.PL files
no warnings 'redefine';
sub MY::postamble {
my $self = shift;
my $string = $self->ModPerl::BuildMM::MY::postamble;
$string .= join '', map {
"$_: $src{$_}\n\t\$(CP) $src{$_} .\n";
} sort keys %src;
# BSD make needs an empty target, even if the target is specified in .PHONY
$string .= "\ndynamic ::\n";
return $string;
}