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