# How to build AOLserver on Win32

> Are the Windows makefiles (or whatever) and build instructions in CVS
> yet?


The build script is in CVS HEAD (win32/build.tcl) but there are NO instructions yet. Expect to see a "How to build AOLserver on Win32" page on the wiki, soon.  :-)

The short explanation:

AOLserver can now be built on Win32 as native binaries with completely free (no cost) tools from Microsoft. You will need:

You'll need to jump through some hoops to configure your environment variables correctly, as well as copying msvcrtd.lib from the .NET Framework lib/ directory into your VC++ lib/ directory, as well as some other things that I didn't keep track of. If you run into problems, just ask.

(I should probably add notes in here about how to build Tcl, too. In the meantime, here's a link to the Tcl'ers Wiki: Building Tcl with the free VC++ toolkit.)

   C:\> vcvars32.bat

   C:\> cd \path\to\aolserver\source

   C:\...> tclsh win32\build.tcl

     ... build output scrolls by ...

   C:\...> tclsh win32\build.tcl install

     ... installation output scrolls by ...

   C:\...> cd installed

   C:\...\installed> bin\nsd.exe -ft sample-config.tcl


At this point, you should be up and running.

NOTES:

  1. vcvars32.bat (or whatever it's called) ensures that cl.exe and link.exe are in your PATH, that INCLUDE and LIB variables are set to the appropriate location where VC++'s include and libraries live.

  2. The build.tcl script currently assumes that Tcl was built in ..\tcl_core-8-4-6 (relative to the top of the AOLserver source directory) and when you built Tcl, you did a "nmake -f makefile.vc install INSTALLDIR=installed" so that Tcl was installed into ..\tcl_core-8-4-6\win\installed.  That's just how my build environment is set up -- I plan to enhance the build.tcl script to let you pass in the path to the Tcl install from the command line, but for now it's hard-coded in.

  3. Also, sample-config.tcl from CVS HEAD will work, but the one in the aolserver_v40_bp branch will NOT -- I didn't backport the "fix" to the script yet.

  4. I use Cygwin "cvs" to check the code out of CVS, then start a regular DOS "cmd.exe" shell to do the actual build.


CAVEATS

314882 - Inbound Connections Limit in Windows XP - In benchmarking the latest builds, I ran into a problem where setting concurrency above 5 (I'm using WinXP) results in every connection being refused and failing. Apparently, after Win9x, Microsoft has crippled the IP stack with this licensing restriction in the non-"Server" versions of their operating systems. This is a terrible shame. However, there ought to be a way to configure AOLserver to stay "within the limits" and not try to accept more connections than allowed, otherwise once incoming traffic exceeds the limit, ALL connections get dropped -- very unreasonable behavior.

Question: Have you tried to build nsjk2 yet? pgw

Dossy 26jul04 - No, I haven't, yet. Are you interested in it (i.e., would you do the testing) since I have little experience with nsjk2 and there's probably zero interest within AOL to see nsjk2 on Win32 (although I haven't asked around yet) ... so any testing of nsjk2 on Win32 will be community-driven if at all.