Commit Graph

684 Commits

Author SHA1 Message Date
Greg Ward dc9fe8a7ba Typo fix. 2000-08-02 01:49:40 +00:00
Greg Ward 6f628bb877 Added 'wininst' to the 'format_commands' list, so it's included in
the --help-formats output.  Also moved that list up so it's more obvious
when adding formats.
2000-08-02 01:44:44 +00:00
Greg Ward 9dddbb4009 Added 'execute()' method, a thin wrapper around 'util.execute() (just like
the one in cmd.py).
2000-08-02 01:38:20 +00:00
Greg Ward d7faa81616 Replaced 'execute()' method with a thin wrapper around 'util.execute()'. 2000-08-02 01:37:53 +00:00
Greg Ward 1c16ac360a Added the 'execute()' function (moved here from cmd.py with minor tweakage). 2000-08-02 01:37:30 +00:00
Greg Ward 90c74cc4da Rene Liebscher: fix 'skipping byte-compilation' message for grammatical
consistency.
2000-08-02 01:34:18 +00:00
Greg Ward bf5c70973f Latest version from Rene Liebscher; major changes:
- added big comment describing possible problems
  - look for and react to versions of gcc, ld, and dlltool; mainly
    this is done by the 'get_versions()' function and the CygwinCCompiler
    and Mingw32CCompiler constructors
  - move 'check_config_h()' to end of file and defer calling it until
    we need to (ie. in the CygwinCCompiler constructor)
  - lots of changes in 'link_shared_object()' -- mostly seems to be
    library and DLL stuff, but I don't follow it entirely
