From: Pat Wallace on
I am trying to build Tcl/Tk 8.4.9 on a Windows XP systems that has VS .NET
installed. I downloaded the two directory trees and as far as I know
built Tcl successfully:

* There was a VS solution object that fired up the VS .NET IDE and
appeared to build (something) without errors.

* I also found a buildall.vc.bat that, after I edited the "if %MSVCDir%"
line to call my copy of vcvars32.bat, appeared to work.

In the Tk tree there was no VS .NET solution object, but there was a
buildall.vc.bat, so I edited that as above and also this line:

set TCLDIR=..\..\..\tcl849-src[1]\tcl8.4.9

to point at generic\tcl.h. But when I execute buildall.vc.bat, I get
this:

--------
|Sit back and have a cup of coffee while this grinds through ;)
|You asked for *everything*, remember?
|
|Setting environment for using Microsoft Visual Studio .NET 2003 tools.
|(If you have another version of Visual Studio or Visual C++ installed and wish
|to use its tools from the command line, run vcvars32.bat for that
|version.)
|===============================================================================
|*** Compiler has 'Optimizations'
|*** Compiler has 'Pentium 0x0f fix'
|*** Linker has 'Win98 alignment problem'
|rules.vc(383) : fatal error U1023: syntax error in expression
|Stop.
|*** BOOM! ***
|DONE!
|Press any key to continue . . .
--------

Line 383 of rules.vc is:

!if [nmakehlp -g $(TCLH) TCL_VERSION] == 76

Is executing buildall.vc.bat the right way to build Tk and, if so, what's
wrong?

Patrick Wallace
-------------------------------------------------------------------------------
From: Pat Thoyts on
ptw(a)rlsaxps.bnsc.rl.ac.uk (Pat Wallace) writes:

>I am trying to build Tcl/Tk 8.4.9 on a Windows XP systems that has VS .NET
>installed. I downloaded the two directory trees and as far as I know
>built Tcl successfully:
>

The way I would build it with MSVC 7 (aka .net) is to fire up the
Visual Studio .NET Command Prompt and change to the tcl/win
subdirectory. Then execute
nmake -f makefile.vc INSTALLDIR=c:\opt\tcl OPTS=none clean release test
Assuming the tests pass ok you can do
nmake -f makefile.vc INSTALLDIR=c:\opt\tcl OPTS=none install

Then to build tk, move to the Tk/win subdirectory (perhaps with
cd ..\..\tk\win) and do
nmake -f makefile.vc INSTALLDIR=c:\opt\tcl TCLDIR=..\..\tcl OPTS=none clean release test
and install if it tests ok (Tk usually has a few not-so-important
failures).

Feel free to specify your preferred installation target.
If you want a version with symbols for debugging with, then specify
OPTS=symbols instead of OPTS=none. Similarly for threaded. There are
comments in the top of the makefile.vc

If you want to use a studio project, then I'd suggest creating a
Makefile project and give it the commandlines above.

--
Pat Thoyts http://www.zsplat.freeserve.co.uk/resume.html
To reply, rot13 the return address or read the X-Address header.
PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD
From: Pat Wallace on
In article <87zmw7tyjc.fsf(a)binky.patthoyts.tk>,
Pat Thoyts <cng(a)mfcyng.serrfreir.pb.hx> wrote:
>The way I would build it with MSVC 7 (aka .net) is to fire up the
>Visual Studio .NET Command Prompt and change to the tcl/win
>subdirectory. Then execute
> nmake -f makefile.vc INSTALLDIR=c:\opt\tcl OPTS=none clean release test

OK, this worked - thank you. I like the fact that it doesn't require
editing directory paths into sundry files.

>Assuming the tests pass ok you can do...

In fact the tests didn't all work. Two of them failed:

--------------------------------------------------------------------------

expr.test

==== expr-22.9 non-numeric floats: shared object equality and NaN FAILED
==== Contents of test case:

set x NaN
expr {$x == $x}

---- Result was:
1
---- Result should have been (exact matching):
0
==== expr-22.9 FAILED

--------------------------------------------------------------------------

fileName.test

==== filename-9.19.2 Tcl_JoinPath: win FAILED
==== Contents of test case:

testsetplatform win
set res {}
lappend res [file join {foo\bar}] [file join [pwd] {foo\bar}] [file
join
[pwd] [pwd] {foo\bar}]
string map [list [pwd] pwd] $res

---- Result was:
foo/bar {pwd/foo/bar} {pwd/foo/bar}
---- Result should have been (exact matching):
foo/bar pwd/foo/bar pwd/foo/bar
==== filename-9.19.2 FAILED

--------------------------------------------------------------------------

I'm now wondering whether I can install irrespective, or whether to start
again using the previous Tcl/Tk version. Any advice?


Patrick Wallace
__________________________________________________________________________

From: Pat Wallace on
In article <d3aoau$op9$1(a)blackmamba.itd.rl.ac.uk>,
Pat Wallace <ptw(a)rlsaxps.bnsc.rl.ac.uk> wrote:
>In article <87zmw7tyjc.fsf(a)binky.patthoyts.tk>,
>Pat Thoyts <cng(a)mfcyng.serrfreir.pb.hx> wrote:
>>The way I would build it with MSVC 7 (aka .net) is to fire up the
>>Visual Studio .NET Command Prompt and change to the tcl/win
>>subdirectory. Then execute
>> nmake -f makefile.vc INSTALLDIR=c:\opt\tcl OPTS=none clean release test
>
>OK, this worked - thank you. I like the fact that it doesn't require
>editing directory paths into sundry files.

Turned out to be a false dawn. When I came to build Tk I got this:

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

========================================================================
*** Compiler has 'Optimizations'
*** Compiler has 'Pentium 0x0f fix'
*** Linker has 'Win98 alignment problem'
rules.vc(373) : fatal error U1050:
Don't know where tcl.h is. The TCLDIR macro doesn't appear correct.
Stop.

This is more or less where I came in (i.e. when I tried executing
buildall.vc.bat). So exactly what preliminary editing of files is
required?


Patrick Wallace
__________________________________________________________________________



From: Pat Wallace on
In article <d3b2pb$t9d$1(a)blackmamba.itd.rl.ac.uk>,
Pat Wallace <ptw(a)rlsaxps.bnsc.rl.ac.uk> wrote:
>Turned out to be a false dawn.

OK. I've just woken up to what's going on: TCLDIR is set on the
nmake command line and the original message had TCLDIR=..\..\tcl when in
fact it has to be ..\..\tcl8.4.9. Duh.


Patrick Wallace
___________________________________________________________________________