I took a look at the NaviServer HEAD and the Win32 build is broken in several places.

On this machine I have Visual Studio 6, Visual C++ Toolkit 2003, and Visual Studio 2005. The build files in CVS are for Visual Studio 6 and Visual Studio .NET 2003. I'm not sure if it is worth spending time on the VS6 build files. The 2003 Toolkit is command-line only, but is free-to-download. Visual Studio 2005 has some nice features, but since it was just released I don't know how many people have started using it. Unfortunately, there appear to be problems no matter which version you start with. :-)

I tried VS2005 first, since Microsoft has stopped mainstream support for VS6, so e.g. recent Platform SDKs don't work with it. There are a number of issues using VS2005, starting with TCL patch #1096916. I think it was only applied to the 8.5 branch. When building I think we would want to define:
_CRT_SECURE_COPP_OVERLOAD_STANDARD_NAMES=1
_CRT_SECURE_NO_DEPRECATE=1
_CRT_NONSTDC_NO_DEPRECATE=1
and potentially
_USE_32BIT_TIME_T=1

I tried Visual Studio 6, but there I had problems there with an old version of Ws2tcpip.h being used; that may just be how I have my include path set up, I'd have to investigate further. It causes problems in dns.c at least.

There are also a number of problems not specific to the compiler version:

nsthread/compat.c, getopt.c, and tclatclose.c are gone. task.c, tclcache.c, tcltime.c, and url2file.c have been added. These changes need to be reflected in the build files.

The #define's for NS_MAJOR_VERSION etc. were removed from ns.h but are still needed by the Windows build.

Visual Studio doesn't allow mixed declarations and code for .c files, so in urlspace.c line 1431 we need to move the "doit" declaration to the top of JunctionFind.

The new code in binder.c will need a number of additional ifdef's to compile on Win32.

The tcl debug suffix changed from "d" to "g" some time ago, this should be reflected in the post-build copy instructions.

As I mentioned in my earlier post, the AOLserver HEAD now has a unified command line build system, it might be worth taking a closer look at that...
Thanks,

Jamie


Reply via email to