RageIRCd v2.0 (bluemoon): Win32 Compile Guide
---------------------------------------------

$Id: win32-compile-guide.txt,v 1.1.2.2 2005/02/21 02:32:45 amcwilliam Exp $
(C) 2000-2005 the RageIRCd Development Team, all rights reserved.

RageIRCd v2.0 is the first version of RageIRCd to be usable on computer
systems running Microsoft Windows. (See win32.txt for further information.) This
support is given by utilising the Cygwin emulation layer, and is used in two
very different ways.

The system requirements for RageIRCd v2.0 on cygwin are the same as on any
other UNIX style system. Development headers, a compiler, a linker, etc. (Please
note that RageIRCd v2.0 may work on Cygwin 1.3, but 1.5 is recommended.)

Cygwin uses BASH (Bourne Again Shell) as its interactive command line, and so
you can use Cygwin like any other UNIX style system. Standard, static
installations can be performed identically. However, this will limit your
RageIRCd v2.0 server to the system (and installation directory) at compile. Your
chat server will also use /etc/resolv.conf for the DNS resolver.

The problem of distribution arises for those persons running RageIRCd v2.0 on
an IRC network. Most networks use additional third party modules, and so each
server should have them loaded. However, RageIRCd v2.0 for Windows must be
compiled statically (like the generic installers provided by RageIRCd).

If you want to compile RageIRCd v2.0 for distribution, you can configure
as you normally would, but you must also specify the --with-win32-distrib
option. This will allow you to create a custom, distributable ircd.exe and
makefile.exe (i.e. for your network) with any custom compile settings or third
party modules built in.

The --with-win32-distrib configure option has the following effects.

1. The installation path will be changed to use the current directory. This
   allows your ircd.exe to execute from any directory on a computer system,
   but means you cannot perform a "make install" - you manually install files
   you want.

2. The DNS resolver configuration will use another file. On most UNIX style
   systems, name server configuration is read from /etc/resolv.conf. This does
   not exist on Windows systems, however. The ircd will therefore attempt to
   open and read "resolv.conf" from the execution folder. (I.E. along-side the
   ircd binary and ircd.conf.)

These files can then be distributed and used to overwrite the ircd.exe and
mkpasswd.exe binaries installed from the generic RageIRCd installers.

Please note: if you compile a distributable windows compile of RageIRCd v2.0,
you must take into consideration the cygwin DLLs it is linked against. If the
official RageIRCd v2.0 windows installers are distributed with Cygwin version
1.5.10, and you compile with 1.5.12, you must also distribute any cygwin system
libaries too - namely cygcrypt-0.dll, cygwin1.dll and cygrunsrv.exe. (OpenSSL
support will also require cygcrypto-x.x.x.dll, cygssl-x.x.x.dll and openssl.exe)

End of Document