mirror of https://github.com/python/cpython.git
Revised tons of comments to reflect the current state of affairs better.
Deleted some crufty code.
This commit is contained in:
parent
048ca7dcaf
commit
790c110c48
|
@ -79,34 +79,38 @@ class install (Command):
|
|||
#('install-man=', None, "directory for Unix man pages"),
|
||||
#('install-html=', None, "directory for HTML documentation"),
|
||||
#('install-info=', None, "directory for GNU info files"),
|
||||
|
||||
# Flags for 'build_py'
|
||||
#('compile-py', None, "compile .py to .pyc"),
|
||||
#('optimize-py', None, "compile .py to .pyo (optimized)"),
|
||||
]
|
||||
|
||||
|
||||
def initialize_options (self):
|
||||
|
||||
# Don't define 'prefix' or 'exec_prefix' so we can know when the
|
||||
# command is run whether the user supplied values
|
||||
# High-level options: these select both an installation base
|
||||
# and scheme.
|
||||
self.prefix = None
|
||||
self.exec_prefix = None
|
||||
self.home = None
|
||||
|
||||
# These select only the installation base; it's up to the user to
|
||||
# specify the installation scheme (currently, that means supplying
|
||||
# the --install-{platlib,purelib,scripts,data} options).
|
||||
self.install_base = None
|
||||
self.install_platbase = None
|
||||
|
||||
# The actual installation directories are determined only at
|
||||
# run-time, so the user can supply just prefix (and exec_prefix?)
|
||||
# as a base for everything else
|
||||
self.install_purelib = None
|
||||
self.install_platlib = None
|
||||
self.install_lib = None
|
||||
|
||||
# These options are the actual installation directories; if not
|
||||
# supplied by the user, they are filled in using the installation
|
||||
# scheme implied by prefix/exec-prefix/home and the contents of
|
||||
# that installation scheme.
|
||||
self.install_purelib = None # for pure module distributions
|
||||
self.install_platlib = None # non-pure (dists w/ extensions)
|
||||
self.install_lib = None # set to either purelib or platlib
|
||||
self.install_scripts = None
|
||||
self.install_data = None
|
||||
|
||||
# These two are for putting non-packagized distributions into their
|
||||
# own directory and creating a .pth file if it makes sense.
|
||||
# 'extra_path' comes from the setup file; 'install_path_file' is
|
||||
# set only if we determine that it makes sense to install a path
|
||||
# file.
|
||||
self.extra_path = None
|
||||
self.install_path_file = 0
|
||||
|
||||
|
@ -119,79 +123,36 @@ def initialize_options (self):
|
|||
self.build_base = None
|
||||
self.build_lib = None
|
||||
|
||||
# Not defined yet because we don't know anything about
|
||||
# documentation yet.
|
||||
#self.install_man = None
|
||||
#self.install_html = None
|
||||
#self.install_info = None
|
||||
|
||||
self.compile_py = 1
|
||||
self.optimize_py = 1
|
||||
|
||||
|
||||
def finalize_options (self):
|
||||
|
||||
# XXX this method is where the default installation directories
|
||||
# for modules and extension modules are determined. (Someday,
|
||||
# the default installation directories for scripts,
|
||||
# documentation, and whatever else the Distutils can build and
|
||||
# install will also be determined here.) Thus, this is a pretty
|
||||
# important place to fiddle with for anyone interested in
|
||||
# installation schemes for the Python library. Issues that
|
||||
# are not yet resolved to my satisfaction:
|
||||
# * how much platform dependence should be here, and
|
||||
# how much can be pushed off to sysconfig (or, better, the
|
||||
# Makefiles parsed by sysconfig)?
|
||||
# * how independent of Python version should this be -- ie.
|
||||
# should we have special cases to handle Python 1.5 and
|
||||
# older, and then do it "the right way" for 1.6? Or should
|
||||
# we install a site.py along with Distutils under pre-1.6
|
||||
# Python to take care of the current deficiencies in
|
||||
# Python's library installation scheme?
|
||||
#
|
||||
# Currently, this method has hacks to distinguish POSIX from
|
||||
# non-POSIX systems (for installation of site-local modules),
|
||||
# and assumes the Python 1.5 installation tree with no site.py
|
||||
# to fix things.
|
||||
# This method (and its pliant slaves, like 'finalize_unix()',
|
||||
# 'finalize_other()', and 'select_scheme()') is where the default
|
||||
# installation directories for modules, extension modules, and
|
||||
# anything else we care to install from a Python module
|
||||
# distribution. Thus, this code makes a pretty important policy
|
||||
# statement about how third-party stuff is added to a Python
|
||||
# installation! Note that the actual work of installation is done
|
||||
# by the relatively simple 'install_*' commands; they just take
|
||||
# their orders from the installation directory options determined
|
||||
# here.
|
||||
|
||||
# Figure out actual installation directories; the basic principle
|
||||
# is: ...
|
||||
# Check for errors/inconsistencies in the options; first, stuff
|
||||
# that's wrong on any platform.
|
||||
|
||||
|
||||
|
||||
# Logic:
|
||||
# * any: (prefix or exec-prefix or home) and (base or platbase)
|
||||
# supplied: error
|
||||
# * Windows/Mac OS: exec-prefix or home supplied: warn and ignore
|
||||
#
|
||||
# * Unix: home set
|
||||
# (select the unix_home scheme)
|
||||
# * Unix: neither prefix nor home set
|
||||
# (set prefix=sys_prefix and carry on)
|
||||
# * Unix: prefix set but not exec-prefix
|
||||
# (set exec-prefix=prefix and carry on)
|
||||
# * Unix: prefix set
|
||||
# (select the unix_prefix scheme)
|
||||
#
|
||||
# * Windows/Mac OS: prefix not set
|
||||
# (set prefix = sys_prefix and carry on)
|
||||
# * Windows/Mac OS: prefix set
|
||||
# (select the appropriate scheme)
|
||||
|
||||
# "select a scheme" means:
|
||||
# - set install-base and install-platbase
|
||||
# - subst. base/platbase/version into the values of the
|
||||
# particular scheme dictionary
|
||||
# - use the resultings strings to set install-lib, etc.
|
||||
|
||||
sys_prefix = os.path.normpath (sys.prefix)
|
||||
sys_exec_prefix = os.path.normpath (sys.exec_prefix)
|
||||
|
||||
# Check for errors/inconsistencies in the options
|
||||
if ((self.prefix or self.exec_prefix or self.home) and
|
||||
(self.install_base or self.install_platbase)):
|
||||
raise DistutilsOptionError, \
|
||||
("must supply either prefix/exec-prefix/home or " +
|
||||
"install-base/install-platbase -- not both")
|
||||
|
||||
# Next, stuff that's wrong (or dubious) only on certain platforms.
|
||||
if os.name == 'posix':
|
||||
if self.home and (self.prefix or self.exec_prefix):
|
||||
raise DistutilsOptionError, \
|
||||
|
@ -240,7 +201,7 @@ def finalize_options (self):
|
|||
self.install_libbase = self.install_lib # needed for .pth file
|
||||
self.install_lib = os.path.join (self.install_lib, self.extra_dirs)
|
||||
|
||||
# Figure out the build directories, ie. where to install from
|
||||
# Find out the build directories, ie. where to install from.
|
||||
self.set_undefined_options ('build',
|
||||
('build_base', 'build_base'),
|
||||
('build_lib', 'build_lib'))
|
||||
|
@ -320,6 +281,12 @@ def finalize_other (self): # Windows and Mac OS for now
|
|||
|
||||
def select_scheme (self, name):
|
||||
|
||||
# "select a scheme" means:
|
||||
# - set install-base and install-platbase
|
||||
# - subst. base/platbase/version into the values of the
|
||||
# particular scheme dictionary
|
||||
# - use the resultings strings to set install-lib, etc.
|
||||
|
||||
# it's the caller's problem if they supply a bad name!
|
||||
scheme = INSTALL_SCHEMES[name]
|
||||
|
||||
|
|
Loading…
Reference in New Issue