package Debian::Debhelper::Buildsystem::perl_makemaker;
use strict;
-use Debian::Debhelper::Dh_Lib;
use base 'Debian::Debhelper::Buildsystem::makefile';
sub DESCRIPTION {
- "support for building Perl MakeMaker based packages (in-source only)"
+ "Perl ExtUtils::MakeMaker (Makefile.PL)"
}
sub check_auto_buildable {
- my $self=shift;
- my ($action)=@_;
+ my $this=shift;
+ my ($step)=@_;
# Handles configure, install; the rest - next class
- if ($action eq "install") {
- return -e "Makefile.PL";
- }
- # XXX JEH why test for configure here? If building or cleaning, and
- # a Makefile.PL exists, we know this class can handle those
- # actions -- it does so by inheriting from the makefile class.
- # XXX MDX Yes. But that's again different behaviour from current
- # (see comment in autotools.mk). Your call.
- elsif ($action eq "configure") {
- return -e "Makefile.PL";
+ if ($step eq "install" || $step eq "configure") {
+ return -e $this->get_sourcepath("Makefile.PL");
}
else {
return 0;
}
sub new {
- my $cls=shift;
- my $self=$cls->SUPER::new(@_);
- $self->enforce_in_source_building();
- return $self;
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->enforce_in_source_building();
+ return $this;
}
sub configure {
- my $self=shift;
+ my $this=shift;
# If set to a true value then MakeMaker's prompt function will
# # always return the default without waiting for user input.
$ENV{PERL_MM_USE_DEFAULT}=1;
- doit("perl", "Makefile.PL", "INSTALLDIRS=vendor", @_);
+ # This prevents Module::Install from interactive behavior.
+ $ENV{PERL_AUTOINSTALL}="--skipdeps";
+
+ $this->doit_in_sourcedir("perl", "Makefile.PL", "INSTALLDIRS=vendor",
+ "create_packlist=0",
+ @_);
}
sub install {
- my $self=shift;
+ my $this=shift;
my $destdir=shift;
- $self->SUPER::install($destdir, "PREFIX=/usr", @_);
+ $this->SUPER::install($destdir, "PREFIX=/usr", @_);
}
1;