It seems the best thing might be to modify the PCBuild8 build process so the output binaries are in the ../PCBuild' directory - this way distutils and others continue to work fine. Does that sound reasonable?
I think Kristjan will have to say a word here: I think he just likes it the way it is right now. That would rather suggest that build_ext needs to be changed.
I use this patch in ActivePython to get distutils to find the correct PCbuild dir (see attached). Trent -- Trent Mick trentm at activestate.com --- python/Lib/distutils/command/build_ext.py Tue Mar 13 03:19:35 2007 +++ python/Lib/distutils/command/build_ext.py Tue Apr 17 12:51:26 2007 @@ -176,7 +176,16 @@ # Append the source distribution include and library directories, # this allows distutils on windows to work in the source tree self.include_dirs.append(os.path.join(sys.exec_prefix, 'PC')) - self.library_dirs.append(os.path.join(sys.exec_prefix, 'PCBuild')) + from distutils.msvccompiler import get_build_version + msvc_version = get_build_version() + if msvc_version == 6: + self.library_dirs.append(os.path.join(sys.exec_prefix, 'PC', 'VC6')) + elif 6 < msvc_version < 8: + self.library_dirs.append(os.path.join(sys.exec_prefix, 'PCbuild')) + elif msvc_version >= 8: + self.library_dirs.append(os.path.join(sys.exec_prefix, 'PCbuild8')) + else: + log.warn("unexpected MSVC version: %r", msvc_version) # OS/2 (EMX) doesn't support Debug vs Release builds, but has the # import libraries in its "Config" subdirectory