The build for vc2005 still isn't quite right. I'm
running the configurator from an 'msys' shell with
mkdir `hostname`
cd `hostname`
CC=cl ../configure --prefix=d:/tcltest --with-tcl=d:/tcltest/lib --enable-threads
The configurator finds (correctly) that a 'windres' command exists. But it winds up, somehow, using 'rc' in its place, producing a makefile that attempts to run 'rc' with command line options appropriate to 'windres'.
I work around that with 'make RC=windres', and the build progresses somewhat further, but fails when it attempts to run 'mt'. The problem there is shell syntax; the semicolon that separates the DLL name from the resource number needs to be escaped. I trace that back to aclocal.m4, in the TEAX_VC_MANIFEST macro. A proposed
patch is attached.
The failing Makefile and config.log are also attached, as requested.
Patch for the 'mt' syntax problem
config.log from the failed build
Logged In: YES
user_id=99768
Originator: YES
File Added: config.log
Makefile from the failed build.
Logged In: YES
user_id=99768
Originator: YES
File Added: Makefile
Logged In: YES
user_id=99768
Originator: YES
Oh, also... once the Makefile is patched, there are two more things, which don't make the build fail but are nevertheless annoying:
(1) Every 'cl' command generates:
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
(2) There is still one spot where we trip over VC++ obsessive-compulsive behaviour with respect to constness of function args:
../generic/tclOOCall.c(565) : warning C4028: formal parameter 3 different from declaration
Logged In: YES
user_id=79902
Originator: NO
Ugh, it seems that working out what to do about windres/rc needs to be done *after* TEA_CONFIG_CFLAGS as that unilaterally sets RC...
Makefile changes to replace offending /options with -options
Logged In: YES
user_id=99768
Originator: YES
Still not quite there.
For starters, options beginning with '/' seem to get munged
by either msys 'make' or the msys shell... but ones beginning
with '-' are OK. I attach a set of diffs to the generated
Makefile that take care of the problem in RCFLAGS and
the '.c.obj' and '.rc.$(RES)' rules. With these changes,
the 'make' is successful.
The warning about mismatched const-ness at generic/tclOOCall.c:565
is still there. The reason that warnings are a major annoyance
is that an --enable-symbols build on VC++ turns on
"warnings treated as errors", which means that the compiler
won't generate object code for the offending file.
File Added: Makefile.diffs
Logged In: YES
user_id=79902
Originator: NO
Everything done except for the (trivial) bugfix in tclOOCall.c, which gets in the way of a number of changes in my sandboxes.
Logged In: YES
user_id=99768
Originator: YES
With this evening's HEAD, the '-o' on the 'rc' should be '-fo'.
Aside from that, everything looks to be building correctly.
Also, it would be nice to add 'nologo' on that command; it would
slightly reduce the dribble in the 'make' output.