         Compiling CircleMUD under Microsoft Windows 95 or Windows NT
                    using CygWin (formerly GNU-Win32)
               by David Goldstein (goldstei@cs.sunysb.edu)

CircleMUD compiles under version b19 or later of Cygnus Solutions'
GNU-Win32 environment without needing any special modifications.  This free
pseudo-Unix environment for Windows 95 and NT includes the "bash" shell,
"gcc" family of compilers, and a full set of programs and libraries for
Windows users to compile and run programs from source code intended for Unix.
It can be downloaded from Cygnus' own servers or a number of mirror sites
through http://sourceware.cygnus.com/cygwin/download.html.

Compiling Circle under GNU-Win32 is basically the same as it would be under
another form of Unix:

1) Download and install full.exe from Cygnus' ftp server or one of the mirror
   sites, if you haven't already.  It is a good idea to set the environment
   variables for Cygwin in your startup sequence (autoexec.bat, etc.).

   Note that there are show-stopping bugs in b19.0 and b20.0.  If you already
   have one of these installed, be certain to upgrade to b19.1 or b20.1.

2) Again, if you haven't already done so, mount the directory containing the
   bulk of the executable Cygwin programs, C:\Cygnus\B20\H-i586-cygwin\bin
   by default, as /bin, by typing
        mount C:\Cygnus\B20\H-i586-cygwin\bin /bin
   from a DOS prompt (NOT the bash shell).  You can check this by running
   "mount" without any parameters, and checking for an entry for /bin.  Also,
   make certain that the DOS path contains all of the correct backslashes.

3) Download and uncompress the latest version of CircleMUD according to the
   instructions in the main README file.  (The FTP site is ftp.circlemud.org,
   in the pub/CircleMUD directory).  Make sure that if you have downloaded the
   "zipped" version (circle30bplXX.zip, or example), that you use an unzip
   program which can handle long file names to unzip it (like the Win32 version
   of Info-Zip's "unzip").  Otherwise, download ther "tarred, gzipped" version
   (circle30bplXX.tar.gz), and extract the files using the versions of tar and
   gunzip which come with the full Cygwin package.

4) Start the "bash" shell and go to the directory where you have extracted
   CircleMUD (we will assume "C:\circle30bplXX", or "/circle30bplXX" from
   within bash, where 'XX' is the current patchlevel).  DO NOT go into the
   "src" directory yet.

5) Run the shell script "./configure".  This will automatically detect
   whether or not certain programs and library functions are available, and
   create the files "Makefile" and "conf.h" based on the results.

   If you get complains from bash that it will not run the configure script
   either because it cannot find it or because of it claims the file is not
   an executable, you can also try "sh configure", "sh ./configure",
   "bash configure" and "bash ./configure" until one of them works.

6) NOW change to the /circle30bplXX/src directory, and type "make", and watch
   CircleMUD and the additional utilies included in the Circle distribution
   automatically being compiled and placed in /circle30bplXX/bin. (Remember,
   'XX' is the current patchlevel number, e.g., 'circle30bpl20'.)

7) Make sure your TCP/IP stack is installed, correctly configured, and running.
   If you are already using TCP/IP applications from your Windows machine such
   as Netscape or telnet, then no changes should be necessary; otherwise go to
   the Control Panel's "Network" settings, select "Add Protocol", and add
   Microsoft's TCP/IP.  Consult the documentation for Windows 95 if you have
   any additional questions about how to set up TCP/IP under Windows 95.  (Do
   not send mail to me or Jeremy Elson on this topic.  Microsoft has an
   excellent tech support line, and chances are that your ISP has a decent tech
   support line too.)

   YOU MUST INSTALL AND CONFIGURE YOUR TCP/IP STACK, EVEN IF YOU ARE NOT 
   CONNECTED TO THE INTERNET.

8) Go back to /circle30bplXX, and run the MUD either directly by typing
   "bin/circle", or by using the "./autorun" script.

9) Start a telnet program (SEE NOTE BELOW).  Open a connection to your
   own machine ("localhost", or whatever the name of your machine happens
   to be) on port 4000.  You should see the MUD's login screen welcoming
   you and asking for your name.

   VERY IMPORTANT NOTE:  The standard telnet program that comes free with
   Windows 95 and NT does *not* work correctly for connecting to any MUD
   because it does not support telnet's line-mode interface (so you can't
   see what you are typing).  Note that simply turning on the "local echo"
   option does not fix the problem; this prevents echo from being turned
   off while you're typing your password, and screws up the display if you
   try to hit the backspace key too many times.

   Do not use Microsoft's telnet applet -- instead, use EWAN, CRT, zMUD, or
   any other Winsock telnet application.  EWAN and CRT can be downloaded
   from any number of sites (for example, www.windows95.com).  zMUD is an
   excellent MUD client; for more information, see the official home page
   at http://www.trail.com/~zugg/zmud.html.

Known errata:

1) CircleMUD cannot use the version of the crypt() function written by Andy
   Piper and distributed by Sergey Okhapkin (http://miracle.geol.msu.ru/sos/).
   If you have this "libcrypt.a" library installed, you need to disable it
   prior to running "./configure".  I do not know if another version of crypt()
   will work or not.  The problem manifests itself at runtime, when the program
   tries to encrypt passwords, and results in a segmentation fault which will
   crash the MUD.

If you have problems, read this document again.  Most of the questions which
Jeremy Elson receives in email or which are posted to USENET newsgroups are
answered in this README file, or in other documents included in the CircleMUD
distribution.  If you are still having problems and you're *sure* that this
your question is not answered in this document or in one of the others files
in the /circle30bplXX/doc directory, try reading the CircleMUD FAQ at
ftp://ftp.circlemud.org/pub/CircleMUD/FAQ.  If all else fails, you can send me
or Jeremy Elson mail for help.  Note, however, that if you ask me any question
that is answered in these documents, all we'll do is mail you the appropriate
file.

Credit where credit is due:

Some parts of this document have been derived or outright copied from other
files in the CircleMUD distribution, including the files README and README.WIN
by Jeremy Elson.

-David Goldstein


--- Additional items of note.

* Make sure /bin points somewhere useful, like your
  /cygnus/cygwin-b20/H-i586-cygwin32/bin directory.
  If you didn't follow the directions given in #2
  above, you can do the following command:

  ln -s /cygnus/cygwin-b20/H-i586-cygwin32/bin /bin

  Obviously you'll need to adjust the path if you
  do not keep your installation in c:\cygnus.

* Make sure /tmp exists.  You can either make it a
  real directory or point it at the system temp
  folder with:

  ln -s /windows/temp /tmp

(Information from Tony Robbins.)

-George Greer