2000-08-02 01:31:56 +00:00
Greg Ward 1d526dd3b3 Rene Liebscher: deleted unneeded hard-coded assignments of CC, RANLIB, etc.
in '_init_nt()' (they were kludges for CygwinCCompiler and no longer needed).
2000-08-02 01:09:11 +00:00
Greg Ward 88608caff2 Rene Liebscher: factor 'find_executable()' out of '_spawn_nt()'. 2000-08-02 01:08:02 +00:00
Greg Ward c58c517741 Patch from Rene Liebscher. Some ugly changes, but supposedly this makes
it so BCPPCompiler actually works, so I'm provisionally accepting it
-- ugly and working is better than not working!  Major changes:
  - normalize paths (apparently BC++ doesn't like slashes)
  - overhauled how we search for and specify libraries on the linker
    command-line
  - hacked up 'find_library_file()' so it knows about "debug" library
    naming convention as well as "bcpp_xxx.lib" -- the question is,
    is this a well-established and sensible convention?
Also:
  - change to use 'util.write_file()' to write the .def file
2000-08-02 01:03:23 +00:00
Greg Ward bb56190422 Ditched 'abspath()' -- don't need 1.5.1 compatability hacks anymore. 2000-08-02 00:37:32 +00:00
Greg Ward c6a18a5d65 Removed 'export_symbol_file'.
'export_symbols' can be None (not sure this is a good idea: it's inconsistent
  with every other instance attribute of Extension).
2000-08-02 00:04:13 +00:00
Greg Ward 04c90fc475 Ditched some debugging prints. 2000-08-02 00:01:56 +00:00
Greg Ward 159eb92239 Patch from Rene Liebscher: generate an /IMPLIB: option to ensure that
the linker leaves the (temporary) .lib file in the temporary dir.  (Moved
from 'msvc_prelink_hack()' method in build_ext.py.)
2000-08-02 00:00:30 +00:00
Greg Ward 0419a4ffba Patch from Rene Liebscher, tweaked by me:
- 'export_symbol_file' (and corresponding 'def_file' in the old
    "build info" dict) are gone; warn if we see 'def_file' in the
    dict
  - the MSVC "pre-link hack" is gone -- all that stuff is now handled
    elsewhere (eg. by using 'export_symbols', etc.)
  - add 'get_export_symbols()' and 'get_libraries()' methods -- needed
    because on Windows, both of those things are a tad more complicated
    than fetching them from the Extension instance
2000-08-01 23:54:29 +00:00
Greg Ward 6b24dffd13 Catch syntax errors from processing template lines and turn them into
mere warnings.
Call 'findall()' on our FileList object before we start using it seriously.
2000-07-30 01:47:16 +00:00
Greg Ward 979db976a3 Added list-like methods: 'append()', 'extend()', 'sort()'.
Added 'remove_duplicates()'.
Simplified constructor: no longer take 'files' or 'allfiles' as args,
  and no longer have 'dir' attribute at all.
Added 'set_allfiles()' and 'findall()' so the client does have a
  way to set the list of all files.
Changed 'include_pattern()' to use the 'findall()' method instead of
  the external function.  (Of course, the method is just a trivial
  wrapper around the function.)
2000-07-30 01:45:42 +00:00
Greg Ward 23266fe5cf Replaced 'self.files' with 'self.filelist': now we carry around a FileList
instance instead of a list of filenames.  Simplifies the "sdist" command
only a bit, but should allow greater simplification of FileList.
2000-07-30 01:30:31 +00:00
Greg Ward 4571ac15f7 The other half of Rene Liebscher's patch to add the Template class,
which I renamed to FileList: remove all the file-list-generation code from
the sdist command and adapt it to use the new FileList class instead.
2000-07-30 01:05:02 +00:00
Greg Ward d5dcc174b0 Typo fix. 2000-07-30 01:04:22 +00:00
Greg Ward 58bff53320 Added DistutilsTemplateError. 2000-07-30 01:03:31 +00:00
Greg Ward c019e2c7a8 Ditched the unused 'recursive_exclude_pattern()' method. 2000-07-30 00:37:04 +00:00
Greg Ward 0f341855ac Renamed 'select_pattern()' to 'include_pattern()'.
Other cosmetic/doc/comment tweaks.
2000-07-30 00:36:25 +00:00
Greg Ward 7b3d56c85c Renamed 'process_line()' to 'process_template_line()', and factored out
'_parse_template_line()'.
2000-07-30 00:21:36 +00:00
Greg Ward c98927a059 Added class docstring and ditched inappropriate class attrs.
Indentation/whitspace fixes.
2000-07-30 00:08:13 +00:00
Greg Ward adc1172064 Provides the FileList class for building a list of filenames by exploring
the filesystem, and filtering the list by applying various patterns.

Initial revision (almost) as supplied in a patch by Rene Liebscher; I
just renamed the class from Template to FileList, and the module
accordingly.
2000-07-30 00:04:17 +00:00
Greg Ward ae0965eb23 Bump version to 0.9.1pre. 2000-07-27 02:17:40 +00:00
Greg Ward 612eb9f58f Fixed a grab-bag of typos spotted by Rob Hooft. 2000-07-27 02:13:20 +00:00
Greg Ward aa5372caa7 Remove unused 'search_dir()' method.
Comment tweak.
2000-07-27 01:58:45 +00:00
Greg Ward 7499847c53 Fix to call 'library_filename()' instead of the non-existent
'shared_library_filename()'.
2000-07-27 01:23:19 +00:00
Greg Ward 53c1bc3f9b Typo fix from David Ascher. 2000-07-27 01:21:54 +00:00
Andrew M. Kuchling 23adc9f37b Typo fix from Bastian Kleineidam 2000-07-14 13:35:07 +00:00
Jeremy Hylton 65d6edb478 fix inconsistent use of tabs and spaces 2000-07-07 20:45:21 +00:00
Greg Ward fd9f168bcf Fixed so the ZIP file (which is bundled into an executable) goes in the
temporary directory ('bdist_base').
Added --dist-dir option to control where the executable is put.
2000-07-05 03:08:55 +00:00
Greg Ward c4eb84accb Added --dist-dir option to control where output archive(s) go. 2000-07-05 03:07:37 +00:00
Greg Ward 040dc0b691 Added the --dist-dir option that the "bdist_*" will use to control where
they place their output files.
2000-07-05 03:07:18 +00:00
Greg Ward c0614105aa Added the --dist-dir option to control where the archive(s) are put;
defaults to 'dist' (ie. no longer in the distribution root).
2000-07-05 03:06:46 +00:00
Greg Ward 1b5ec76190 Simplify the registry-module-finding code: _winreg or win32api/win32con.
This'll work fine with 2.0 or 1.5.2, but is less than ideal for
1.6a1/a2.  But the code to accomodate 1.6a1/a2 was released with
Distutils 0.9, so it can go away now.
2000-06-30 19:37:59 +00:00
Greg Ward 0e8c518a62 Bump version to 0.9. 2000-06-30 02:54:36 +00:00
Greg Ward 5d6ae76c09 Allow 2.0 on the list of target versions. NB. this isn't enough: the GUI part,
misc/install.c, still needs to be updated, and it looks like a non-trivial
change.
2000-06-29 23:50:19 +00:00
Greg Ward 22e1bf7da5 Don't try to guess the name of a .def file -- if one is supplied, use it,
otherwise just generate an '/export:' option.
2000-06-29 23:09:20 +00:00
Greg Ward 83c3870e2b On second thought, first try for _winreg, and then winreg. Only if both
fail do we try for win32api/win32con.  If *those* both fail, then we don't
have registry access.  Phew!
2000-06-29 23:04:59 +00:00
Greg Ward cd079c4c28 Changed to use _winreg module instead of winreg. 2000-06-29 22:59:10 +00:00
Greg Ward f34506a3d4 Cleaned up and reformatted by Rene Liebscher.
More reformatting by me.
Also added some editorial comments.
2000-06-29 22:57:55 +00:00
Greg Ward df112a76a9 Fixed so 'get_source_files()' calls 'check_extension_list()' -- that way,
we can run "sdist" on a distribution with old-style extension structures
even if we haven't built it yet.  Bug spotted by Harry Gebel.
2000-06-29 02:16:24 +00:00
Greg Ward 499822d959 Fixed 'findall()' so it only returns regular files -- no directories.
Changed 'prune_file_list()' so it also prunes out RCS and CVS directories.
Added 'is_regex' parameter to 'select_pattern()', 'exclude_pattern()',
  and 'translate_pattern()', so that you don't have to be constrained
  by the simple shell-glob-like pattern language, and can escape into
  full-blown regexes when needed.  Currently this is only available
  in code -- it's not exposed in the manifest template mini-language.
Added 'prune' option (controlled by --prune and --no-prune) to determine
  whether we call 'prune_file_list()' or not -- it's true by default.
Fixed 'negative_opt' -- it was misnamed and not being seen by dist.py.
Added --no-defaults to the option table, so it's seen by FancyGetopt.
2000-06-29 02:06:29 +00:00
Jeremy Hylton a05e293a21 typos fixed by Rob Hooft 2000-06-28 14:48:01 +00:00
Greg Ward cc623a2574 Lyle Johnson: pass in temp directory as 'build_temp' argument when calling
'link_shared_object()'.
2000-06-28 01:29:37 +00:00
Greg Ward bfc79d644a Lyle Johnson: added 'build_temp' parameter to 'link_shared_{lib,object}()'
methods (but not 'link_executable()', hmmm).  Currently only used by
BCPPCompiler; it's a dummy parameter for UnixCCompiler and MSVCCompiler.

Also added 'bcpp' to compiler table used by 'new_compiler()'.
2000-06-28 01:29:09 +00:00
Greg Ward 7d9c705b23 Typo fix. 2000-06-28 01:25:27 +00:00
Greg Ward fe9b818b7d Lyle Johnson's interface to Borland C++, with a few editorial comments by me.
Two major points:
  * lots of overlap with MSVCCompiler; the common code really should be
    factored out into a base class, say WindowsCCompiler
  * it doesn't work: weird problem spawning the linker (see comment for
    details)
