diff options
author | Modestas Vainius <modestas@vainius.eu> | 2009-04-14 15:12:14 +0300 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-04-14 14:14:07 -0400 |
commit | 683f6060d8304d6d4e83bd76e5ac624a35b43442 (patch) | |
tree | 12a7a34240e60a52269647584c92c3349c0b2e5a /Debian/Debhelper/Buildsystem/perl_makefile.pm | |
parent | 2b7f42f9ef70c08bb7bc138fb8b24dc993da54ac (diff) |
Modular object-orientied buildsystem implementation (try 2).
Major changess:
* Dh_Buildsystem_Option dropped and Dh_Buildsystem_Chdir functionality
partitially merged into Dh_Buildsystem_Basic. Dh_Buildsystem_Bases.pm
renamed to Dh_Buildsystem_Basic.pm to match classname.
* *_impl() ditched completely. Previous {configure,build,test,install,clean}_impl()
renamed to just configure(), build(), test(), install(), clean() instead.
Added pre_action($action) and post_action($action) hooks instead which are called
by Dh_Buildsystems::buildsystems_do().
* Builddir is handled via mkdir_builddir(), doit_in_buildddir(), clean_builddir()
methods which buildsystems should call directly. Removed get_top* method, added
get_rel2builddir_path().
* is_buildable() method renamed to is_auto_buildable() to reflect its
purpose more.
* ::perl_makefile renamed to ::perl_makemaker and which is based on ::makefile
now. MakeMaker hack moved from ::makefile to ::perl_makemaker where it belongs
(thanks for the tip).
* Dh_Buildsystems refactored into a simple perl module rather than OO class and
simplified a bit.
* @BUILDSYSTEMS and is_auto_buildable() modified to 100% match historical order.
TODO: user documentation (e.g. DH_AUTO_BUILDDIRECTORY and DH_AUTO_BUILDSYSTEM
environment variables and common dh_auto_* options (--buildsystem and --builddirectory)).
Current plugin inheritance hierarchy is like this:
Buildsystem::perl_build -> Dh_Buildsystem_Basic <- Buildsystem::python_distutils
^
|
Buildsystem::makefile <- Buildsystem::perl_makemaker
^ ^ ^
/ | \
Buildsystem::autotools Buildsystem::cmake Buildsystem::python_distutils
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
Diffstat (limited to 'Debian/Debhelper/Buildsystem/perl_makefile.pm')
-rw-r--r-- | Debian/Debhelper/Buildsystem/perl_makefile.pm | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/Debian/Debhelper/Buildsystem/perl_makefile.pm b/Debian/Debhelper/Buildsystem/perl_makefile.pm deleted file mode 100644 index 67a6f441..00000000 --- a/Debian/Debhelper/Buildsystem/perl_makefile.pm +++ /dev/null @@ -1,38 +0,0 @@ -# A buildsystem plugin for handling Perl Build based projects. -# -# Copyright: © 2008-2009 Joey Hess -# © 2008-2009 Modestas Vainius -# License: GPL-2+ - -package Debian::Debhelper::Buildsystem::perl_makefile; - -use strict; -use Debian::Debhelper::Dh_Lib; -use Debian::Debhelper::Dh_Buildsystem_Bases; -use base 'Debian::Debhelper::Dh_Buildsystem_Basic'; - -sub DESCRIPTION { - "support for building Perl Makefile.PL based packages (in-source only)" -} - -sub is_buildable { - my ($self, $action) = @_; - return ($action eq "configure") && (-e "Makefile.PL"); -} - -sub new { - my $cls=shift; - my $self=$cls->SUPER::new(@_); - $self->enforce_in_source_building(); - return $self; -} - -sub configure_impl { - my $self=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", @_); -} - -1; |