===========================================================================
			README.VMS
===========================================================================

A more complete and HTML'ized version of these directions can be found at.

	http://www.ourservers.net/openvms_ports

For help or problems with these directions please e-mail 
"byer@mail.ourservers.net"

What platforms are supported?
- -----------------------------

The FreeCiv v1.12.0 CIVCLIENT and CIVSERVER for OpenVMS so far has only
been tested by me personally on the following Alpha platforms.

   * AlphaStation-250 4/166, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif
     v1.2.5, Multinet TCP/IP v4.2a
   * AlphaStation-250 4/266, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif
     v1.2.5, Multinet TCP/IP v4.2a
   * AlphaStation 500/333, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif
     v1.2.5, Multinet TCP/IP v4.2a

The FreeCiv v1.12.0 CIVSERVER for OpenVMS has only been tested by me
personally on the following VAX platforms.

   * VAXStation-4000/60, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif
     v1.2.5, Multinet TCP/IP v4.2a
   * MicroVAX-3400, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif v1.2.5,
     Multinet TCP/IP v4.2a
   * VAXServer-3300, OpenVMS v7.2, DEC C v6.0-001, DECWindows Motif v1.2.5,
     Multinet TCP/IP v4.2a

Note: Currently the FreeCiv CIVCLIENT is only supported on the Alpha
platform. The FreeCiv CIVSERVER is suppored on both the VAX and Alpha
platforms.

The problem with having a FreeCiv CIVCLIENT for VAX is the IMLIB and GTK+
graphics libraries haven't been ported to VAX yet, they have been ported to
Alpha and hopefully someone will port them to VAX.

One should have no problems with older versions of OpenVMS just as long as
one is using the DEC C compiler and DECWindows Motif, but I've only tested
FreeCiv on OpenVMS v7.2 with DEC C v6.0-001.

But having said that, I would be happy to help someone having problems with
older C compilers and older versions of OpenVMS.

  ========================================================================

What do I need to build FreeCiv v1.12.0 for OpenVMS?
- ----------------------------------------------------

O.k., here's is what you need to build FreeCiv v1.12.0 on an OpenVMS
system.

  1. A copy of the "current stable" FreeCiv v1.12.4 distribution kit. The
     "current stable" FreeCiv v1.12.0 source files can be found at
     ftp://ftp.freeciv.org/freeciv/stable/freeciv-1.12.0.tar.gz

  2. A installed copy of Digital Equipments DEC C compiler. If you do not
     have a copy of the DEC C compiler you can obtain a copy via the
     OpenVMS Hobbyist Program at http://www.montagar.com/hobbyist

  3. An OpenVMS version of the Unix TAR utility. If you do not have a copy
     of an OpenVMS TAR utility you can obtain a copy at
     ftp://ftp.levitte.org/vms/

  4. An OpenVMS version of the Unix GNU ZIP utility. If you do not have a
     copy of an OpenVMS GNU ZIP utility you can obtain a copy at
     http://www.openvms.digital.com/freeware/gzip/

If you want to build the FreeCiv X CIVCLIENT you will also need to have the
following. You can build just the FreeCiv CIVSERVER without having to build
the FreeCiv X CIVCLIENT.

  1. DECWindows Motif installed and running along with the compiler
     libraries for DECWindows Motif.

  2. You will need to download, compile and install the lastest version of
     the OpenVMS Porting library. You can get the lastest version of the
     OpenVMS Porting library from
     http://www.openvms.digital.com/openvms/products/ips/porting.html

  3. You will need the latest version of GTK+ for OpenVMS Alpha. This can
     be found at
     http://www.openvms.digital.com/openvms/products/ips/gtk.html

     If your version of DEC C is pre v6.2 you will need to download this
     patch kit for GTK+ so you can compile and link the GTK+ libraries. The
     GTK+ patch kit can be found at
     http://www.ourservers.net/openvms_ports/gtk/gtk_contents.html

  4. You will need the latest version of IMLIB. This can be found at
     ftp://ftp.gnome.org/pub/GNOME/stable/sources/imlib/imlib-1.9.8.1.tar.gz

  ========================================================================

Building FreeCiv v1.12.0 for OpenVMS.
- ------------------------------------

O.k. You have everything outlined in the previous section and you want to
get the ball rolling.

