]> granicus.if.org Git - python/commitdiff
Patch #718049: Setting exe_extension for cygwin
authorJason Tishler <jason@tishler.net>
Fri, 18 Apr 2003 17:27:47 +0000 (17:27 +0000)
committerJason Tishler <jason@tishler.net>
Fri, 18 Apr 2003 17:27:47 +0000 (17:27 +0000)
On cygwin, the setup.py script uses unixccompiler.py for compiling and linking
C extensions. The unixccompiler.py script assumes that executables do not get
special extensions, which makes sense for Unix.  However, on Cygwin,
executables get an .exe extension.

This causes a problem during the configuration step (python setup.py config),
in which some temporary executables may be generated. As unixccompiler.py does
not know about the .exe extension, distutils fails to clean up after itself: it
does not remove _configtest.exe but tries to remove _configtest instead.

The attached patch to unixccompiler.py sets the correct exe_extension for
cygwin by checking if sys.platform is 'cygwin'. With this patch, distutils
cleans up after itself correctly.

Michiel de Hoon
University of Tokyo, Human Genome Center.

Lib/distutils/unixccompiler.py

index 2a6b1beeea410b898bcae3dd5b52965b1913aa81..e444917fb644b24f993db3fb3c7cb6ca8241882c 100644 (file)
@@ -77,6 +77,8 @@ class UnixCCompiler(CCompiler):
     shared_lib_extension = ".so"
     dylib_lib_extension = ".dylib"
     static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s"
+    if sys.platform == "cygwin":
+        exe_extension = ".exe"
 
     def preprocess(self, source,
                    output_file=None, macros=None, include_dirs=None,