Kaydet (Commit) 6c7e5623 authored tarafından Hirokazu Yamamoto's avatar Hirokazu Yamamoto

Merged revisions 68468-68470 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68468 | hirokazu.yamamoto | 2009-01-10 17:09:43 +0900 | 1 line

  Bump up Tcl/Tk version on VC6. (tcl8.4.12 -> tcl8.5.2, tk8.4.12 -> tk8.5.2, tix8.4.0 -> tix8.4.3)
........
  r68469 | hirokazu.yamamoto | 2009-01-10 17:12:09 +0900 | 1 line

  Link to debug version of Tcl/Tk when python is built as debug version.
........
  r68470 | hirokazu.yamamoto | 2009-01-10 18:18:16 +0900 | 1 line

  Added helper script to build Tcl/Tk.
........
üst 5ec09599
...@@ -293,7 +293,7 @@ class TixWidget(tkinter.Widget): ...@@ -293,7 +293,7 @@ class TixWidget(tkinter.Widget):
else: else:
static_options = ['options'] static_options = ['options']
for k,v in cnf.items()[:]: for k,v in list(cnf.items()):
if k in static_options: if k in static_options:
extra = extra + ('-' + k, v) extra = extra + ('-' + k, v)
del cnf[k] del cnf[k]
...@@ -448,7 +448,7 @@ class TixSubWidget(TixWidget): ...@@ -448,7 +448,7 @@ class TixSubWidget(TixWidget):
# we must be careful not to destroy the frame widget since this # we must be careful not to destroy the frame widget since this
# also destroys the parent NoteBook thus leading to an exception # also destroys the parent NoteBook thus leading to an exception
# in Tkinter when it finally calls Tcl to destroy the NoteBook # in Tkinter when it finally calls Tcl to destroy the NoteBook
for c in self.children.values(): c.destroy() for c in list(self.children.values()): c.destroy()
if self._name in self.master.children: if self._name in self.master.children:
del self.master.children[self._name] del self.master.children[self._name]
if self._name in self.master.subwidget_list: if self._name in self.master.subwidget_list:
......
...@@ -54,7 +54,7 @@ BSC32=bscmake.exe ...@@ -54,7 +54,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\..\..\tcltk\lib\tk84.lib ..\..\..\tcltk\lib\tcl84.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept /libpath:"C:\Program Files\Tcl\lib" # ADD LINK32 ..\..\..\tcltk\lib\tk85g.lib ..\..\..\tcltk\lib\tcl85g.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept
# SUBTRACT LINK32 /pdb:none # SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "_tkinter - Win32 Release" !ELSEIF "$(CFG)" == "_tkinter - Win32 Release"
...@@ -82,7 +82,7 @@ BSC32=bscmake.exe ...@@ -82,7 +82,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 ..\..\..\tcltk\lib\tk84.lib ..\..\..\tcltk\lib\tcl84.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd" /libpath:"C:\Program Files\Tcl\lib" # ADD LINK32 ..\..\..\tcltk\lib\tk85.lib ..\..\..\tcltk\lib\tcl85.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd"
# SUBTRACT LINK32 /pdb:none # SUBTRACT LINK32 /pdb:none
!ENDIF !ENDIF
......
import os
import sys
import subprocess
TCL_MAJOR = 8
TCL_MINOR = 5
TCL_PATCH = 2
TIX_MAJOR = 8
TIX_MINOR = 4
TIX_PATCH = 3
def abspath(name):
par = os.path.pardir
return os.path.abspath(os.path.join(__file__, par, par, par, par, name))
TCL_DIR = abspath("tcl%d.%d.%d" % (TCL_MAJOR, TCL_MINOR, TCL_PATCH))
TK_DIR = abspath("tk%d.%d.%d" % (TCL_MAJOR, TCL_MINOR, TCL_PATCH))
TIX_DIR = abspath("tix%d.%d.%d" % (TIX_MAJOR, TIX_MINOR, TIX_PATCH))
OUT_DIR = abspath("tcltk")
def have_args(*a):
return any(s in sys.argv[1:] for s in a)
def enter(dir):
os.chdir(os.path.join(dir, "win"))
def main():
debug = have_args("-d", "--debug")
clean = have_args("clean")
install = have_args("install")
tcl = have_args("tcl")
tk = have_args("tk")
tix = have_args("tix")
if not(tcl) and not(tk) and not(tix):
tcl = tk = tix = True
def nmake(makefile, *a):
args = ["nmake", "/nologo", "/f", makefile, "DEBUG=%d" % debug]
args.extend(a)
subprocess.check_call(args)
if tcl:
enter(TCL_DIR)
def nmake_tcl(*a):
nmake("makefile.vc", *a)
if clean:
nmake_tcl("clean")
elif install:
nmake_tcl("install", "INSTALLDIR=" + OUT_DIR)
else:
nmake_tcl()
if tk:
enter(TK_DIR)
def nmake_tk(*a):
nmake("makefile.vc", "TCLDIR=" + TCL_DIR, *a)
if clean:
nmake_tk("clean")
elif install:
nmake_tk("install", "INSTALLDIR=" + OUT_DIR)
else:
nmake_tk()
if tix:
enter(TIX_DIR)
def nmake_tix(*a):
nmake("python.mak",
"TCL_MAJOR=%d" % TCL_MAJOR,
"TCL_MINOR=%d" % TCL_MINOR,
"TCL_PATCH=%d" % TCL_PATCH,
"MACHINE=IX86", *a)
if clean:
nmake_tix("clean")
elif install:
nmake_tix("install", "INSTALL_DIR=" + OUT_DIR)
else:
nmake_tix()
if __name__ == '__main__':
main()
...@@ -64,18 +64,25 @@ unpack into new subdirectories of dist\. ...@@ -64,18 +64,25 @@ unpack into new subdirectories of dist\.
_tkinter _tkinter
Python wrapper for the Tk windowing system. Requires building Python wrapper for the Tk windowing system. Requires building
Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12. Tcl/Tk first. Following are instructions for Tcl/Tk 8.5.2.
Get source Get source
---------- ----------
In the dist directory, run In the dist directory, run
svn export http://svn.python.org/projects/external/tcl8.4.12 svn export http://svn.python.org/projects/external/tcl-8.5.2.1 tcl8.5.2
svn export http://svn.python.org/projects/external/tk8.4.12 svn export http://svn.python.org/projects/external/tk-8.5.2.0 tk8.5.2
svn export http://svn.python.org/projects/external/tix-8.4.0 svn export http://svn.python.org/projects/external/tix-8.4.3.1 tix8.4.3
Debug Build
-----------
To build debug version, add DEBUG=1 to all nmake call bellow.
Build Tcl first (done here w/ MSVC 6 on Win2K) Build Tcl first (done here w/ MSVC 6 on Win2K)
--------------- ---------------
cd dist\tcl8.4.12\win If your environment doesn't have struct _stat64, you need to apply
tcl852.patch in this directory to dist\tcl8.5.2\generic\tcl.h.
cd dist\tcl8.5.2\win
run vcvars32.bat run vcvars32.bat
nmake -f makefile.vc nmake -f makefile.vc
nmake -f makefile.vc INSTALLDIR=..\..\tcltk install nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
...@@ -85,16 +92,16 @@ _tkinter ...@@ -85,16 +92,16 @@ _tkinter
Optional: run tests, via Optional: run tests, via
nmake -f makefile.vc test nmake -f makefile.vc test
all.tcl: Total 10835 Passed 10096 Skipped 732 Failed 7 all.tcl: Total 24242 Passed 23358 Skipped 877 Failed 7
Sourced 129 Test Files. Sourced 137 Test Files.
Files with failing tests: exec.test expr.test io.test main.test string.test stri Files with failing tests: exec.test http.test io.test main.test string.test stri
ngObj.test ngObj.test
Build Tk Build Tk
-------- --------
cd dist\tk8.4.12\win cd dist\tk8.5.2\win
nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 nmake -f makefile.vc TCLDIR=..\..\tcl8.5.2
nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install nmake -f makefile.vc TCLDIR=..\..\tcl8.5.2 INSTALLDIR=..\..\tcltk install
XXX Should we compile with OPTS=threads? XXX Should we compile with OPTS=threads?
...@@ -102,11 +109,11 @@ _tkinter ...@@ -102,11 +109,11 @@ _tkinter
XXX failed. It popped up tons of little windows, and did lots of XXX failed. It popped up tons of little windows, and did lots of
XXX stuff, and nothing blew up. XXX stuff, and nothing blew up.
Built Tix Build Tix
--------- ---------
cd dist\tix-8.4.0\win cd dist\tix8.4.3\win
nmake -f python.mak nmake -f python.mak TCL_MAJOR=8 TCL_MINOR=5 TCL_PATCH=2 MACHINE=IX86 DEBUG=0
nmake -f python.mak install nmake -f python.mak TCL_MAJOR=8 TCL_MINOR=5 TCL_PATCH=2 MACHINE=IX86 DEBUG=0 INSTALL_DIR=..\..\tcltk install
bz2 bz2
Python wrapper for the libbz2 compression library. Homepage Python wrapper for the libbz2 compression library. Homepage
......
--- tcl8.5.2\generic\tcl.h Fri Jun 13 03:35:39 2008
+++ tcl8.5.2\generic\tcl.h Sun Jan 4 16:52:30 2009
@@ -367,7 +367,7 @@
typedef struct stati64 Tcl_StatBuf;
# define TCL_LL_MODIFIER "L"
# else /* __BORLANDC__ */
-# if _MSC_VER < 1400 && !defined(_M_IX86)
+# if _MSC_VER < 1400 /*&& !defined(_M_IX86)*/
typedef struct _stati64 Tcl_StatBuf;
# else
typedef struct _stat64 Tcl_StatBuf;
--- tcl8.5.2\generic\tcl.h Fri Jun 13 03:35:39 2008
+++ tcl8.5.2\generic\tcl.h Sun Jan 4 16:52:30 2009
@@ -367,7 +367,7 @@
typedef struct stati64 Tcl_StatBuf;
# define TCL_LL_MODIFIER "L"
# else /* __BORLANDC__ */
-# if _MSC_VER < 1400 && !defined(_M_IX86)
+# if _MSC_VER < 1400 /*&& !defined(_M_IX86)*/
typedef struct _stati64 Tcl_StatBuf;
# else
typedef struct _stat64 Tcl_StatBuf;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment