X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debian%2FDebhelper%2FBuildsystem%2Fperl_makemaker.pm;h=60cda3d02e0a2b1aeb7f00a237fc56695d0e61d8;hb=770ae5500e6e459b32c92a2d00f099249725323e;hp=4281fa26c88460fc5e3773bf6123967e01ff49c9;hpb=f382ce5a2ef97c6e45ec4bd221117493d4f87c90;p=debhelper.git diff --git a/Debian/Debhelper/Buildsystem/perl_makemaker.pm b/Debian/Debhelper/Buildsystem/perl_makemaker.pm index 4281fa2..60cda3d 100644 --- a/Debian/Debhelper/Buildsystem/perl_makemaker.pm +++ b/Debian/Debhelper/Buildsystem/perl_makemaker.pm @@ -1,4 +1,4 @@ -# A buildsystem plugin for handling Perl MakeMaker based projects. +# A debhelper build system class for handling Perl MakeMaker based projects. # # Copyright: © 2008-2009 Joey Hess # © 2008-2009 Modestas Vainius @@ -7,7 +7,9 @@ package Debian::Debhelper::Buildsystem::perl_makemaker; use strict; +use Debian::Debhelper::Dh_Lib qw(compat); use base 'Debian::Debhelper::Buildsystem::makefile'; +use Config; sub DESCRIPTION { "Perl ExtUtils::MakeMaker (Makefile.PL)" @@ -19,16 +21,10 @@ sub check_auto_buildable { # Handles everything if Makefile.PL exists. Otherwise - next class. if (-e $this->get_sourcepath("Makefile.PL")) { - if ($step eq "install" || $step eq "configure") { + if ($step eq "configure") { return 1; } else { - # This is backwards compatible (with << 7.3) until build, test and - # clean steps are not reimplemented in the backwards compatibility - # breaking way. However, this is absolutely necessary for - # enforce_in_source_building() to work in corner cases in build, - # test and clean steps as the next class (makefile) does not - # enforce it. return $this->SUPER::check_auto_buildable(@_); } } @@ -44,21 +40,41 @@ sub new { sub configure { my $this=shift; + my @flags; # 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; # This prevents Module::Install from interactive behavior. $ENV{PERL_AUTOINSTALL}="--skipdeps"; + if ($ENV{CFLAGS} && ! compat(8)) { + push @flags, "OPTIMIZE=$ENV{CFLAGS} $ENV{CPPFLAGS}"; + } + if ($ENV{LDFLAGS} && ! compat(8)) { + push @flags, "LD=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}"; + } + $this->doit_in_sourcedir("perl", "Makefile.PL", "INSTALLDIRS=vendor", - "create_packlist=0", - @_); + # if perl_build is not tested first, need to pass packlist + # option to handle fallthrough case + (compat(7) ? "create_packlist=0" : ()), + @flags, @_); } sub install { my $this=shift; my $destdir=shift; - $this->SUPER::install($destdir, "PREFIX=/usr", @_); + + # Special case for Makefile.PL that uses + # Module::Build::Compat. PREFIX should not be passed + # for those; it already installs into /usr by default. + my $makefile=$this->get_sourcepath("Makefile"); + if (system(qq{grep -q "generated automatically by MakeMaker" $makefile}) != 0) { + $this->SUPER::install($destdir, @_); + } + else { + $this->SUPER::install($destdir, "PREFIX=/usr", @_); + } } -1; +1