Added 'description' class attribute to every command class (to help the
[python/dscho.git] / Lib / distutils / command / build.py
blobe6c87bfcaef997b47adddb6d8545391bda200a6c
1 """distutils.command.build
3 Implements the Distutils 'build' command."""
5 # created 1999/03/08, Greg Ward
7 __rcsid__ = "$Id$"
9 import os
10 from distutils.core import Command
13 class Build (Command):
15 description = "build everything needed to install"
17 options = [('build-base=', 'b',
18 "base directory for build library"),
19 ('build-lib=', 'l',
20 "directory for platform-shared files"),
21 ('build-platlib=', 'p',
22 "directory for platform-specific files"),
25 def set_default_options (self):
26 self.build_base = 'build'
27 # these are decided only after 'build_base' has its final value
28 # (unless overridden by the user or client)
29 self.build_lib = None
30 self.build_platlib = None
32 def set_final_options (self):
33 # 'build_lib' and 'build_platlib' just default to 'lib' and
34 # 'platlib' under the base build directory
35 if self.build_lib is None:
36 self.build_lib = os.path.join (self.build_base, 'lib')
37 if self.build_platlib is None:
38 self.build_platlib = os.path.join (self.build_base, 'platlib')
41 def run (self):
43 # For now, "build" means "build_py" then "build_ext". (Eventually
44 # it should also build documentation.)
46 # Invoke the 'build_py' command to "build" pure Python modules
47 # (ie. copy 'em into the build tree)
48 if self.distribution.packages or self.distribution.py_modules:
49 self.run_peer ('build_py')
51 # And now 'build_ext' -- compile extension modules and put them
52 # into the build tree
53 if self.distribution.ext_modules:
54 self.run_peer ('build_ext')
56 # end class Build