-# A buildsystem plugin for handling Perl Build based projects.
+# A build system class for handling Perl Build based projects.
#
# Copyright: © 2008-2009 Joey Hess
# © 2008-2009 Modestas Vainius
package Debian::Debhelper::Buildsystem::perl_build;
use strict;
-use Debian::Debhelper::Dh_Lib;
-use base 'Debian::Debhelper::Dh_Buildsystem_Basic';
+use Debian::Debhelper::Dh_Lib qw(compat);
+use base 'Debian::Debhelper::Buildsystem';
+use Config;
sub DESCRIPTION {
- "support for building Perl Build.PL based packages (in-source only)"
+ "Perl Module::Build (Build.PL)"
}
-sub is_auto_buildable {
- my ($self, $action) = @_;
+sub check_auto_buildable {
+ my ($this, $step) = @_;
# Handles everything
- my $ret = -e "Build.PL";
- if ($action ne "configure") {
- $ret &&= -e "Build";
+ my $ret = -e $this->get_sourcepath("Build.PL");
+ if ($step ne "configure") {
+ $ret &&= -e $this->get_sourcepath("Build");
}
- return $ret;
+ return $ret ? 1 : 0;
}
sub do_perl {
- my $self=shift;
- $ENV{MODULEBUILDRC} = "/dev/null";
- doit("perl", @_);
+ my $this=shift;
+ $this->doit_in_sourcedir("perl", @_);
}
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;
+ my @flags;
$ENV{PERL_MM_USE_DEFAULT}=1;
- $self->do_perl("Build.PL", "installdirs=vendor", @_);
+ if ($ENV{CFLAGS} && ! compat(8)) {
+ push @flags, "config=optimize=$ENV{CFLAGS} $ENV{CPPFLAGS}";
+ }
+ if ($ENV{LDFLAGS} && ! compat(8)) {
+ push @flags, "config=ld=$Config{ld} $ENV{LDFLAGS}";
+ }
+ $this->do_perl("Build.PL", "installdirs=vendor", @flags, @_);
}
sub build {
- my $self=shift;
- $self->do_perl("Build", @_);
+ my $this=shift;
+ $this->do_perl("Build", @_);
}
sub test {
- my $self=shift;
- $self->do_perl("Build", "test", @_);
+ my $this=shift;
+ $this->do_perl("Build", "test", @_);
}
sub install {
- my $self=shift;
+ my $this=shift;
my $destdir=shift;
- $self->do_perl("Build", "install", "destdir=$destdir", "create_packlist=0", @_);
+ $this->do_perl("Build", "install", "destdir=$destdir", "create_packlist=0", @_);
}
sub clean {
- my $self=shift;
- $self->do_perl("Build", "--allow_mb_mismatch", 1, "distclean", @_);
+ my $this=shift;
+ if (-e $this->get_sourcepath("Build")) {
+ $this->do_perl("Build", "--allow_mb_mismatch", 1, "distclean", @_);
+ }
}
-1;
+1