2000-06-28 01:20:35 +00:00
Greg Ward b0b98a5ee5 Fixed to use 'reinitialize_command()' to fetch "install" and "install_lib"
command objects.
Various formatting tweaks, typo fixes in comments.
2000-06-28 00:56:20 +00:00
Greg Ward edc6a519dc Fixed to use 'reinitialize_command()' to fetch the "install" command object. 2000-06-28 00:36:40 +00:00
Greg Ward b231e1ae18 Oops, only do that AIX hack on AIX. 2000-06-27 01:59:43 +00:00
Greg Ward 4f880280c2 Fixed LDSHARED for AIX, based on a patch by Rene Liebscher.
Ditched my old code that fixed relative paths in the Makefile -- didn't work,
  doomed to failure, etc.
2000-06-27 01:59:06 +00:00
Greg Ward b593793fce A-ha! Read Thomas' patch a little more carefully and figured it out:
the 'implib_dir' attribute is back (only on NT, of course).
2000-06-27 01:43:24 +00:00
Greg Ward f3bd747c4e Thomas Heller: added --swig-cpp option and fixed silly typos in SWIG support.
Also supposedly made some change to where .lib files wind up under MSVC++,
  but I don't understand how to code is doing what Thomas says it's
  doing.
2000-06-27 01:37:10 +00:00
Greg Ward 27199e8029 Thomas Heller's "bdist_wininst" command (unreviewed, untested). 2000-06-27 01:24:38 +00:00
Greg Ward 1f9b73b575 Infrastructure support for the "bdist_wininst" command. 2000-06-27 01:24:07 +00:00
Greg Ward 855dab9987 Added 'include_dirs' parameters all over the place.
Added 'check_lib()', which provides a subset of the functionality of
  'check_func()' with a simpler interface and implementation.
