On 25 May 2000, Rene Liebscher said:
You have the following files:
XXXX.c => XXXX.o => XXXX.pyd
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!