[Distutils] bdist and --compiler

Greg Ward gward@python.net
Thu, 25 May 2000 21:35:26 -0400


On 25 May 2000, Rene Liebscher said:
> You have the following files:
> 
> XXXX.c => XXXX.o => XXXX.pyd
> 
> (on Windows)
> 
> If you remove the object files or use a different compiler, which wants
> to see XXXX.obj instead XXXX.o (msvc <=> cygwin), it would try to
> rebuild 
> all, even if the XXXX.pyd-file is up-to-date.

Yup, good explanation.  Now that you put it this way, this has bugged me
in the past.  The problem, of course, is that Distutils != make: we
don't have a dependency graph, we're not doing topological sorts, etc.
We just compare this timestamp to that timestamp.  So we end up doing
stupid stuff occasionally.

> I have the place in the build_ext.py file to change this, the patch is 
> attached. I simple let check it before I start the compiler (which
> only can check XXXX.c<=>XXXX.o and XXXX.o<=>XXXX.pyd)

...and this is a lovely hack: fixes the problem at hand without going
overboard.  Checked in -- thanks!

> There are more options  which could need such a list (bdist format),
> perhaps we should introduce something like --help-option XXXXX 
> ( XXXXX = compiler,format,...) It could scan all commands for a option
> with this name and a more extensive description (string or Callable,
> which
> generates a string on the fly.)

Good point.  This should be some sort of "extra interface" that certain
commands will implement: they need to announce which of their options
have a help option, what that help option should be called (default:
"--help-" + option_name), and what the values are.  If you want to give
this a shot, go for it -- I'm kept busy enough just processing incoming
patches and trying to write the docs!

        Greg
-- 
Greg Ward - Linux geek                                  gward@python.net
http://starship.python.net/~gward/
A man wrapped up in himself makes a very small package.