Note: For pupose of example we will use the installation directory of
DISK$WORK:[000000]

  1. If needed, install the DEC C compiler, DECWindows Motif, OpenVMS TAR
     or GNU ZIP for OpenVMS.

  2. If you are planning on building the FreeCiv v1.12.0 X CIVCLIENT you
     will need to compile, link and install the OpenVMS Porting Library if
     it is not already installed.

  3. If you are planning on building the FreeCiv v1.12.0 X CIVCLIENT you
     will need to compile and link the GTK+ For OpenVMS Alpha kit.

     Note: You need to unpack the GTK+ kit in the same directory root where
     you will be unpacking FreeCiv and the directory needs to start with
     GTK as the compile script will look for a directory starting with GTK
     in the same root directory as the FreeCiv distribution.

             Example:

                     [000000]
                             [.GTK128]
                             [.FREECIV-1_12_0]


     If your version of DEC C is pre v6.2 you will need to download this
     patch kit for GTK+ so you can compile and link the GTK+ libraries. The
     GTK+ patch kit can be found at
     http://www.ourservers.net/openvms_ports/gtk/gtk_contents.html

  4. Unpack the Unix FreeCiv v1.12.0 distribution file
     FREECIV-1.12.0.TAR-GZ into a directory of your choice.

             $ SET DEFAULT DISK$WORK:[000000]
             $ GUNZIP [.DOWNLOAD]FREECIV-1_12_0.TAR-GZ
             $ TAR -vxf FREECIV-1_12_0.TAR


  5. If building the FreeCiv v1.12.0 X CIVCLIENT, unpack the IMLIB v1.9.8.1
     distribution file IMLIB-1_9_8_1.TAR-GZ into THE SAME DIRECTORY where
     you unpacked the FreeCiv v1.12.0 files.

             $ SET DEFAULT DISK$WORK:[000000]
             $ GUNZIP [.DOWNLOAD]IMLIB-1_9_8_1.TAR-GZ
             $ TAR -vxf IMLIB-1_9_8_1.TAR


  6. If you are just building everything you should see the following
     directories.

             FREECIV-1_12_0.DIR
             <your GTK+ directory>
             IMLIB-1_9_8_1.DIR


     If you are just building the FreeCiv v1.12.0 server you should only
     see the FREECIV-1_12_0 directory unless you also installed the other
     files to build the client later.

  7. You need to define a logical to point to the directory where you
     installed your OpenVMS Porting library.

             $ DEFINE/NOLOG PORTING_LIB DISK$CARTMAN:[PORTING_LIB.]


  8. Go to the FreeCiv [.VMS] directory where you will find the compile
     script VMS_BUILD.COM. The VMS_BUILD.COM script accepts the following
     parameters.

          P1:  ALL             Just Build Everything.
               IMLIB           Just Build The IMLIB Library.
               COMMONLIB       Just Build The Library Of Common Routines.
               AILIB           Just Build The AI Library.
               SERVERLIB       Just Build The Server Library.
               CIVSERVER       Just Build The CIVSERVER Server Executable.
               CLIENTLIB       Just Build The Client Library.
               GTKCLIENTLIB    Just Build The GTK Client Library.
               CIVCLIENT       Just Build The CIVCLEINT Executable.

          P2:  DEBUG           Build With Debugger Information.
               NODEBUG         Build Without Debugger Information.

          P3:  PRE_DECC_V6_2   Compiling With A Pre DEC C v6.2 Compiler.


     If you execute VMS_BUILD.COM without any options the script will
     default to "ALL" and "NODEBUG".

     Note: If you are JUST building the FreeCiv server and haven't unpacked
     any of the necessary files for the X client (i.e. GLIB, IMLIB, GTK and
     Mozilla) then DON'T use the options ALL, CLIENTLIB, GTKCLIENTLIB or
     CIVCLIENT as the script will complain about the necessary files not
     being found.

     If you are compiling on a machine with a pre DEC C v6.2 compiler YOU
     MUST enter PRE_DECC_V6_2 as the third option if you are going to build
     the CIVCLIENT or you will get compile errors.

     So if you are just building the server, just use the SERVER option to
     save the hassle.

  9. The VMS_BUILD.COM script will then proceed compiling and linking with
     the options you have selected.

     Depending on what options you chose, you may see compiler and linker
     warnings, espically for IMLIB, CLIENTLIB, GTKCLIENTLIB and CIVCLIENT.
     These are norml and won't harm anything and we are working on having
     them resolved.

 10. When all is done, you should have one of the following executables (or
     more depending on the build parameters you gave) in your [.VMS]
     directory.

             CIVCLIENT-AXP.EXE               AXP FreeCiv v1.12.0 GTK-GUI Client.
             CIVSERVER-AXP.EXE               AXP FreeCiv v1.12.0 Server.

             CIVCLIENT-AXP.EXE-DEBUG         AXP FreeCiv v1.12.0 GTK-GUI Client With OpenVMS Debug Information.
             CIVCSERVER-AXP.EXE-DEBUG        AXP FreeCiv v1.12.0 Server With OpenVMS Debug Information.

             CIVSERVER-VAX.EXE               VAX FreeCiv v1.12.0 Server.
             CIVSERVER-VAX.EXE-DEBUG         VAX FreeCiv v1.12.0 Server With OpenVMS Debug Information.

  ========================================================================

