]> git.donarmstrong.com Git - debhelper.git/commit
Modular object-orientied buildsystem implementation (try 2).
authorModestas Vainius <modestas@vainius.eu>
Tue, 14 Apr 2009 12:12:14 +0000 (15:12 +0300)
committerJoey Hess <joey@gnu.kitenet.net>
Tue, 14 Apr 2009 18:14:07 +0000 (14:14 -0400)
commit683f6060d8304d6d4e83bd76e5ac624a35b43442
tree12a7a34240e60a52269647584c92c3349c0b2e5a
parent2b7f42f9ef70c08bb7bc138fb8b24dc993da54ac
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>
15 files changed:
Debian/Debhelper/Buildsystem/autotools.pm
Debian/Debhelper/Buildsystem/cmake.pm
Debian/Debhelper/Buildsystem/makefile.pm
Debian/Debhelper/Buildsystem/perl_build.pm
Debian/Debhelper/Buildsystem/perl_makefile.pm [deleted file]
Debian/Debhelper/Buildsystem/perl_makemaker.pm [new file with mode: 0644]
Debian/Debhelper/Buildsystem/python_distutils.pm
Debian/Debhelper/Dh_Buildsystem_Bases.pm [deleted file]
Debian/Debhelper/Dh_Buildsystem_Basic.pm [new file with mode: 0644]
Debian/Debhelper/Dh_Buildsystems.pm
dh_auto_build
dh_auto_clean
dh_auto_configure
dh_auto_install
dh_auto_test