The command-line syntax for Borland's linker (called ILINK32) is:
ILINK32 [options] objects, [exe], [mapfile], [libs], [deffile]
The name of the module definition file, if specified, must appear in exactly the position shown. It's not considered one of the "options" which can appear in any order at the beginning of the command line. And after a second look at the documentation for ILINK32 it doesn't appear that they have anything analogous to the /EXPORTS switch for naming the exported symbol(s) directly on the command line.
Looks much like the MSVC 1.5 (the 16-bit compiler) linker command line. [Just curious (and unrelated to python extensions): What about resources? How are they built into the executable?] So what to do? - REQUIRE a def file? (Extension writers on unix would like not to have to care about this) - Trust the extension writer to use the (compiler specific?) pragmas? (Same as above) - Dynamically build a def-file and delete it after the build? Maybe the (distutils-generated) temporary def-file would be the best.(?) Greg? Thomas