distutils.command.build_ext
index
/usr/local/lib/python2.3/distutils/command/build_ext.py

distutils.command.build_ext
 
Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).

 
Modules
       
distutils.log
os
re
string
sys

 
Classes
       
distutils.cmd.Command
build_ext

 
class build_ext(distutils.cmd.Command)
     Methods defined here:
build_extension(self, ext)
build_extensions(self)
check_extensions_list(self, extensions)
Ensure that the list of extensions (presumably provided as a
command option 'extensions') is valid, i.e. it is a list of
Extension objects.  We also support the old-style list of 2-tuples,
where the tuples are (ext_name, build_info), which are converted to
Extension instances here.
 
Raise DistutilsSetupError if the structure is invalid anywhere;
just returns otherwise.
finalize_options(self)
find_swig(self)
Return the name of the SWIG executable.  On Unix, this is
just "swig" -- it should be in the PATH.  Tries a bit harder on
Windows.
get_export_symbols(self, ext)
Return the list of symbols that a shared extension has to
export.  This either uses 'ext.export_symbols' or, if it's not
provided, "init" + module_name.  Only relevant on Windows, where
the .pyd file (DLL) must export the module "init" function.
get_ext_filename(self, ext_name)
Convert the name of an extension (eg. "foo.bar") into the name
of the file from which it will be loaded (eg. "foo/bar.so", or
"foo\bar.pyd").
get_ext_fullname(self, ext_name)
get_libraries(self, ext)
Return the list of libraries to link against when building a
shared extension.  On most platforms, this is just 'ext.libraries';
on Windows and OS/2, we add the Python library (eg. python20.dll).
get_outputs(self)
get_source_files(self)
initialize_options(self)
run(self)
swig_sources(self, sources)
Walk the list of source files in 'sources', looking for SWIG
interface (.i) files.  Run SWIG on all that are found, and
return a modified 'sources' list with SWIG source files replaced
by the generated C (or C++) files.

Data and other attributes defined here:
boolean_options = ['inplace', 'debug', 'force', 'swig-cpp']
description = 'build C/C++ extensions (compile/link to build directory)'
help_options = [('help-compiler', None, 'list available compilers', <function show_compilers>)]
sep_by = " (separated by ':')"
user_options = [('build-lib=', 'b', 'directory for compiled extension modules'), ('build-temp=', 't', 'directory for temporary files (build by-products)'), ('inplace', 'i', 'ignore build-lib and put compiled extensions int...urce directory alongside your pure Python modules'), ('include-dirs=', 'I', "list of directories to search for header files (separated by ':')"), ('define=', 'D', 'C preprocessor macros to define'), ('undef=', 'U', 'C preprocessor macros to undefine'), ('libraries=', 'l', 'external C libraries to link with'), ('library-dirs=', 'L', "directories to search for external C libraries (separated by ':')"), ('rpath=', 'R', 'directories to search for shared C libraries at runtime'), ('link-objects=', 'O', 'extra explicit link objects to include in the link'), ('debug', 'g', 'compile/link with debugging information'), ('force', 'f', 'forcibly build everything (ignore file timestamps)'), ('compiler=', 'c', 'specify the compiler type'), ('swig-cpp', None, 'make SWIG create C++ files (default is C)')]

Methods inherited from distutils.cmd.Command:
__getattr__(self, attr)
__init__(self, dist)
Create and initialize a new Command object.  Most importantly,
invokes the 'initialize_options()' method, which is the real
initializer and depends on the actual command being
instantiated.
announce(self, msg, level=1)
If the current verbosity level is of greater than or equal to
'level' print 'msg' to stdout.
copy_file(self, infile, outfile, preserve_mode=1, preserve_times=1, link=None, level=1)
Copy a file respecting verbose, dry-run and force flags.  (The
former two default to whatever is in the Distribution object, and
the latter defaults to false for commands that don't define it.)
copy_tree(self, infile, outfile, preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1)
Copy an entire directory tree respecting verbose, dry-run,
and force flags.
debug_print(self, msg)
Print 'msg' to stdout if the global DEBUG (taken from the
DISTUTILS_DEBUG environment variable) flag is true.
dump_options(self, header=None, indent='')
ensure_dirname(self, option)
ensure_filename(self, option)
Ensure that 'option' is the name of an existing file.
ensure_finalized(self)
ensure_string(self, option, default=None)
Ensure that 'option' is a string; if not defined, set it to
'default'.
ensure_string_list(self, option)
Ensure that 'option' is a list of strings.  If 'option' is
currently a string, we split it either on /,\s*/ or /\s+/, so
"foo bar baz", "foo,bar,baz", and "foo,   bar baz" all become
["foo", "bar", "baz"].
execute(self, func, args, msg=None, level=1)
get_command_name(self)
get_finalized_command(self, command, create=1)
Wrapper around Distribution's 'get_command_obj()' method: find
(create if necessary and 'create' is true) the command object for
'command', call its 'ensure_finalized()' method, and return the
finalized command object.
get_sub_commands(self)
Determine the sub-commands that are relevant in the current
distribution (ie., that need to be run).  This is based on the
'sub_commands' class attribute: each tuple in that list may include
a method that we call to determine if the subcommand needs to be
run for the current distribution.  Return a list of command names.
make_archive(self, base_name, format, root_dir=None, base_dir=None)
make_file(self, infiles, outfile, func, args, exec_msg=None, skip_msg=None, level=1)
Special case of 'execute()' for operations that process one or
more input files and generate one output file.  Works just like
'execute()', except the operation is skipped and a different
message printed if 'outfile' already exists and is newer than all
files listed in 'infiles'.  If the command defined 'self.force',
and it is true, then the command is unconditionally run -- does no
timestamp checks.
mkpath(self, name, mode=511)
move_file(self, src, dst, level=1)
Move a file respectin dry-run flag.
reinitialize_command(self, command, reinit_subcommands=0)
# XXX rename to 'get_reinitialized_command()'? (should do the
# same in dist.py, if so)
run_command(self, command)
Run some other command: uses the 'run_command()' method of
Distribution, which creates and finalizes the command object if
necessary and then invokes its 'run()' method.
set_undefined_options(self, src_cmd, *option_pairs)
Set the values of any "undefined" options from corresponding
option values in some other command object.  "Undefined" here means
"is None", which is the convention used to indicate that an option
has not been changed between 'initialize_options()' and
'finalize_options()'.  Usually called from 'finalize_options()' for
options that depend on some other command rather than another
option of the same command.  'src_cmd' is the other command from
which option values will be taken (a command object will be created
for it if necessary); the remaining arguments are
'(src_option,dst_option)' tuples which mean "take the value of
'src_option' in the 'src_cmd' command object, and copy it to
'dst_option' in the current command object".
spawn(self, cmd, search_path=1, level=1)
Spawn an external command respecting dry-run flag.
warn(self, msg)

Data and other attributes inherited from distutils.cmd.Command:
sub_commands = []

 
Functions
       
show_compilers()

 
Data
        StringTypes = (<type 'str'>, <type 'unicode'>)
__revision__ = '$Id: build_ext.py,v 1.91 2002/11/19 13:12:28 akuchling Exp $'
extension_name_re = <_sre.SRE_Pattern object>