diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py --- Python-2.7.9-orig/setup.py 2014-12-11 13:50:57.252200000 +0300 +++ Python-2.7.9/setup.py 2014-12-11 13:51:00.543800000 +0300 @@ -538,7 +538,7 @@ if host_platform == 'hp-ux11': lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32'] - if host_platform == 'darwin': + if host_platform in ['darwin', 'mingw', 'win32']: # This should work on any unixy platform ;-) # If the user has bothered specifying additional -I and -L flags # in OPT and LDFLAGS we might as well use them here. @@ -547,6 +547,8 @@ # with whitespace in the name to store libraries. cflags, ldflags = sysconfig.get_config_vars( 'CFLAGS', 'LDFLAGS') + cflags = cflags + ' ' + ('',os.environ.get('CC'))[os.environ.get('CC') != None] + ldflags = ldflags + ' ' + ('',os.environ.get('LDSHARED'))[os.environ.get('LDSHARED') != None] for item in cflags.split(): if item.startswith('-I'): inc_dirs.append(item[2:]) @@ -1941,14 +1943,19 @@ # The versions with dots are used on Unix, and the versions without # dots on Windows, for detection by cygwin. tcllib = tklib = tcl_includes = tk_includes = None - for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', - '8.2', '82', '8.1', '81', '8.0', '80']: - tklib = self.compiler.find_library_file(lib_dirs, - 'tk' + version) - tcllib = self.compiler.find_library_file(lib_dirs, - 'tcl' + version) - if tklib and tcllib: - # Exit the loop when we've found the Tcl/Tk libraries + tcltk_suffix = None + for suffix in ['', 's']: + for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '8.2', '82', '8.1', '81', '8.0', '80', '']: + tklib = self.compiler.find_library_file(lib_dirs, + 'tk' + version + suffix) + tcllib = self.compiler.find_library_file(lib_dirs, + 'tcl' + version + suffix) + if tklib and tcllib: + # Exit the loop when we've found the Tcl/Tk libraries + tcltk_suffix = suffix + break + if tcltk_suffix != None: break # Now check for the header files @@ -2019,13 +2026,21 @@ # Add the Tcl/Tk libraries libs.append('tk'+ version) libs.append('tcl'+ version) + libs.append('tk'+ version + tcltk_suffix) + libs.append('tcl'+ version + tcltk_suffix) + if host_platform in ['mingw', 'win32']: + for winlib in ['ws2_32','gdi32','comctl32','comdlg32','imm32','uuid','oleaut32','ole32']: + libs.append( winlib ) if host_platform in ['aix3', 'aix4']: libs.append('ld') # Finally, link with the X11 libraries (not appropriate on cygwin) - if host_platform != "cygwin": + # ...on those platforms, define STATIC_BUILD if linking to static tcl/tk. + if not host_platform in ['cygwin', 'mingw', 'win32']: libs.append('X11') + elif tcllib.endswith('s.a'): + defs.append( ('STATIC_BUILD',1) ) ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], define_macros=[('WITH_APPINIT', 1)] + defs,