______________________________________________________________________

                         The Goldware Library
                     Copyright (C) Odinn Sorensen
                         Installation How-To
                             June 8, 1998
______________________________________________________________________


Installation

  These instructions are incomplete. You should be prepared to figure
  out a few things for yourself to get the whole thing working.

Libraries

  There are currently four libraries:

    gall        - General and special functions and classes.
    gcfg        - FTN configuration file readers for GoldED.
    gmb3        - Messagebase classes used by GoldED 3.x.
    gmb4        - Messagebase classes used by GoldED 4.x.

  And five programs:

    gbuild      - Make/build helper.
    gmanual     - Manual compiler.
    golded3     - GoldED 3.x FTN/Internet mail/news reader.
    golded4     - GoldED 4.x FTN/Internet mail/news reader (*).
    goldnode    - GoldNODE nodelist compiler.

    (*) The source code for golded4 is currently broken and cannot be
        compiled.

Source tree

  The library can be placed anywhere. The environment variable GSRC
  must be set to the base directory where the Goldware library
  directory is placed.

  Example:

  c:\source\goldware\gbuild
  c:\source\goldware\gmanual
  c:\source\goldware\golded3
  c:\source\goldware\golded4
  c:\source\goldware\goldlib
  c:\source\goldware\goldnode

  I have my source tree beginning in "c:\source", so I have
  "SET GSRC=c:\source\goldware".

Object/library trees

  The library generates a ton of object and library files, which are
  carefully kept apart. To do this, a directory tree must be created.
  This can be done automatically with "make -f install.mak". NOTE! You
  must set GOBJ and GLIB first!  Check install.mak and makedirs.mak
  before you do it. Not tested much. May work best with GNU make.
  You probably need to install the GNU fileutils first, if you want to
  compile a platform != Linux.

Utilities required

  The library makefiles require the utility program "gbuild", which is
  available in a separate archive. You must copy this program to your
  DOS/WIN, OS/2 or Unix path before trying to build the library. Later
  you can re-build gbuild, when you have compiled at least liball.

  To build the msgbase libraries (gmb3 and gmb4), you must have
  the AWK utility.

Environment variables

  The library requires the following environment variables:

  GSRC=<path to the goldware source>
    The directory where the library directory is located, for example
    GSRC=c:\source\goldware.

  GOBJ=<path to where object files can be placed>
    GOBJ=c:\src\obj

  GLIB=<path to where library files can be placed>
    GLIB=c:\src\obj

  GNU=<27X,28X> Set this variable to 27X if you're still using
  DJGPP/GNU v2.7.x, else (default) 28X for GNU 2.8.x.

  BC?_CFLAGS=<Borland C++ compiler flags>
  BC?_BASE=<path to the Borland C++ base directory>
  BC?_INC=<path to the Borland C++ include directories>
  BC?_LIB=<path to the Borland C++ library directories>
    Replace '?' with 'D' for DOS 16-bit overlayed, 'O' for OS/2 or 'X'
    for Win32 console versions.

    This is what I use:
    set bcd_cflags=-1- -O2-i -b- -d -Ff=100 -g255 -j50 -K -k- -ls -ml
                   -N- -Tmx -To -Tt -Tzn -v- -vi -w+ -Y -x- -RT-
    set bcd_base=c:\bc5
    set bcd_inc=-I.;c:\bc5\include;%gsrc%\goldlib\gall
    set bcd_lib=-L.;c:\bc5\lib;%glib%\bcd;
    set bco_cflags=-O2-i -a1 -b- -d -g200 -j50 -K -k -N- -v -vi -w+ -x-
    set bco_base=d:\bcos2
    set bco_inc=-I.;c:\bcos2\include;%gsrc%\goldlib\gall;c:\mmpmtlk2\h;
    set bco_lib=-L.;c:\bcos2\lib;%glib%\bco;c:\mmpmtlk2\lib;
    set bcx_cflags=-O2-i -b- -d -g200 -j50 -K -k- -ls -N- -Tmx -Tax
                   -TTpe -To -Tt -v -vi -w+ -WC -x-
    set bcx_base=c:\bc5
    set bcx_inc=-I.;c:\bc5\include;%gsrc%\goldlib\gall
    set bcx_lib=-L.;c:\bc5\lib;%glib%\bcx;

  WC?_CFLAGS=<Watcom C++ compiler flags>
    Replace '?' with 'N' for Win32, 'O' for OS/2 or 'X'
    for DOS-386 versions.

    This is what I use:
    set wcn_cflags=-ms -onatlmr -s -zp1 -5r -w4 -zm -bt=nt  -d1
    set wco_cflags=-ms -onatlmr -s -zp1 -5r -w4 -zm -bt=os2 -d1
    set wcx_cflags=-ms -onatlmr -s -zp1 -5r -w4 -zm -bt=dos -d1

  INCLUDE=<Watcom C++ include directories>
    The Goldware library include directory must be included in this.

    This is what I use:
    set include=.;c:\watcom\h\os2;c:\watcom\h;c:\watcom\h\nt;
                c:\mmpmtlk2\h;%gsrc%\goldlib\gall

Makefiles

  The library uses a clever set of makefiles, with "Makefile" as the
  primary. There are specific makefiles (*.mak) for the different
  compilers, and a special makefile to build make include files,
  library response files etc.

  To compile the library, simply run make with one of these targets:

  (Library compile:)
  bcd       Borland C++       DOS 16-bit
  bco       Borland C++       OS/2
  bcx       Borland C++       Win32
  djg       DJGPP GNU C++     DOS 32-bit
  emx       EMX GNU C++       OS/2
  lnx       GNU C++           Linux
  rsx       RSXNTDJ GNU C++   Win32  (DJGPP with RSXNTDJ)
  wcn       Watcom C++        Win32
  wco       Watcom C++        OS/2
  wcx       Watcom C++        DOS 32-bit

  (Other:)
  pack      Create a packing list file, bldpack.lst
  clean     Remove generated inc/rsp/lnk/lst etc. files

Target notes

  The djg and emx targets are experimental.
  The rsx target is experimental and not tested.
  The wcn target is not fully completed yet, at least not to work with
  Watcom C++ 10.0.

Make programs supported:

  Borland MAKE  No problems.
  GNU make      No problems.
  Watcom WMAKE  Use WMAKE <target> MAKE=WMAKE SYMBOLIC=.symbolic

Adding, removing or renaming source files

  If you need to add, remove or rename sourcefiles, you must update
  the *.all file, which is "mother of all" files. It is from that file
  that make include files and other list files are built. After
  updating it, you should run "make clean".

Compilers

  The library has been tested with the following compilers:

  * Borland C++ 5.0 (4.5x should work too, maybe even 3.1 too).
  * Borland C++ 1.5 for OS/2. BC++ 2.0 should work too.
  * Watcom C++ 10.0b.
  * EMX 0.9c with fix 04.
  * DJGPP 2.01 with GNU C++ 2.7.x.x.
  * GNU C++ 2.7.x.x and egcs/pgcc 1.1 under Linux.

Goldbase msgbase

  You must never edit the Goldbase sourcefiles (GMBGOLD?.CPP and
  GMOGOLD?.CPP). They are generated automatically with an AWK script
  from the Hudson sourcefiles.

______________________________________________________________________

