symbian-qemu-0.9.1-12/python-2.6.1/PCbuild/build_tkinter.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 """Script to compile the dependencies of _tkinter
       
     2 
       
     3 Copyright (c) 2007 by Christian Heimes <christian@cheimes.de>
       
     4 
       
     5 Licensed to PSF under a Contributor Agreement.
       
     6 """
       
     7 
       
     8 import os
       
     9 import sys
       
    10 
       
    11 here = os.path.abspath(os.path.dirname(__file__))
       
    12 par = os.path.pardir
       
    13 
       
    14 TCL = "tcl8.5.2"
       
    15 TK = "tk8.5.2"
       
    16 TIX = "tix-8.4.0.x"
       
    17 
       
    18 ROOT = os.path.abspath(os.path.join(here, par, par))
       
    19 # Windows 2000 compatibility: WINVER 0x0500
       
    20 # http://msdn2.microsoft.com/en-us/library/aa383745.aspx
       
    21 NMAKE = ('nmake /nologo /f %s '
       
    22     'COMPILERFLAGS=\"-DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -DNTDDI_VERSION=NTDDI_WIN2KSP4\" '
       
    23     '%s %s')
       
    24 
       
    25 def nmake(makefile, command="", **kw):
       
    26     defines = ' '.join(k+'='+v for k, v in kw.items())
       
    27     cmd = NMAKE % (makefile, defines, command)
       
    28     print("\n\n"+cmd+"\n")
       
    29     if os.system(cmd) != 0:
       
    30         raise RuntimeError(cmd)
       
    31 
       
    32 def build(platform, clean):
       
    33     if platform == "Win32":
       
    34         dest = os.path.join(ROOT, "tcltk")
       
    35         machine = "X86"
       
    36     elif platform == "AMD64":
       
    37         dest = os.path.join(ROOT, "tcltk64")
       
    38         machine = "AMD64"
       
    39     else:
       
    40         raise ValueError(platform)
       
    41 
       
    42     # TCL
       
    43     tcldir = os.path.join(ROOT, TCL)
       
    44     if 1:
       
    45         os.chdir(os.path.join(tcldir, "win"))
       
    46         if clean:
       
    47             nmake("makefile.vc", "clean")
       
    48         nmake("makefile.vc", MACHINE=machine)
       
    49         nmake("makefile.vc", "install", INSTALLDIR=dest, MACHINE=machine)
       
    50 
       
    51     # TK
       
    52     if 1:
       
    53         os.chdir(os.path.join(ROOT, TK, "win"))
       
    54         if clean:
       
    55             nmake("makefile.vc", "clean", TCLDIR=tcldir)
       
    56         nmake("makefile.vc", TCLDIR=tcldir, MACHINE=machine)
       
    57         nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest, MACHINE=machine)
       
    58 
       
    59     # TIX
       
    60     if 1:
       
    61         # python9.mak is available at http://svn.python.org
       
    62         os.chdir(os.path.join(ROOT, TIX, "win"))
       
    63         if clean:
       
    64             nmake("python9.mak", "clean")
       
    65         nmake("python9.mak", MACHINE=machine, INSTALL_DIR=dest)
       
    66         nmake("python9.mak", "install", INSTALL_DIR=dest)
       
    67 
       
    68 def main():
       
    69     if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "AMD64"):
       
    70         print("%s Win32|AMD64" % sys.argv[0])
       
    71         sys.exit(1)
       
    72 
       
    73     if "-c" in sys.argv:
       
    74         clean = True
       
    75     else:
       
    76         clean = False
       
    77 
       
    78     build(sys.argv[1], clean)
       
    79 
       
    80 
       
    81 if __name__ == '__main__':
       
    82     main()