Guido van Rossum | 7eaf822 | 2007-06-18 17:58:50 +0000 | [diff] [blame] | 1 | Comments on building tcl/tk for AMD64 with the MS SDK compiler |
| 2 | ============================================================== |
| 3 | |
| 4 | I did have to build tcl/tk manually. |
| 5 | |
| 6 | First, I had to build the nmakehlp.exe helper utility manually by executing |
| 7 | cl nmakehlp.c /link bufferoverflowU.lib |
| 8 | in both the tcl8.4.12\win and tk8.4.12\win directories. |
| 9 | |
| 10 | Second, the AMD64 compiler refuses to compile the file |
| 11 | tcl8.4.12\generic\tclExecute.c because it insists on using intrinsics |
| 12 | for 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 | |
| 17 | I did comment out these lines; an alternative would have been to use |
| 18 | the /Oi- compiler flag to disable the intrinsic functions. |
| 19 | The 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 ..\.. |