summaryrefslogtreecommitdiff
path: root/Debian/Debhelper/Buildsystem/python_distutils.pm
diff options
context:
space:
mode:
authorBernd Zeimetz <bernd@bzed.de>2009-07-19 13:51:50 +0200
committerBernd Zeimetz <bernd@bzed.de>2009-07-19 14:59:05 +0200
commiteec6717067c008cc0baf6c75b241e81651ee0ccb (patch)
tree36447b59f8030e5e633dc366aedf879bc1263c08 /Debian/Debhelper/Buildsystem/python_distutils.pm
parentab10d851eb3cab5c08980bfecec35453c45745a6 (diff)
Build Python dbg extensions automatically.
Python dbg interpreters are only called if the package build-depends on them.
Diffstat (limited to 'Debian/Debhelper/Buildsystem/python_distutils.pm')
-rw-r--r--Debian/Debhelper/Buildsystem/python_distutils.pm35
1 files changed, 33 insertions, 2 deletions
diff --git a/Debian/Debhelper/Buildsystem/python_distutils.pm b/Debian/Debhelper/Buildsystem/python_distutils.pm
index a54b6483..63bc8716 100644
--- a/Debian/Debhelper/Buildsystem/python_distutils.pm
+++ b/Debian/Debhelper/Buildsystem/python_distutils.pm
@@ -79,21 +79,52 @@ sub pre_building_step {
$this->SUPER::pre_building_step($step);
}
+sub dbg_build_needed {
+ my $this=shift;
+ my $act=shift;
+
+ my @dbg;
+ open (CONTROL, $this->get_sourcepath('debian/control')) ||
+ error("cannot read debian/control: $!\n");
+ foreach my $builddeps (join('', <CONTROL>) =~ /^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) {
+ foreach ($builddeps =~ /(python[^, ]*-dbg)/g) {
+ push @dbg, $1;
+ }
+ }
+
+ close CONTROL;
+ return @dbg;
+
+}
+
sub setup_py {
my $this=shift;
my $act=shift;
+
my $python_default = `pyversions -d`;
$python_default =~ s/^\s+//;
$python_default =~ s/\s+$//;
+ my $python_requested = split ' ', `pyversions -r 2>/dev/null`;
+ my @dbg_build_needed = $this->dbg_build_needed();
# We need to to run setup.py with the default python first
# as distutils/setuptools modifies the shebang lines of scripts.
# This ensures that #!/usr/bin/python is used and not pythonX.Y
- $this->doit_in_sourcedir("python", "setup.py", $act, @_);
- for my $python (grep(!/^$python_default/, (split ' ', `pyversions -r 2>/dev/null`))) {
+ if (grep /^$python_default/, $python_requested) {
+ $this->doit_in_sourcedir("python", "setup.py", $act, @_);
+ }
+ if (grep /^(python-all-dbg|python-dbg)/, $dbg_build_needed) {
+ $this->doit_in_sourcedir("python-dbg", "setup.py", $act, @_);
+ }
+ for my $python (grep !/^$python_default/, $python_requested) {
if (-x "/usr/bin/" . $python) {
$this->doit_in_sourcedir($python, "setup.py", $act, @_);
}
+ $python = $python . "-dbg";
+ if (grep /^(python-all-dbg|$python)/, @dbg_build_needed) {
+ $this->doit_in_sourcedir($python, "setup.py", $act, @_);
+ }
+
}
}