Customizing FreeCiv v1.12.0 for OpenVMS.
- ----------------------------------------

Basically, the only customizations that need to be done is to define some
logicals.

For the CIVSERVER and CIVCLIENT you need to define the logical FREECIV_PATH
that points to the directory [.FREECIV-1_12_0.DATA]. This needs to be
defined in Unix format.

        Example:

        $ DEFINE/SYSTEM FREECIV_PATH "/DISK$WORK/FREECIV-1_12_0/DATA"

If you plan to run FreeCiv alot (either the server or client) I would
define the above logical in your system startup file.

You also need to define a symbol for the FreeCiv server.

        $ CIVSERVER :== $DISK$WORK:[FREECIV-1_12_0.VMS]CIVSREVER.EXE-AXP

If you plan to run FreeCiv alot (either the server or client) I would put
this in your system login file.

For the CIVCLIENT, you need to define the following logicals to point to
where you have your GTK+ and OpenVMS Porting libraries.

        $ DEFINE/SYSTEM LIBGLIB DISK$WORK:[GTK128.GLIB]LIBGLIB.EXE
        $ DEFINE/SYSTEM LIBGMODULE DISK$WORK:[GTK128.GLIB]LIBGMODULE.EXE
        $ DEFINE/SYSTEM LIBGDK DISK$WORK:[GTK128.GTK.GDK]LIBGDK.EXE
        $ DEFINE/SYSTEM LIBGTK DISK$WORK:[GTK128.GTK.GTK]LIBGTK.EXE
        $ DEFINE/SYSTEM VMS_JACKETS DISK$CARTMAN:[PORTING_LIB.LIB]VMS_JACKETS.EXE

I would also define a symbol for the FreeCiv client.

        $ CIVCLIENT :== $DISK$WORK:[FREECIV-1_12_0.VMS]CIVCLIENT-AXP.EXE

If you don't define the above logicals you will get an error when you
attempt to run the CIVCLIENT. If you plan on running the client often I
would recomend defining the above logicals in your system startup file and
defining the client symbol in your system login file.

  ========================================================================

Testing FreeCiv v1.12.0 for OpenVMS.
- -----------------------------------

You have done the following:

   * Compiled FreeCiv v1.12.0 for OpenVMS as outlined in Building FreeCiv
     v1.12.0 for OpenVMS.

   * Defined the appropriate logicals and symbols to suite your
     installation as outlined in Customizing FreeCiv v1.12.0 for OpenVMS.

And now you want to test FreeCiv to make sure it works. Here's how you can
test things out.

FreeCiv Client:

  1. Make sure you have your X display set up properly so you can display X
     windows processes.

  2. Launch the FreeCiv client.

             $ CIVCLIENT


     If all goes well, you should see the client startup and you should see
     the connection box.

  3. Click on the Metaserver tab and press the Update button. You should
     see a list of available FreeCiv servers you can connect to.

  4. Select a server that show a Status of Pregame and click on the Connect
     button.

  5. You should now be connected to a server. When someone else joins the
     game or the game starts you should be able to pay the game with no
     problems.

  6. Enjoy.

FreeCiv Server:

  1. Make sure you have your X display set up properly so you can display X
     windows processes.

  2. Run the FreeCiv server process in debug mode and to send information
     to the Metaserver.

             $ CIVSERVER -D 3 -M


  3. The server should start in debug mode and you will get the server
     prompt.

  4. Launch the FreeCiv client in a different window.

             $ CIVCLIENT


     If all goes well, you should see the client startup and you should see
     the connection box.

  5. Click on the Metaserver tab and press the Update button. You should
     see a list of available FreeCiv servers you can connect to.

  6. You should see your server listed in the Metaserver list. Click on
     your server and click on the Connect button.

  7. You should now be connected to your server and the server should show
     your connection and you should see the connection dialog in the client
     text window.

  8. On your server process, type START and the game should start and you
     should see the game start dialog on the client.

  9. Play a game for a bit to see if the server is working. If it appears
     to be working, Enjoy.

Normally when you start the server to play a game, you don't usually use
the -D 3 option, this is just a debug option. The Metaserver option -M is
used to report to the public Metaserver that you are running a public game.
If you want to run a private game, don't use the -M option. Most of the
type just typing CIVSERVER will be enough to run a game.

The FreeCiv server has other options for loading saved games etc. If you
use the -H option you will see a list of all the options and typing HELP
inside the server process will show a list of server options you can
change/execute from the server command line.

Note: All file names and paths need to be in Unix format.

For more information on running a FreeCiv server, see the FreeCiv WWW site.
