| 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 ..\.. |