TinyMUX 2.0: INSTALL
Last Update: April 2000

Please note that there are two sets of instructions included in this 
file.  Please skip to 'Instructions for Existing Games' for how to 
upgrade your server or to compile in preparation for moving an existing 
game.


Instructions for New Installations:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.  cd src/ to the source directory. Run 'configure'.  This will 
    customize autoconf.h and Makefile for your system.
    
2.  Edit the Configuration section of the Makefile.  This is usually 
    not needed. Most likely, all you will need to change are any C++ 
    flags needed by your particular C++ compiler,(in particular 
    -fpcc-struct-return), and any esoteric libraries needed by your 
    system. There may also be some #defines in config.h that you may want 
    to change, but in general, the defaults should not be changed.

----> Within the Makefile, you can also enable:
      - Memory based database handling (as opposed to the default disk
            based handling. (see docs/MEMORY)
      - Radix string compression. (see docs/COMPRESSION)
          - Enable WOD REALMS. (see docs/REALMS)
          
3.  Run make depend, then make.  This will produce netmux, mkindx, slave,
    and dbconvert.
    
4.  When starting from a MUX from scratch, do the following:

      - cd to the game directory. 'cd ../game'
      - Make your configuration file, as described in docs/CONFIGURATION
      - Type './Startmux'.  TinyMUX 2.0 automatically creates a minimal 
        DB if one does not exist in the game/data directory.
      - Log into the game as player wizard 'connect wizard potrzebie', 
        and shut it down again.
        
5.  Edit the .txt files in game/text to your liking.  In particular 
    connect.txt and motd.txt.
    
6.  Start up TinyMUX 2.0 by running './Startmux' again.

7.  @ccreate a channel named 'Public', and a channel named 'Guests' from
    within the MUX. Created players will automatically be joined to 
    'Public'with alias 'pub', guests will automatically join 'Guests' with 
    alias 'g'.
    

Changes to dbconvert:
~~~~~~~~~~~~~~~~~~~~
 - One of the major and important changes to MUX 2.0 is the use of CHash 
   in the place of GDBM.  You will notice the changes primarily in the way 
   dbconvert and the db_unload and db_load scripts work.  
 
 - dbconvert is the means by which the binary game data is converted to 
   flatfile format and back again.  The db_load and db_unload scripts 
   simplify the process for the user. 
 
 - The syntax of the scripts is:
   
   - './db_load netmux netmux.flat netmux.db'
     
     This converts flatfiled database to binary for use by the server and 
     would be done with dbconvert thus:
     
     ../bin/dbconvert netmux X < netmux.flat > netmux.db
   
   - './db_unload netmux netmux.db.new netmux.flat'
     
     This converts binary data to flatfile for would be done with dbconvert 
     thus:
     
     ../bin/dbconvert netmux x < netmux.db.new > netmux.flat


Instructions for Existing Games:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[NOTE: It is HIGHLY recommended that you preserve a previous setup if 
you can, to make conversion a bit less painful.  If you had one while 
converting, make sure the conversion process has completed successfully 
before you delete your old distribution.  We cannot stress enough to 
you the importance of protecting your data throughout any conversion 
or upgrade.]

1.  cd src/ to the source directory. Run 'configure'.  This will 
    customize autoconf.h and Makefile for your system.
    
2.  Edit the Configuration section of the Makefile.  This is usually 
    not needed. Most likely, all you will need to change are any C++ 
    flags needed by your particular C++ compiler,(in particular 
    -fpcc-struct-return), and any esoteric libraries needed by your 
    system. There may also be some #defines in config.h that you may want 
    to change, but in general, the defaults should not be changed.

  --> Within the Makefile, you can also enable:
      - Memory based database handling (as opposed to the default disk
            based handling. (see docs/MEMORY)
      - Radix string compression. (see docs/COMPRESSION)
          - Enable WOD REALMS. (see docs/REALMS)
          
3.  Run make depend, then make.  This will produce netmux, mkindx, slave,
    and dbconvert.
    
4.  - Put databases in game/data. 
    - Put text files in game/text.
    - The scripts db_load, db_unload, and db_check may be found in the
      game/data directory. 
    - If you changed the GAMENAME in mux.config, be sure to change 
      the filenames in GAMENAME.conf as well.
    - If you are converting from earlier version of MUX, or another 
      server such as TinyMUSH or PennMUSH, make all appropriate changes 
      to the GAMENAME.conf file.
      
      - **CHANGED**  Your old GAMENAME.conf file will not work under 
        MUX 2.0. To make a proper file, you must edit the GAMENAME.conf 
        in the MUX 2.0  game/ editting lines marked 'input_database', 
                'output_database' 'crash_database', 'game_dir_file', and 
        'game_pag_file', change 'netmux' to the same thing you entered 
        in GAMENAME. Then add in the config parameters from your old 
        game in the bottom. 
      - You can save a little time by merging the old and new conf files.  
        'cat oldfile >> newfile' then use an editor to remove the 
        unneeded lines.
        
    - If you had a mail database previously, adjust mail_expiration 
      accordingly, BEFORE you restart the game, or else ALL @mail older 
      than the default value of 14 days will be deleted.
    - If you do not want to use the built-in +help command, redefine
      PLUSHELP_COMMAND in config.h to be something else.
      
5.  Start TinyMUX 2.0 by running './Startmux'.