Commit Graph

591 Commits

Author SHA1 Message Date
Greg Ward 0fd2dd6db0 Fix so we clear or reinitialize various data structures before populating
(allows the same FancyGetopt object to be used multiple times with different
option tables).
2000-08-07 00:45:51 +00:00
Greg Ward ab3a0f36ed Fixed imports from '*util' modules to not just import everything from util. 2000-08-05 01:31:54 +00:00
Greg Ward 5a8aa1ba2e Drop the 'extend()' function -- old 1.5.1 compatibility hack that
wasn't actually used anywhere.
Drop the "from xxx_util import*" backwards compability hacks.
2000-08-05 01:25:24 +00:00
Greg Ward f813e59d49 Added 'debug_print()'. 2000-08-04 01:31:13 +00:00
Greg Ward 5db2c3ae24 Rewrote 'find_library_file()' much more cleanly (and consistently with
MSVCCompiler's version, to aid in factoring common code out of the two
classes when the time comes).
2000-08-04 01:30:03 +00:00
Greg Ward d142564821 Added 'debug' flag to 'find_library_file()', and changed code to handle it. 2000-08-04 01:29:27 +00:00
Greg Ward e5e6015e5a Added 'debug' flag to 'find_library_file()'. 2000-08-04 01:28:39 +00:00
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