Commit graph

2068 commits

Author SHA1 Message Date
Greg Ward
bb7baa793d Added the 'customize_compiler()' function, which plugs in the essential
information about building Python extensions that we discovered in
Python's makefile.  Currently only needed on Unix, so does nothing on
other systems.
2000-06-25 02:09:14 +00:00
Greg Ward
e5c62bf6e8 Introduced some bureaucracy for setting and tracking the executables
that a particular compiler system depends on.  This consists of the
'set_executables()' and 'set_executable()' methods, and a few lines in
the constructor that expect implementation classes to provide an
'executables' attribute, which we use to initialize several instance
attributes.  The default implementation is somewhat biased in favour of
a Unix/DOS "command-line" view of the world, but it shouldn't be too
hard to override this for operating systems with a more sophisticated
way of representing programs-to-execute.
2000-06-25 02:08:18 +00:00
Greg Ward
73076ff754 Got rid of direct dependence on the sysconfig module. Mainly, this
meant playing along with the new "dictionary of executables" scheme
added to CCompiler by adding the 'executables' class attribute, and
changing all the compile/link/etc. methods to use the new attributes
(which encapsulate both the program to run and its standard arguments,
so it was a *little* bit more than just changing some names).
2000-06-25 02:05:29 +00:00
Greg Ward
6a2a3dbec5 Added 'split_quoted()' function to deal with strings that are quoted in
Unix shell-like syntax (eg. in Python's Makefile, for one thing -- now that
I have this function, I'll probably allow quoted strings in config files too.
2000-06-24 20:40:02 +00:00
Greg Ward
c3a43b4f9b Docstring reformatting/tweaking binge.
Fixed a few comments.
2000-06-24 18:10:48 +00:00
Greg Ward
c3f364462f Print a warning if we install a data file right in install_dir.
Tweaked help text.
2000-06-24 17:36:24 +00:00
Greg Ward
fa2f4b6d8e Changed the default installation directory for data files (used by
the "install_data" command to the installation base, which is usually just
sys.prefix.  (Any setup scripts out there that specify data files will have
to set the installation directory, relative to the base, explicitly.)
2000-06-24 17:22:39 +00:00
Greg Ward
9aa668b03a Changed 'object_filenames()' to raise exception instead of silently carrying
on if it sees a filename with unknown extension.
2000-06-24 02:22:49 +00:00
Greg Ward
3459381e2a Changed so all the help-generating functions are defined, at module-level,
in the module of the command classes that have command-specific
help options.  This lets us keep the principle of lazily importing
the ccompiler module, and also gets away from defining non-methods
at class level.
2000-06-24 01:23:37 +00:00
Greg Ward
55fced3df9 More stylistic tweaks to the generic '--help-xxx' code. 2000-06-24 01:22:41 +00:00
Greg Ward
2ff7887270 Stylistic/formatting changes to Rene Liebscher's '--help-xxx' patch. 2000-06-24 00:23:20 +00:00
Greg Ward
ffcaf2dd72 Experimental, completely untested SWIG support. 2000-06-24 00:19:35 +00:00
Greg Ward
cb18557de2 Revised docstring so 'sources' isn't necessarily all C/C++ files (to
accomodate SWIG interface files, resource files, etc.).
2000-06-24 00:18:24 +00:00
Greg Ward
a392dcb211 Bastian Kleineidam: 'copy_file()' now returns the output filename, rather
than a boolean indicating whether it did the copy.
2000-06-23 01:42:40 +00:00
Greg Ward
7c6395a6a3 Implementation of the CCompiler class for Cygwin and Mingw32, ie. the two
major ports of GCC to Windows.  Contributed by Rene Liebscher, and quite
untested by me.  Apparently requires tweaking Python's installed config.h
and adding a libpython.a to build extensions.
2000-06-21 03:33:03 +00:00
Greg Ward
b2db0eb695 Fix inspired by Rene Liebscher: if setup script is newer than the
manifest, regenerate the manifest.
2000-06-21 03:29:57 +00:00
Greg Ward
f6451c46d7 Delete spurious comment. 2000-06-21 03:14:27 +00:00
Greg Ward
afc224beec Build the 'outfiles' list so 'get_outputs()' has something to return.
(Bug spotted and originally fixed by Rene Liebscher; fix redone by me.)
2000-06-21 03:13:51 +00:00
Greg Ward
e2383a6c77 Rene Liebscher: when fixing up directories with an alternate root, include
'install_headers'.
2000-06-21 03:09:02 +00:00
Greg Ward
59ac7091a7 Fleshed out and added a bunch of useful stuff, notably 'check_func()',
'try_cpp()', 'search_cpp()', and 'check_header()'.  This is enough that
the base config is actually useful for implementing a real config
command, specifically one for mxDateTime.
2000-06-21 03:00:50 +00:00
Greg Ward
71257c73f8 Oops, import 'grok_environment_error()'. 2000-06-21 02:59:14 +00:00
Greg Ward
3ff3b039ac Added 'preprocess()' method to CCompiler interface, and implemented
it in UnixCCompiler.  Still needs to be implemented in MSVCCompiler (and
whatever other compiler classes are lurking out there, waiting to be
checked in).
2000-06-21 02:58:46 +00:00
Greg Ward
b75c485f0b 'get_platform()' now just returns 'sys.platform' on all platforms. 2000-06-18 15:45:55 +00:00
Greg Ward
b081e180ac Pulled the MSVC++-specific hackery out to a new method, 'prelink_hook()',
and added (empty) 'precompile_hook()' for symmetry.  One can envision
a much more elaborate hook mechanism, but this looks like it'll do for
now.
2000-06-17 23:04:31 +00:00
Greg Ward
b248b7f848 Renamed PATH_CREATED to _path_created, on the grounds that it's private and
mutable, rather than public and constant.
2000-06-17 02:19:30 +00:00
Greg Ward
fcd4f87397 Changed 'remove_tree()' to use the new 'grok_environment_error()' function
instead of muddling through IOError and OSError exception objects itself.
2000-06-17 02:18:19 +00:00
Greg Ward
cf0e2dde6d Changed to use the new 'grok_environment_error()' function instead of
muddling through IOError and OSError exception objects right here.
2000-06-17 02:17:45 +00:00
Greg Ward
e905513be0 Added 'grok_environment_error()' function to deal with the various
forms that IOError and OSError can take (taken from core.py).
2000-06-17 02:16:46 +00:00
Greg Ward
039accfb2c Bastian Kleineidam: added 'remove_tree()' function. Needed so that
'remove_tree()' can cooperate with 'mkpath()' in the maintenance of
the PATH_CREATED cache: specifically, if a directory is created
with 'mkpath()', later removed with 'remove_tree()', and 'mkpath()'
is again requested to create it, then it would erroneously think
the directory already existed, because it was in the PATH_CREATED
cache.  The patch (slightly tweaked by me) fixes that.
2000-06-17 01:58:14 +00:00
Greg Ward
c566232c4d Fixed install directory for header files on Unix. 2000-06-17 01:34:45 +00:00
Greg Ward
d2412a35b1 Harry Henry Gebel: fix '_format_changelog()' so it doesn't bomb if
passed None.
2000-06-08 14:21:23 +00:00
Greg Ward
14c8d05a7a Include setup.cfg in the list of default files to distribute. 2000-06-08 01:22:48 +00:00
Greg Ward
ce15c6ce8d Moved the code that prunes the file list after reading the manifest
template into a new method 'prune_file_list()', called from
  'get_file_list()' rather than 'read_manifest()' -- this keeps
  'read_manifest()' more general.
Deleted the redundant call to 'exclude_pattern()' in 'make_distribution()'
  -- this had the same intention as 'prune_file_list()', but was incomplete
  (only pruned the release tree, not the build tree) and in the wrong
  place (the prune wouldn't be reflected in the manifest file).
2000-06-08 01:06:02 +00:00
Greg Ward
4a7319ca28 Renamed 'find_defaults()' to 'add_defaults()'.
Deleted old, commented-out 'exclude_pattern()' method.
2000-06-08 00:52:52 +00:00
Greg Ward
c3c8c6edbb Docstring addition binge. 2000-06-08 00:46:45 +00:00
Greg Ward
373dbfa723 Fixed so we print more than just the first line of help for options with
a short form and text that wraps onto multiple lines.
2000-06-08 00:35:33 +00:00
Greg Ward
e0c8c2fd16 Docstring reformatting binge. 2000-06-08 00:24:01 +00:00
Greg Ward
f1fe10376e Cosmetic tweaks to imports, the 'show_formats()' function, and the
'help_options' list; also added an editorial comment.
2000-06-08 00:14:18 +00:00
Greg Ward
f8b9e20d94 Made all debug output go through the 'debug_print()' method instead of
directly printing to stdout.  This was a bit more work than it sounds like
it should have been:
  * turned 'select_pattern()' and 'exclude_pattern()' from functions into
    methods, so they can refer to 'self' to access the method
  * commented out the *other* 'exclude_pattern()' method, which appears
    to be vestigial code that was never cleaned up when the
    'exclude_pattern()' function was created
  * changed the one use of the old 'exclude_pattern()' method to use the
    new 'exclude_pattern()' (same behaviour, slightly different args)
  * some code and docstring reformatting
  * and, of course, changed all the debugging prints to 'debug_print()' calls
Added/tweaked some regular ('self.announce()') output for better runtime
  feedback.
2000-06-08 00:08:14 +00:00
Greg Ward
ebec02a92c Added 'debug_print()' method (driven by DEBUG global from distutils.core). 2000-06-08 00:02:36 +00:00
Greg Ward
9d17a7ad6d Patch from Rene Liebscher: this adds "--help-foo" options to list the
values that "--foo" can take for various commands: eg. what formats for
"sdist" and "bdist", what compilers for "build_ext" and "build_clib".

I have *not* reviewed this patch; I'm checking it in as-is because it also
fixes a paper-bag-over-head bug in bdist.py, and because I won't have
time to review it properly for several days: so someone else can
test it for me, instead!
2000-06-07 03:00:06 +00:00
Greg Ward
1169687692 Always look for the system config file in the Distutils module directory,
and call it "distutils.cfg" instead of "pydistutils.cfg" (personal
config files are still ".pydistutils.cfg" or "pydistutils.cfg", though).
2000-06-07 02:29:03 +00:00
Greg Ward
acf3f6a700 Patch from Rene Liebscher:
Look for personal config file in /home/greg on Windows, too: users will have
to set /home/greg to use this, so it's not something that many people will
use.  But if python-dev comes up with the "right way" to divine a
home directory on Windows, we can use that to set /home/greg and poof! --
personal Distutils config files on Windows.
2000-06-07 02:26:19 +00:00
Greg Ward
28a5f44cca First crack at the Distutils "config" command. Unlike other commands, this
one doesn't *do* anything by default; it's just there as a conduit for data
(eg. include dirs, libraries) from the user to the "build" commands.
However, it provides a couple of Autoconf-ish methods ('try_compile()',
'try_link()', 'try_run()') that derived, per-distribution "config" commands
can use to poke around the target system and see what's available.

Initial experimenst with mxDateTime indicate that higher-level methods are
necessary: analogs of Autoconf's AC_CHECK_HEADER, AC_CHECK_LIB will be
needed too (and that's just to probe the C/C++ system: how to probe the
Python system is wide open, and someday we'll have to worry about probing a
Java system too).
2000-06-06 02:57:07 +00:00
Greg Ward
43955c9a02 Fix 'reinitialize_command()' so it resets the 'have_run' flag for the
command being reinitialized to false.
2000-06-06 02:52:36 +00:00
Greg Ward
e18dd8dd8f Support for multiple distribution formats in one run. 2000-06-06 02:51:38 +00:00
Greg Ward
ec21cc60db 'get_outputs()' now returns an empty list instead of None. 2000-06-06 02:18:13 +00:00
Greg Ward
7ce6d074aa Fixed syntax error.
Half-fixed RPM 2 compatibility:added 'rpm_base' option, which must be set
  (to eg. /usr/src/redhat on a stock Red Hat system) if rpm2_mode is on.
  Still not quite working, though.
2000-06-04 15:30:35 +00:00
Greg Ward
62d5a57b05 Use 'ensure_string_list()' for 'formats' option, so that it can be
spelled sensibly in a config file.
2000-06-04 15:12:51 +00:00
Greg Ward
a68c93ac89 Patch from Harry Henry Gebel:
Fills in question marks in help

Reads scripts in from files rather than strings

Adds RPM 2 compatibility mode (untested). Use of this mode requires that
--bdist-base be specified because bdist_rpm has no way of detecting where
RPM wants to find spec files and source files. An unmodified RedHat 5.0
system would require '--bdist-base=/usr/src/RedHat'. (You would also have
to be root.) If the rpmrc file has been modified to allow RPMs to be built
by normal users then --build-base would need to be changed accordingly.

Formats the changelog.

GPW: tweaked formatting, added some editorial comments.
2000-06-04 15:00:34 +00:00