1Comments on building tcl/tk for AMD64 with the MS SDK compiler
2==============================================================
3
4I did have to build tcl/tk manually.
5
6First, I had to build the nmakehlp.exe helper utility manually by executing
7   cl nmakehlp.c /link bufferoverflowU.lib
8in both the tcl8.4.12\win and tk8.4.12\win directories.
9
10Second, the AMD64 compiler refuses to compile the file
11tcl8.4.12\generic\tclExecute.c because it insists on using intrinsics
12for the 'ceil' and 'floor' functions:
13
14  ..\generic\tclExecute.c(394) : error C2099: initializer is not a constant
15  ..\generic\tclExecute.c(398) : error C2099: initializer is not a constant
16
17I did comment out these lines; an alternative would have been to use
18the /Oi- compiler flag to disable the intrinsic functions.
19The commands then used were these:
20
21   svn export http://svn.python.org/projects/external/tcl8.4.12
22   cd tcl8.4.12\win
23   REM
24   echo patch the tcl8.4.12\generic\tclExecute.c file
25   pause
26   REM
27   cl nmakehlp.c /link bufferoverflowU.lib
28   nmake -f makefile.vc MACHINE=AMD64
29   nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
30   cd ..\..
31   svn export http://svn.python.org/projects/external/tk8.4.12
32   cd tk8.4.12\win
33   cl nmakehlp.c /link bufferoverflowU.lib
34   nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 MACHINE=AMD64
35   nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install
36   cd ..\..
37