2000-06-27 01:21:22 +00:00
Greg Ward 992c8f9dab Define the 'executables' class attribute so the CCompiler constructor
doesn't blow up.  We don't currently use the 'set_executables()' bureaucracy,
although it would be nice to do so for consistency with UnixCCompiler.
2000-06-25 02:31:16 +00:00
Greg Ward e401e15d18 Removed some debugging code that slipped into the last checkin.
Ensure that 'extra_args' (whether compile or link args) is never None.
2000-06-25 02:30:15 +00:00
Greg Ward f46a688e84 Fixed the "pre-link hook" so it actually works, mainly by renaming it
to 'msvc_prelink_hack()', adding the parameters that it actually needs,
and only calling it for MSVC compiler objects.  Generally gave up on the
idea of a general "hook" mechanism: deleted the empty 'precompile_hook()'.
2000-06-25 02:23:11 +00:00
Greg Ward 68ff615c79 Added PreprocessError and UnknownFileError (both used by CCompiler). 2000-06-25 02:12:14 +00:00
Greg Ward eab969d700 Call 'customize_compiler()' after getting CCompiler object. 2000-06-25 02:10:58 +00:00
Greg Ward 5ca84b83c7 Fixed a few silly bugs in my SWIG support code. (Hey, I said it was
experimental and untested.)
Call 'customize_compiler()' after getting CCompiler object.
2000-06-25 02:10:46 +00:00
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
Greg Ward 31413a7ba2 Added the 'ensure_*' methods from bdist_rpm; refactored 'ensure_filename()'
and added 'ensure_dirname()'.
2000-06-04 14:21:28 +00:00
Greg Ward 4227dc1b15 Removed the 'ensure_*' methods -- they're just too handy too keep in one
command class, so they're now in the Command base class.
2000-06-04 14:20:57 +00:00
Greg Ward 6f980b5936 Renamed 'modules' option to 'py_modules', for consistency with Distribution
(and in order to generate a more sensible error message cleanly).
2000-06-04 13:42:52 +00:00
Greg Ward c4c06af575 Patch from Harry Henry Gebel: fixes a bit of code that slipped by my
overhaul last night.
2000-06-03 01:03:55 +00:00
Greg Ward 3985151642 Catch DistutilSetupError from the Distribution constructor. 2000-06-03 01:02:06 +00:00
Greg Ward 82d71cacb0 Added a bunch of new globals in '_init_mac()' -- these will be needed to
support the forthcoming Cygwin/Mingw32 GCC-on-Windows patch.
Standardized CVS id line.
2000-06-03 00:44:30 +00:00
Greg Ward 0f216fdda9 Bumped version number to 0.9pre (there will be a couple of code snapshots
before the real release, but I want to make it clear that a major new
release is on the way).
2000-06-02 02:23:42 +00:00
Greg Ward efbd071016 Only print debugging output if DEBUG true. 2000-06-02 02:01:51 +00:00
Greg Ward 2bd3f4250d Only print debugging output if DEBUG true (and deleted some of the more
extraneous debug prints).
2000-06-02 01:59:33 +00:00
Greg Ward f7a5507485 Use Distribution method 'dump_option_dicts()' for debugging output, and only
do so if DEBUG is true.
2000-06-02 01:55:36 +00:00
Greg Ward 673925842e Ditched the obsolete '_get_package_data()' method and its
'_check_*()' helpers.
2000-06-02 01:52:04 +00:00
Greg Ward 1259392b38 Fairly massive overhaul to support getting RPM inputs (extra meta-data,
prep/build/etc. scripts, doc files, dependency info) from a config file
rather than the dedicated "package_info" file.  (The idea is that
developers will provide RPM-specific info in the "[bdist_rpm]" section of
setup.cfg, but of course it could also be supplied in the other config
files, on the command line, or in the setup script -- or any mix of the
above.)

Major changes:
  * added a boatload of options to 'user_options' and
    'initialize_options()': 'distribution_name', 'group', 'release', ...
  * added 'finalize_package_data()', which takes the place of
    '_get_package_data()' -- except it's called from 'finalize_options()',
    not 'run()', so we have everything figured out before we actually run
    the command
  * added 'ensure_string()', 'ensure_string_list()', 'ensure_filename()';
    these take the place of '_check_string()' and friends.  (These actually
    look like really useful type-checking methods that could come in handy
    all over the Distutils; should consider moving them up to Command and
    using them in other command classes' 'finalize_options()' method for
    error-checking).
  * various cleanup, commentary, and adaptation to the new way of
    storing RPM info in '_make_spec_file()'
