-# 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 Debian::Debhelper::Dh_Lib qw(compat);
use base 'Debian::Debhelper::Buildsystem';
+use Config;
sub DESCRIPTION {
"Perl Module::Build (Build.PL)"
}
sub check_auto_buildable {
- my ($this, $action) = @_;
+ 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 $this=shift;
- $ENV{MODULEBUILDRC} = "/dev/null";
- doit("perl", @_);
+ $this->doit_in_sourcedir("perl", @_);
}
sub new {
sub configure {
my $this=shift;
+ my @flags;
$ENV{PERL_MM_USE_DEFAULT}=1;
- $this->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 {
sub clean {
my $this=shift;
- $this->do_perl("Build", "--allow_mb_mismatch", 1, "distclean", @_);
+ if (-e $this->get_sourcepath("Build")) {
+ $this->do_perl("Build", "--allow_mb_mismatch", 1, "distclean", @_);
+ }
}
-1;
+1