This installation document explains how to setup a mud based on
StickLib, provided:

a) You have a posix-compliant system (usually a unix such as
   Linux, *BSD, Solaris etc).
b) You have a C-compiler (preferably gcc), lexical scanner
  (such as lex, flex) and yacc-compatible compiler compiler.
   Usually you need not worry about them; auto-configure
   script takes care of figuring out whether you have them,
   and if so, where they are located.

If you have experience on installing software on unix-systems
installation should be a breeze, and you can probably just
quickly browse through this document to see what really needs to
be done.

This installation document has been tested on linux 2.0 and 2.2
on x86 platform; we will try to check out whether it is adequate
for other platforms as well. Comments and suggestions are welcome; if
you find things that need to be changed send email to
sticklib@stickmud.jyu.fi (sticklib developers mailing list).

First create suitable directory structure for your mud. One possible
directory structure is:

		<mud_root_dir>
	 ---------------------------------
	 |		 |		 |
	src/		bin/		lib/

<mud_root_dir> is the root directory for all the mud-related stuff;
it could be something like /home/user/mud/ (or /usr/local/mud/).
In this example, we assume the mud_root_dir to be '/home/sticklib/'.
Ff you want to have a different hierarchy modify the instructions
appropriately. :-)

The first step in installing the mud is to get source code for
the mud gamedriver. StickLib uses a slightly modified LD-3.2.1
gamedriver (LdMud is a derivative of so-called 'Amylaar'-gamedrivers,
both are descend from the original LpMud-GDs... read rec.games.mud.lp
FAQ for more information)
You can obtain the standard LD-3.2.1 (preferably a new version)
from <ftp://ftp.bearnip.com/> (subdirectory 'pub/mud' or so).

Once you have gotten the gamedriver archive, the installation goes
as follows:

a) Unpack the archive to the directory to an installation directory.
   Usually, <mud_root_dir> is ok, as most of the stuff goes to various
   sub-directories (GD sources to src/, an example mudlib to mudlib/
   and so on).
   As the archive is a gzipped tar-archive, you can use
   gnu-tar like:

   cd <mud_root_dir>
   tar xzf <archive-name>

   So, something like:

   cd src
   tar xzf ldmud-326.tar.gz

   Alternatively you can unpack the archive using zcat
   and tar. Check out documentation (man-pages) your
   system has about them.

b) Go to the source sub-directory unless you are already in
   there (cd src).

c) StickLib requires one extra efun (see LPC documentation that
   comes with the gamedriver for an explanation of efuns),
   'substitute_string()', that does not come as default with
   Ld GDs (at least not at the time of writing). To add it,
   you need to modify two files; 'func_spec' and 'interpret.c'.
   Patch files ('func_spec.diff', 'interpret.c.diff') exist
   for doing this, and they shouls be downloadable from the
   place where you got the StickLib-package.

   To apply the patches you need to use 'patch' program (a
   GNU-utility):

   patch func_spec < func_spec.diff
   patch interpret.c < interpret.c.diff

   Alternatively, if you don't have 'patch' available, you
   can manually do the modifications; although this requires
   that you understand the notation of diff-files (which shouldn't
   be too difficult but...)

d) Configure gamedriver compilation. The configuration is done via
   a configuration file. If the version of GD you
   downloaded has a sticklib-specific settings file
   ('src/settings/sticklib'), you will need to edit this file.
   If you don't have that file, it should be downloadable
   from the place you got your StickLib-package, usually named
   'settings.sticklib'. Rename this file as 'settings/sticklib'
   (in the same directory you should see other settings files
   such as 'default', 'tubmud' and so on).

   Now you need to modify the settings-file to specify certain
   mud-dependant properties such as <mud_root_dir> and port number
   the mud should be connected through. This means that the
   line:

   ./configure --prefix=/home/sticklib --with-setting=sticklib $*

   should be modified, unless your <mud_root_dir> is /home/sticklib.
   If so, replace /home/sticklib with your real <mud_root_dir>.

   Line

   with_portno=7690

   should be changed unless you want to use port 7690 for connecting
   to your mud.

   If you know what you are doing, you can also edit the other lines,
   especially those that define interaction with ERQ daemon
   (read GD documentation if you want to what ERQ is).

   Once the configuration file has been configured (:-))
   enter

   settings/sticklib

   which will actually run the configuration script

e) Compile the gamedriver by entering:

   make

   Compile the utility binary executables by entering:

   make utils

   Install the gamedriver, either manually ('mv driver ../bin/driver-sticklib')
   or by entering:

   make install

   (the install script actually renames the gamedriver executable
   as 'parse')

   Install the utility executables either manually
   ('mv util/erq ../bin', 'mv util/indent ../bin',
   'mv util/fundesc ../bin') or by entering:

   make install-utils

f) Go to the mudlib directory; in the example case:

   cd ../lib

g) Unpack the mudlib source to the directory:

   tar xzf <mudlib-archive>

h) Check out whether the mud works without any modifications. :-)
   Start up the gamedriver manually:

   ../bin/parse

   (or, ../bin/driver-sticklib; depending on under which name
   gamedriver was moved earlier on).

   Note that all the error messages are in this case output
   directory to the shell window. You can redirect them to
   a file using a shell dependant redirection
   (../bin/parse >& lpmud.log under csh for example).

   If all goes well, there will be output like:

   ]About to preload 32 objects.
   Setting up ipc.

   (these messages indicate that the mudlib is preloading
   certain important objects; after
   compiling all the code succesfully the interprocess
   communication is initialized)

   And then you should be able to log in to the mud (unless
   you started the gd on the background you now have to open
   up a new shell window or change the virtual console, or,
   if you don't mind getting possible error messages as output,
   just make the driver be run on the background with ctrl+z
   and 'bg' or whatever your favourite shell uses for that
   purpose):

   telnet localhost 7690

   (or, if you changed the port number earlier on, use the appropriate
   port number here)

   Now a default login window should be displayed, and the mud
   should ask your name and password. For testing purposes
   the StickLib comes with one default administrator character.
   Name is 'admin' and password 'password'.

   Thus:

   Give your name: admin

   Password: <enter 'password' here, it will not be echoed>

   And now you should be logged in.

i) Fix up all the problems in the mud and build the areas. Well,
   to help you a bit, here are things you need to pretty soon:

   - Configure mud-dependant login-messages. It doesn't really
     give a good impression about your Brand New Excellent
     Mud if you still have the default login screen(s)...
     So, go to /data/login/ (inside the mud) and edit the
     files as you see fit.

