| Comments on building tcl/tk for AMD64 with the MS SDK compiler | 
 | ============================================================== | 
 |  | 
 | I did have to build tcl/tk manually. | 
 |  | 
 | First, I had to build the nmakehlp.exe helper utility manually by executing | 
 |    cl nmakehlp.c /link bufferoverflowU.lib | 
 | in both the tcl8.4.12\win and tk8.4.12\win directories. | 
 |  | 
 | Second, the AMD64 compiler refuses to compile the file | 
 | tcl8.4.12\generic\tclExecute.c because it insists on using intrinsics | 
 | for the 'ceil' and 'floor' functions: | 
 |  | 
 |   ..\generic\tclExecute.c(394) : error C2099: initializer is not a constant | 
 |   ..\generic\tclExecute.c(398) : error C2099: initializer is not a constant | 
 |  | 
 | I did comment out these lines; an alternative would have been to use | 
 | the /Oi- compiler flag to disable the intrinsic functions. | 
 | The commands then used were these: | 
 |  | 
 |    svn export http://svn.python.org/projects/external/tcl8.4.12 | 
 |    cd tcl8.4.12\win | 
 |    REM | 
 |    echo patch the tcl8.4.12\generic\tclExecute.c file | 
 |    pause  | 
 |    REM | 
 |    cl nmakehlp.c /link bufferoverflowU.lib | 
 |    nmake -f makefile.vc MACHINE=AMD64 | 
 |    nmake -f makefile.vc INSTALLDIR=..\..\tcltk install | 
 |    cd ..\.. | 
 |    svn export http://svn.python.org/projects/external/tk8.4.12 | 
 |    cd tk8.4.12\win | 
 |    cl nmakehlp.c /link bufferoverflowU.lib | 
 |    nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 MACHINE=AMD64 | 
 |    nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install | 
 |    cd ..\.. |