[Distutils] Compiler abstractiom model

Mark Hammond MHammond@skippinet.com.au
Wed, 31 Mar 1999 09:48:36 +1000


> > Quoth David Ascher, on 29 March 1999:
> > > On windows, it is sometimes needed to specify other files
> which aren't .c
> > > files, but .def files (possibly all can be done with
> command line options,
> > > but might as well build this in).  I don't know how these
> should fit in...
> >
> > Are they just listed in the command line like .c files?  Or
are they
> > specified by a command-line option?  Would you use these in
> code that's
> > meant to be portable to other platforms?
>
> Yes, no, and yes. =)
>
> E.g. Python extensions need to declare the 'exported' entry
> point.  This
> can be done either by modifying the source code (bad for
> portable code,
> requires #ifdef's etc.), by specifying a command-line option,
or by
> including a .DEF file.

Just to follow up on this, many obscure options may need to be
passed to the Windows linker, but they do require their own
option - they are not passed as normal files.  Examples are
/DEF: - the .def file David mentions, /NOD:lib - to prevent a
default library from being linked, /implib:lib to name the built
.lib file, etc.

It wasnt clear from David's post that these need their own
option, and are not passed as a simple filename param to the
linker....

Building from what Greg said, I agree that _certain_ command-line
params can be mandated - they are designed not to be
configurable, as messing them will likely break the build.  But
there also needs to be a secondary class that are virtually
unconstrained.

[Sorry - as usual, speaking having kept only a quick eye on the
posts, and not having seen the latest code drop...]

Mark.