2000-06-02 01:49:58 +00:00
Greg Ward 8ff5a3fd92 Reformatted and updated many docstrings. 2000-06-02 00:44:53 +00:00
Greg Ward d87eb73f32 Remember the list of archive files created in 'make_distribution()'.
Added 'get_archive_files()' so outsiders can get their hands on that list.
2000-06-01 01:10:56 +00:00
Greg Ward 282c7a0230 Oops, 'reinitialize_command()' forgot to return the command object if didn't
need to be reinitialized -- fixed.
2000-06-01 01:09:47 +00:00
Greg Ward 308acf0bfa Added 'reinitialize_command()' method -- delegated to Distribution instance.
Ensure 'make_archive()' method returns archive filename.
2000-06-01 01:08:52 +00:00
Greg Ward 879096137d Ensure that 'make_archive()' returns the name of the new archive file. 2000-06-01 01:07:55 +00:00
Greg Ward 01a4694dce More tweaking to make this command act like other Distutils commands:
* added "--bdist-base" option to parameterize where we build
    the RPM (comes from "bdist" by default: "build/bdist.<plat>")
  * simplified/cleaned up some code in 'run()' in the process of
    removing (most) hard-coded directory names
  * if "--spec-only", drop spec file in "dist" rather than "redhat"
    (directory name still hard-coded, though)
  * use 'reinitialize_command()' to fetch the "sdist" object to
    tweak before running "sdist" command
  * use 'self.copy_file()' method rather than 'copy_file()' function
  * cosmetic tweaks to comments, error messages
2000-06-01 00:40:25 +00:00
Greg Ward 69413da749 Regularize options a bit:
* help strings start with lowercase
  * added affirmative version of '--no-clean' and '--no-rpm-opt-flags',
    which are the default (thus the attributes that correspond to
    the options are now 'clean' and 'use_rpm_opt_flags')
2000-05-31 23:56:45 +00:00
Greg Ward d8dfb4c4b8 Renamed 'native_path()' to 'convert_path()'.
Also changed it so it doesn't barf if the path is already in native format
  (ie. contains os.sep).
2000-05-31 02:32:10 +00:00
Greg Ward 65bc20c23e Normalize paths before writing them to a zipfile. 2000-05-31 02:17:19 +00:00
Greg Ward 4b46ef9a4f Fixed 'change_root() to work at all on Windows, and to work correctly on Unix. 2000-05-31 02:14:32 +00:00
Greg Ward a76bbd4566 Import the new Extension class, so setup scripts can
"from distutils.core import" it.
2000-05-31 01:11:20 +00:00
Greg Ward 5322f008c5 Overhauled to expect 'self.extensions' (taken from 'ext_modules' in the
setup script) to be a list of Extension instances, rather than a list of of
(ext_name, build_info) tuples.  This is mostly a simplification, but
'check_extension_list()' got a lot more complicated because of the need to
convert the old-style tuples to Extension instances.

Temporarily dropped support for defining/undefining macros in the
'extensions' list -- I want to change the interface, but haven't yet made
the required changes in CCompiler and friends to support this nicely.

Also neatened up the code that merges 'extra_compile_flags' and the CFLAGS
environment variable.
2000-05-31 01:09:52 +00:00
Greg Ward 3ca54bc846 Provides the Extension class, a nicer way to describe C/C++ extensions than
the old (ext_name, build_info) tuple.
2000-05-31 01:05:35 +00:00
Greg Ward 98150114e0 Cosmetic tweak. 2000-05-30 02:04:54 +00:00
Greg Ward 66ac93e6f7 Catch CCompiler exceptions in 'setup()'. 2000-05-30 02:04:29 +00:00
Greg Ward 3add77f611 Import exceptions from errors.py, not ccompiler.py. 2000-05-30 02:02:49 +00:00
Greg Ward 39804cbc60 Removed exceptions -- now in errors.py to avoid expensive import of ccompiler. 2000-05-30 02:02:48 +00:00
Greg Ward c1cb0493f8 Moved the CCompiler exceptions here, to avoid having to import ccompiler.py
just to get a little exception class.
No more string-based exceptions.
2000-05-30 02:02:14 +00:00
Greg Ward d151711e66 Changed to catch compile/link failures and raise CompileError, LibError,
or LinkError (exception classes defined in ccompiler.py).
2000-05-30 01:56:44 +00:00
Greg Ward adda156a13 Added 'dump_options()' for debugging output. 2000-05-28 23:54:00 +00:00
Greg Ward c32d9a6952 Factored '_set_command_options()' out of 'get_command_obj()'.
Added 'reinitialize_command()' -- lets us "push" option values in
  a controlled, safe way; this is a small change to the code, but
  a big change to the Distutils philosophy of passing option values
  around.  The preferred mode is still definitely to "pull" options
  from another command (eg. "install" fetches the base build directory
  from "build"), but it is now feasible to "push" options onto another
  command, when you know what's best for it.  One possible application
  will be a "config" command, which pokes around the system and pushes
  values (eg. include and library directories) onto the "build" command.
