mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	svn+ssh://pythondev@svn.python.org/python/trunk ........ r64185 | martin.v.loewis | 2008-06-12 20:38:47 +0200 (Do, 12 Jun 2008) | 1 line Switch to Tcl/Tk 8.5.2. ........ r64189 | martin.v.loewis | 2008-06-12 20:52:00 +0200 (Do, 12 Jun 2008) | 1 line Switch to Tcl/Tk 8.5. ........ r64191 | martin.v.loewis | 2008-06-12 21:00:14 +0200 (Do, 12 Jun 2008) | 1 line Revert bogus disabling of Tcl and Tk. ........ r64194 | martin.v.loewis | 2008-06-12 21:51:59 +0200 (Do, 12 Jun 2008) | 1 line Split Tcl make targets into separate ones. ........ r64195 | martin.v.loewis | 2008-06-12 22:06:18 +0200 (Do, 12 Jun 2008) | 1 line Support file names which include '+' (for Tk 8.5). ........ r64196 | martin.v.loewis | 2008-06-12 22:07:53 +0200 (Do, 12 Jun 2008) | 1 line Fix Tcl/Tk license file in tcl8*/tk8*, include Tix license. ........
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Script to compile the dependencies of _tkinter
 | 
						|
 | 
						|
Copyright (c) 2007 by Christian Heimes <christian@cheimes.de>
 | 
						|
 | 
						|
Licensed to PSF under a Contributor Agreement.
 | 
						|
"""
 | 
						|
 | 
						|
import os
 | 
						|
import sys
 | 
						|
 | 
						|
here = os.path.abspath(os.path.dirname(__file__))
 | 
						|
par = os.path.pardir
 | 
						|
 | 
						|
TCL = "tcl8.5.2"
 | 
						|
TK = "tk8.5.2"
 | 
						|
TIX = "tix-8.4.0.x"
 | 
						|
 | 
						|
ROOT = os.path.abspath(os.path.join(here, par, par))
 | 
						|
# Windows 2000 compatibility: WINVER 0x0500
 | 
						|
# http://msdn2.microsoft.com/en-us/library/aa383745.aspx
 | 
						|
NMAKE = ('nmake /nologo /f %s '
 | 
						|
    'COMPILERFLAGS=\"-DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -DNTDDI_VERSION=NTDDI_WIN2KSP4\" '
 | 
						|
    '%s %s')
 | 
						|
 | 
						|
def nmake(makefile, command="", **kw):
 | 
						|
    defines = ' '.join(k+'='+v for k, v in kw.items())
 | 
						|
    cmd = NMAKE % (makefile, defines, command)
 | 
						|
    print("\n\n"+cmd+"\n")
 | 
						|
    if os.system(cmd) != 0:
 | 
						|
        raise RuntimeError(cmd)
 | 
						|
 | 
						|
def build(platform, clean):
 | 
						|
    if platform == "Win32":
 | 
						|
        dest = os.path.join(ROOT, "tcltk")
 | 
						|
        machine = "X86"
 | 
						|
    elif platform == "AMD64":
 | 
						|
        dest = os.path.join(ROOT, "tcltk64")
 | 
						|
        machine = "AMD64"
 | 
						|
    else:
 | 
						|
        raise ValueError(platform)
 | 
						|
 | 
						|
    # TCL
 | 
						|
    tcldir = os.path.join(ROOT, TCL)
 | 
						|
    if 1:
 | 
						|
        os.chdir(os.path.join(tcldir, "win"))
 | 
						|
        if clean:
 | 
						|
            nmake("makefile.vc", "clean")
 | 
						|
        nmake("makefile.vc", MACHINE=machine)
 | 
						|
        nmake("makefile.vc", "install", INSTALLDIR=dest, MACHINE=machine)
 | 
						|
 | 
						|
    # TK
 | 
						|
    if 1:
 | 
						|
        os.chdir(os.path.join(ROOT, TK, "win"))
 | 
						|
        if clean:
 | 
						|
            nmake("makefile.vc", "clean", TCLDIR=tcldir)
 | 
						|
        nmake("makefile.vc", TCLDIR=tcldir, MACHINE=machine)
 | 
						|
        nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest, MACHINE=machine)
 | 
						|
 | 
						|
    # TIX
 | 
						|
    if 1:
 | 
						|
        # python9.mak is available at http://svn.python.org
 | 
						|
        os.chdir(os.path.join(ROOT, TIX, "win"))
 | 
						|
        if clean:
 | 
						|
            nmake("python9.mak", "clean")
 | 
						|
        nmake("python9.mak", MACHINE=machine, INSTALL_DIR=dest)
 | 
						|
        nmake("python9.mak", "install", INSTALL_DIR=dest)
 | 
						|
 | 
						|
def main():
 | 
						|
    if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "AMD64"):
 | 
						|
        print("%s Win32|AMD64" % sys.argv[0])
 | 
						|
        sys.exit(1)
 | 
						|
 | 
						|
    if "-c" in sys.argv:
 | 
						|
        clean = True
 | 
						|
    else:
 | 
						|
        clean = False
 | 
						|
 | 
						|
    build(sys.argv[1], clean)
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 |