[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.