[Distutils] PureMingw32CCompiler (cygwinccompiler.py addition)

Ben Allfree cm@bldigital.com
Wed Nov 29 08:20:01 2000


This is a multi-part message in MIME format.
--------------437FC20D6156B791E5FEAA83
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello all,

I just discovered the fantastic work done for abstract compilers. What
great stuff!

I downloaded the CVS snapshot today and added a PureMingw32CCompiler
class to show the correct command line to build DLLs and import
libraries for MinGW32 2.95.2-1 (the current beta). Maybe somebody could
see how to better integrate the changes?

Included in my attachment is the changed distutils/cygwinccompiler.py
and some test programs. The test programs came from the MinGW32
instructions at:
ftp://ftp.nanotech.wisc.edu/pub/khan/gnu-win32/mingw32/snapshots/gcc-2.95.2-1/README

For those that do not know, the current MinGW32 beta supports the
`-shared' directive and an `--out-implib,libxxx.a' directive. DEF files
are no longer needed when building DLLs from object files. As far as I
know, we still have to use `dlltool' to build import libraries from DEF
files when the DLL's object files are not available. But, I'm not even
sure that's supposed to be a compiler function.

Take care,

Ben Allfree

--------------437FC20D6156B791E5FEAA83
Content-Type: application/x-zip-compressed;
 name="PureMingw32CCompiler.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="PureMingw32CCompiler.zip"

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
BgAAAAAFAAUAHAEAAGcYAAAAAA==
--------------437FC20D6156B791E5FEAA83--