]> git.donarmstrong.com Git - debhelper.git/blobdiff - Debian/Debhelper/Buildsystem/perl_build.pm
Also include CFLAGS in ld line for perl. Closes: #662666
[debhelper.git] / Debian / Debhelper / Buildsystem / perl_build.pm
index 525b0e1c6b2c974e94fc54005ab95196cfee63b2..671bca5713f919b046a8c5f2020c0f8a5790d43e 100644 (file)
@@ -1,4 +1,4 @@
-# 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
@@ -7,7 +7,9 @@
 package Debian::Debhelper::Buildsystem::perl_build;
 
 use strict;
+use Debian::Debhelper::Dh_Lib qw(compat);
 use base 'Debian::Debhelper::Buildsystem';
+use Config;
 
 sub DESCRIPTION {
        "Perl Module::Build (Build.PL)"
@@ -21,12 +23,11 @@ sub check_auto_buildable {
        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";
        $this->doit_in_sourcedir("perl", @_);
 }
 
@@ -39,8 +40,15 @@ 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{CFLAGS} $ENV{LDFLAGS}";
+       }
+       $this->do_perl("Build.PL", "installdirs=vendor", @flags, @_);
 }
 
 sub build {
@@ -61,7 +69,9 @@ sub install {
 
 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