Added 'dump_option_dicts()' method (for debugging output).
2000-05-28 23:53:06 +00:00
Greg Ward 2129032bc6 Changed order so 'clean' is right after the 'build' commands. 2000-05-28 23:49:03 +00:00
Greg Ward fbb04c448c Only print debugging output if DEBUG (imported from distutils.core) is true. 2000-05-28 23:47:31 +00:00
Greg Ward 0eeebfda98 Moved warnings out of 'finalize_options()' into 'run()'.
Added a warning for 'bdist_base' directory.
2000-05-28 23:47:00 +00:00
Greg Ward 4fb29e55f8 Some far-reaching naming changes:
* Command method 'find_peer()' -> 'get_finalized_command()'
  * Command method 'run_peer()' -> 'run_command()'
Also deleted the 'get_command_option()' method from Command, and
  fixed the one place where it was used (in "bdist_dumb").
2000-05-27 17:27:23 +00:00
Greg Ward e5b267ccb6 Patch from Andrew Kuchling: prune out the build and source distribution
directories after all is said and done, so we don't accidentally include
those files in the source distribution.

(This is the quick and easy way to fix this; Andrew says: "Changing
findall() looked like it was going to be messy, so I tried this instead.
The only problem is that redundant directory traversals are being done,
walking through build/ only to throw out all the files found at the end.").
2000-05-27 03:03:23 +00:00
Greg Ward 51def7d667 Support for the "install_headers" command: distribution option 'headers'
and method 'has_headers()'.
2000-05-27 01:36:14 +00:00
Greg Ward 2d238c56a6 'mkpath()' now detects non-string 'name' arguments -- this is a fairly common
bug when adding new code, so I thought I'd make it blow up earlier
than deep in posix.py.
2000-05-27 01:35:27 +00:00
Greg Ward 46380906d1 Tweaked description, help text. 2000-05-27 01:33:49 +00:00
Greg Ward cae5a1f444 Support for the "install_headers" command:
* 'headers' entry added to all the install schemes
  * '--install-headers' option added
  * 'install_headers' added to 'sub_commands'
  * added 'dist_name' to configuration variables (along with a few
    others that seem handy: 'dist_version', 'dist_fullname', and
    'py_version'
  * in 'finalize_unix()', make sure 'install_headers' defined if
    user specified 'install_base' and/or 'install_platbase'
  * added 'has_headers()'
  * a few other small changes
2000-05-27 01:33:12 +00:00
Greg Ward aa0e77115f Added 'install_headers' command to install C/C++ header files. 2000-05-27 01:25:16 +00:00
Greg Ward 521340034e Rene Liebscher: check if the extension file (.so or .pyd) is
up-to-date with respect to the source files; that way, we
don't needlessly rebuild just because object files go away.
2000-05-26 01:31:53 +00:00
Greg Ward 0e48cfd2c5 Factored out code for extracting-or-creating one of the option
dictionaries in 'self.command_options' to 'get_option_dict()'.
Simplified code in 'parse_config_files()' and 'parse_command_line()'
  accordingly.
Fixed code in constructor that processes the 'options' dictionary
  from the setup script so it actually works: uses the new
  'self.command_options' dictionary rather than creating command
  objects and calling 'set_option()' on them.
2000-05-26 01:00:15 +00:00
Greg Ward 37af1c3807 Added the DEBUG global (set from the DISTUTILS_DEBUG environment variable).
Changed the exception-handling code in 'setup()' to re-raise exceptions
  if DEBUG is true.
2000-05-26 00:54:52 +00:00
Greg Ward 8bbba17d38 Fixed a couple of long-hidden bugs (amazing what you find when you
attempt to verify the bold assertions in the documentation):
  * entries for the "root package" in 'package_dir' didn't work --
    fixed by improving the fall-through code in 'get_package_dir()'
  * __init__.py files weren't installed when modules-in-packages
    were listed individually (ie. in 'py_modules' in the setup script);
    fixed by making 'check_package()' return the name of the __init__
    file if it exists, and making 'find_modules()' add an entry to
    the module list for __init__ if applicable
2000-05-26 00:44:06 +00:00
Greg Ward fe55e86a0a Take the basename of the script before concatenating it with the build dir. 2000-05-25 20:05:52 +00:00
Greg Ward 101de37907 Fix to use 'change_root()' rather than directly mangling path. 2000-05-25 02:14:26 +00:00
Greg Ward 80fa55e71f Improvements to Bastian's build_scripts command:
* 'first_line_re' loosened up
  * command description improved
  * replaced '_copy_files()' and '_adjust_files()' with one method
    that does everything, 'copy_scripts()' -- this should be more
    efficient than Bastian's version, should behave better in
    dry-run mode, and does timestamp dependency-checking
2000-05-25 02:03:56 +00:00
Greg Ward 029e302786 Added comment to remind us of the (temporary?) obsolescense of the
'install_misc' class.
2000-05-25 01:26:23 +00:00
Greg Ward e3d17526b2 Use Distribution's 'has_scripts()' method instead of directly accessing
its 'scripts' attribute.
2000-05-25 01:21:54 +00:00
Greg Ward a4efe65b43 Bastian Kleineidam: the "build_scripts" command. 2000-05-25 01:20:15 +00:00
Greg Ward 8d5881a2ba Bastian Kleineidam: the "build_scripts" command and changes
necessary to support it.

Details:
  - build command additionally calls build_scripts
  - build_scripts builds your scripts in 'build/scripts' and adjusts the
    first line if it begins with "#!" and ends with "python", optionally
    ending with commandline options (like -O, -t ...).  Adjusting means we
    write the current path to the Python interpreter in the first line.
  - install_scripts copies the scripts to the install_scripts dir
  - install_data copies your data_files in install_data. You can
    supply individual directories for your data_files:

    data_files = ['doc/info.txt', # copy this file in install_scripts dir
      ('testdata', ['a.dat', 'b.dat']), # copy these files in
                                        # install_scripts/testdata
      ('/etc', ['packagerc']),    # copy this in /etc. When --root is
                                  # given, copy this in rootdir/etc
    ]

    So you can use the --root option with absolute data paths.
2000-05-25 01:19:18 +00:00
Greg Ward fcd974efbb Normalized all the end-of-class lines. 2000-05-25 01:10:04 +00:00
Greg Ward a570c05997 Catch failure to open installed Makefile, and report it as a
DistutilsPlatformError: "invalid Python installation".  (This will
happen on Red Hat-ish systems where the python-devel package is not
installed.)
2000-05-23 23:14:00 +00:00
Greg Ward 40313cfe6e Fix 'get_command_obj()' so it checks if a command object has an attribute
before setting it -- this will catch bad options (eg. typos) in config files.
2000-05-23 04:11:14 +00:00
Greg Ward 77751c0b49 Added some debuging output (actually moved here from dist.py) --
dump the Distribution's 'command_options' dict after parsing config files,
and then after parsing the command line.
2000-05-23 03:54:16 +00:00
Greg Ward 981f7368f6 Don't take advantage of OptionDummy's new "auto-initialization" feature
after all -- turns out it doesn't buy us much after all...
2000-05-23 03:53:10 +00:00
Greg Ward 474607777d Fixed so options from config files and command lines actually work:
* 'get_command_obj()' now sets command attributes based on
    the 'command_options' dictionary
  * some typos fixed
  * kludged 'parse_config_files()' to re-initialize the ConfigParser
    instance after each file, so we know for sure which config
    file each option comes form
  * added lots of handy debugging output
2000-05-23 03:47:35 +00:00
Greg Ward d7ad5039cb Fixed command description. 2000-05-23 01:55:16 +00:00
Greg Ward 5edcd90f8c Use 'get_command_obj()' instead of 'find_command_obj()'. 2000-05-23 01:55:01 +00:00
Greg Ward 3c67b1dd08 OptionDummy now has a constructor that takes a list of options: each string
in the option list is an attribute of the OptionDummy that will be
initialized to None.
2000-05-23 01:44:20 +00:00
Greg Ward 732745bb70 Tweaked usage message. 2000-05-23 01:43:08 +00:00
Greg Ward d5d8a9982b Marching towards full support of config files: thoroughly overhauled the
command-line parsing code, splitting it up into several methods (new
methods: '_parse_command_opts()', '_show_help()') and making it put options
into the 'command_options' dictionary rather than instantiating command
objects and putting them there.

Lots of other little changes:
  * merged 'find_command_class()' and 'create_command_obj()' and
    called the result 'get_command_class()'
  * renamed 'find_command_obj()' to 'get_command_obj()', and added
    command object creation and maintenance of the command object cache to
    its responsibilities (taken over from 'create_command_obj()')
  * parse config files one-at-a-time, so we can keep track of the
    filename for later error reporting
  * tweaked some help messages
  * fixed up many obsolete comments and docstrings
2000-05-23 01:42:17 +00:00
Greg Ward 4355093f94 Tweaked output of 'copy_file()': if copying to a new name, show the whole
destination path, otherwise show just the directory.
2000-05-20 16:05:34 +00:00
Greg Ward a4adafd55b Changed the semantics of the 'sub_commands' list: instead of function
objects, it now has method names.
Added three methods, 'has_lib()', 'has_scripts()', and 'has_data()'
  to determine if we need to run each of the three possible sub-commands.
Added 'get_sub_commands()' to take care of finding the methods named
  in 'sub_commands', running them, and interpreting the results to
  build a list of sub-commands that actually have to be run.
2000-05-20 15:17:09 +00:00
Greg Ward f355d473fa Check if the claimed build directory doesn't exist, and warn that we don't
have any Python modules to install (rather than bomb when we try to copy
a non-existent directory).
2000-05-20 15:08:57 +00:00
Greg Ward 44a61bbb66 Added 'has_scripts()', 'has_data_files()' methods. 2000-05-20 15:06:48 +00:00
Greg Ward 36c36fec7c Added missing import. 2000-05-20 14:07:59 +00:00
Greg Ward f7edea749d Lyle Johnson: added stubs for the four miscellaneous methods that must be
implemented by subclasses, since they are needed by 'gen_lib_options()'.
2000-05-20 13:31:32 +00:00
Greg Ward 5299b6afc5 Added support for the 'export_symbols' parameter to 'link_shared_object()'
and 'link_shared_lib()'.  In MSVCCompiler, this is meaningful: it adds
/EXPORT: options to the linker command line.  In UnixCCompiler, it
is ignored.
2000-05-20 13:23:21 +00:00
Gregory P. Smith 8711a2e150 Changed default developer name.
Added some guiding comments.
2000-05-13 03:35:05 +00:00
Gregory P. Smith 2c067ef904 Template for writing Distutils command modules. 2000-05-13 03:32:36 +00:00
Gregory P. Smith 86ee81e34b Contribution from Harry Henry Gebel: the 'bdist_rpm' command.
(Completely uninspected and untested by me, this is just to
get the code into CVS!)
2000-05-13 03:11:40 +00:00
Gregory P. Smith 21b9e910a5 In 'install_misc': 'self.outfiles' defaults to the empty list, so we don't
have to worry about "or []" in 'get_outputs()'.
2000-05-13 03:10:30 +00:00
Gregory P. Smith 6a901dd1bd List data files are listed in the Distribution attribute 'data_files',
rather than 'data'.
2000-05-13 03:09:50 +00:00
Gregory P. Smith c59d4e0777 Added the 'bdist_base' option, the base temp directory for all bdist commands. 2000-05-13 03:08:28 +00:00
Gregory P. Smith e30b7a91c7 Added 'get_inputs()' methods, needed by the "install" command's
'get_inputs()'.
2000-05-13 03:07:53 +00:00
Gregory P. Smith ba0506b349 Drastically simplified by taking advantage of the "install" command's
new flexibility, specifically the 'root' option.  Now, we just use
"install" to do a fake installation into a temporary directory
(the 'bdist_dir' option, which derives from the 'bdist_base' option of
"bdist"), and then tar/zip up that directory.  This means that dumb
built distributions are now relative to the root directory, rather than
the prefix or exec-prefix; this is probably a feature, but does make
them slightly less flexible.
2000-05-13 03:06:56 +00:00
Gregory P. Smith a04d807127 Rename 'build_bdist' to 'bdist_base', and get it by default from the
"bdist" command rather than "build".
2000-05-13 02:30:15 +00:00
Gregory P. Smith c008488981 Typo fix. 2000-05-13 02:20:43 +00:00
Gregory P. Smith 0ec8ef1601 Made the '--record' option take an argument, which is the name of the
file to write the list of installed files to.
2000-05-13 02:16:45 +00:00
Gregory P. Smith 7e855ef6ad Ditch the explicit search for *.py[co] files -- they're now included in
the list returned by 'get_outputs()', thanks to changes in the
"install_lib" command.
2000-05-13 02:13:53 +00:00