View Ticket
Bounty program for improvements to Tcl and certain Tcl packages.
Ticket Hash: 316976aff3a2a38e0e55039ae84798e1efa38144
Title: rules-ext.vc missing from win directory
Status: Open Type: Build Problem
Severity: Critical Priority: Immediate
Subsystem: Resolution: Open
Last Modified: 2022-01-07 07:17:40
Version Found In: 1.7.22
User Comments:
anonymous added on 2021-02-27 22:02:50:
I'm trying to build 1.7.22 for Windows, using Visual Studio 2017 (Community Edition).  The win directory is missing in the download, but I managed to add it via the patch I found on this site.  

However, it's now missing rules-ext.vc.  I found a version of rules.vc from 2016 (before the win directory was deleted), but I get the following errors:

'nmakehlp' is not recognized as an internal or external command,
operable program or batch file.

targets.vc(29) : fatal error U1083: target macro '$(PRJLIB)' expands to nothing

I would greatly appreciate it if someone could add that missing file (as well as any other missing artifacts), and any documentation that would help with building this module would be appreciated, 
including how you compiled the module to test it for the patch.  I really want to get this module compiled to update the tcl web server (tclhttpd) to make it more secure.

Regards,

Jeffrey Rothman, Ph.D.

anonymous added on 2022-01-07 06:36:20:

Professor Rothman

It may be the version of Tcl you are using is before the changes from TIP 477 were integrated.

For the problem in your post I looked at the a few of the Tcl modules and added the following line to win/makefile.vc:

PRJLIBNAME	= $(PROJECT)$(VERSION)$(SUFX).$(EXT)
PRJLIB		= $(OUT_DIR)\$(PRJLIBNAME)

You may not need both, but this seemed to be the pattern from other packages. After that I was able to compile the module using Tcl8.6.12. Initially tried 8.6.7 until I read TIP 477. Hopefully this resolves your issue and assist others who have been working on the windows compile.

vectorphresh


anonymous added on 2022-01-07 07:17:40:

Professor Rothman

It may be the version of Tcl you are using is before the changes from TIP 477 were integrated.

You will need to copy the rules-ext.vc from TCLDIR/win folder, where TCLDIR is your source folder

For the other problem in your post, I looked at a few Tcl modules and added the following line to win/makefile.vc:

PRJLIBNAME	= $(PROJECT)$(VERSION)$(SUFX).$(EXT)
PRJLIB		= $(OUT_DIR)\$(PRJLIBNAME)

You may not need both, but this seemed to be the pattern from other packages. After that I was able to compile the module using Tcl8.6.12. Initially tried 8.6.7 until I read TIP 477. Hopefully this resolves your issue and assist others who have been working on the windows compile.

vectorphresh