diff options
author | Marc-André Lemburg <mal@egenix.com> | 2002-01-31 18:56:00 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2002-01-31 18:56:00 (GMT) |
commit | 2544f51036c51d87be53f6a5e35e867c8333378a (patch) | |
tree | 5f745a0cd4c6d2473af7c6227c9ae5508bf8ffda /Lib/distutils/command | |
parent | c318260a7121149153dcfc213a36ac81d8266875 (diff) | |
download | cpython-2544f51036c51d87be53f6a5e35e867c8333378a.zip cpython-2544f51036c51d87be53f6a5e35e867c8333378a.tar.gz cpython-2544f51036c51d87be53f6a5e35e867c8333378a.tar.bz2 |
OS/2 patches by Andrew I MacIntyre for distutils.
Closes patch #435381.
Diffstat (limited to 'Lib/distutils/command')
-rw-r--r-- | Lib/distutils/command/bdist.py | 3 | ||||
-rw-r--r-- | Lib/distutils/command/bdist_dumb.py | 9 | ||||
-rw-r--r-- | Lib/distutils/command/build_ext.py | 27 | ||||
-rw-r--r-- | Lib/distutils/command/install.py | 7 |
4 files changed, 43 insertions, 3 deletions
diff --git a/Lib/distutils/command/bdist.py b/Lib/distutils/command/bdist.py index fc18bd0..68609f3 100644 --- a/Lib/distutils/command/bdist.py +++ b/Lib/distutils/command/bdist.py @@ -57,7 +57,8 @@ class bdist (Command): # This won't do in reality: will need to distinguish RPM-ish Linux, # Debian-ish Linux, Solaris, FreeBSD, ..., Windows, Mac OS. default_format = { 'posix': 'gztar', - 'nt': 'zip', } + 'nt': 'zip', + 'os2': 'zip', } # Establish the preferred order (for the --help-formats option). format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar', diff --git a/Lib/distutils/command/bdist_dumb.py b/Lib/distutils/command/bdist_dumb.py index dbe862b..b627a86 100644 --- a/Lib/distutils/command/bdist_dumb.py +++ b/Lib/distutils/command/bdist_dumb.py @@ -37,7 +37,8 @@ class bdist_dumb (Command): boolean_options = ['keep-temp', 'skip-build'] default_format = { 'posix': 'gztar', - 'nt': 'zip', } + 'nt': 'zip', + 'os2': 'zip' } def initialize_options (self): @@ -88,6 +89,12 @@ class bdist_dumb (Command): # pseudo-installation tree. archive_basename = "%s.%s" % (self.distribution.get_fullname(), self.plat_name) + + # OS/2 objects to any ":" characters in a filename (such as when + # a timestamp is used in a version) so change them to hyphens. + if os.name == "os2": + archive_basename = archive_basename.replace(":", "-") + self.make_archive(os.path.join(self.dist_dir, archive_basename), self.format, root_dir=self.bdist_dir) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 98617f7..91fee5e 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -167,6 +167,11 @@ class build_ext (Command): else: self.build_temp = os.path.join(self.build_temp, "Release") + # OS/2 (EMX) doesn't support Debug vs Release builds, but has the + # import libraries in its "Config" subdirectory + if os.name == 'os2': + self.library_dirs.append(os.path.join(sys.exec_prefix, 'Config')) + # for extensions under Cygwin Python's library directory must be # appended to library_dirs if sys.platform[:6] == 'cygwin': @@ -554,6 +559,10 @@ class build_ext (Command): else: return "swig.exe" + elif os.name == "os2": + # assume swig available in the PATH. + return "swig.exe" + else: raise DistutilsPlatformError, \ ("I don't know how to find (much less run) SWIG " @@ -578,6 +587,9 @@ class build_ext (Command): from distutils.sysconfig import get_config_var ext_path = string.split(ext_name, '.') + # OS/2 has an 8 character module (extension) limit :-( + if os.name == "os2": + ext_path[len(ext_path) - 1] = ext_path[len(ext_path) - 1][:8] # extensions in debug_mode are named 'module_d.pyd' under windows so_ext = get_config_var('SO') if os.name == 'nt' and self.debug: @@ -599,7 +611,7 @@ class build_ext (Command): def 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, we add the Python library (eg. python20.dll). + on Windows and OS/2, we add the Python library (eg. python20.dll). """ # The python library is always needed on Windows. For MSVC, this # is redundant, since the library is mentioned in a pragma in @@ -617,6 +629,19 @@ class build_ext (Command): # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib] + elif sys.platform == "os2emx": + # EMX/GCC requires the python library explicitly, and I + # believe VACPP does as well (though not confirmed) - AIM Apr01 + template = "python%d%d" + # debug versions of the main DLL aren't supported, at least + # not at this time - AIM Apr01 + #if self.debug: + # template = template + '_d' + pythonlib = (template % + (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) + # don't extend ext.libraries, it may be shared with other + # extensions, it is a reference to the original list + return ext.libraries + [pythonlib] elif sys.platform[:6] == "cygwin": template = "python%d.%d" pythonlib = (template % diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index 8755a14..4d78d3a 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -55,6 +55,13 @@ INSTALL_SCHEMES = { 'headers': '$base/Include/$dist_name', 'scripts': '$base/Scripts', 'data' : '$base', + }, + 'os2': { + 'purelib': '$base/Lib/site-packages', + 'platlib': '$base/Lib/site-packages', + 'headers': '$base/Include/$dist_name', + 'scripts': '$base/Scripts', + 'data' : '$base', } } |