"M.-A. Lemburg" wrote:
The build_ext command (and probably others too) don't clean up the build_temp directory before invoking the compiler. This causes the compiler to use object files it finds in the temp location for subsequent builds of other subpackages which is most probably not intended.
Should I fix this bug in CVS by having the build_ext command clean up the temporary tree before invoking the compiler ?
Checking this "fix" showed that distutils seems to use the build_temp area to communicate C libs and other files between commands.
Using a separate subdir in the build_temp area for each extension and C lib avoids the problem and still allows distutils to pass libs etc between commands. Would this approach break anything ?
Another quirk I found was that build_clib does not separate building of libs into different method calls; the build_libraries method does the complete job which makes it hard to subclass the command. I guess this should be changed to a .build_libraries() method which then calls .build_library() for each lib in the list.