summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/distutils/command/install.py15
-rw-r--r--Lib/distutils/command/install_lib.py15
2 files changed, 23 insertions, 7 deletions
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index 3f6fa33..4e68e00 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -77,6 +77,11 @@ class install (Command):
('install-data=', None,
"installation directory for data files"),
+ # For lazy debuggers who just want to test the install
+ # commands without rerunning "build" all the time
+ ('skip-build', None,
+ "skip rebuilding everything (for testing/debugging)"),
+
# Where to install documentation (eventually!)
#('doc-format=', None, "format of documentation to generate"),
#('install-man=', None, "directory for Unix man pages"),
@@ -129,6 +134,8 @@ class install (Command):
self.extra_path = None
self.install_path_file = 0
+ self.skip_build = 0
+
# These are only here as a conduit from the 'build' command to the
# 'install_*' commands that do the real work. ('build_base' isn't
# actually used anywhere, but it might be useful in future.) They
@@ -270,7 +277,10 @@ class install (Command):
from distutils.fancy_getopt import longopt_xlate
print msg + ":"
for opt in self.user_options:
- opt_name = string.translate (opt[0][0:-1], longopt_xlate)
+ opt_name = opt[0]
+ if opt_name[-1] == "=":
+ opt_name = opt_name[0:-1]
+ opt_name = string.translate (opt_name, longopt_xlate)
val = getattr (self, opt_name)
print " %s: %s" % (opt_name, val)
@@ -409,7 +419,8 @@ class install (Command):
def run (self):
# Obviously have to build before we can install
- self.run_peer ('build')
+ if not self.skip_build:
+ self.run_peer ('build')
# Run all sub-commands: currently this just means install all
# Python modules using 'install_lib'.
diff --git a/Lib/distutils/command/install_lib.py b/Lib/distutils/command/install_lib.py
index 852e3f6..2d0a719 100644
--- a/Lib/distutils/command/install_lib.py
+++ b/Lib/distutils/command/install_lib.py
@@ -15,6 +15,7 @@ class install_lib (Command):
('build-dir=','b', "build directory (where to install from)"),
('compile', 'c', "compile .py to .pyc"),
('optimize', 'o', "compile .py to .pyo (optimized)"),
+ ('skip-build', None, "skip the build steps"),
]
@@ -24,6 +25,7 @@ class install_lib (Command):
self.build_dir = None
self.compile = 1
self.optimize = 1
+ self.skip_build = None
def finalize_options (self):
@@ -34,16 +36,19 @@ class install_lib (Command):
('build_lib', 'build_dir'),
('install_lib', 'install_dir'),
('compile_py', 'compile'),
- ('optimize_py', 'optimize'))
+ ('optimize_py', 'optimize'),
+ ('skip_build', 'skip_build'),
+ )
def run (self):
# Make sure we have built everything we need first
- if self.distribution.has_pure_modules():
- self.run_peer ('build_py')
- if self.distribution.has_ext_modules():
- self.run_peer ('build_ext')
+ if not self.skip_build:
+ if self.distribution.has_pure_modules():
+ self.run_peer ('build_py')
+ if self.distribution.has_ext_modules():
+ self.run_peer ('build_ext')
# Install everything: simply dump the entire contents of the build
# directory to the installation directory (that's the beauty of