This file describes the standard installation procedure for OSE. Ensure
that you have read the `PROBLEMS' file and made changes to your C++
compiler or operating system in order to fix up any problems described,
before attempting installation. Also, make sure you read this file
completely before actually doing anything. If you take the time to read
this file, installation should be relatively painless.

Note that free support for OSE is no longer provided, although you can
subscribe to the mailing list and try your luck there if you have problems.
If you decide to use OSE in a serious way and are interested in a support
agreement, send email to;

  ose@nms.otc.com.au
  
Also, note that OSE 4.2 will be the last version of OSE which is available
which does not have any major restrictions on its use. In the future,
unless by agreement, OSE will only be available for personal use or for
use internal to your company.


Part 1: Configuring OSE
=======================

Initial configuration of OSE is carried out using a GNU style configure
script. If you are not familiar with these types of configure script, read
the file `util/make-3.73/INSTALL'. Note that the `configure' script is
not used in the same way it is with GNU software, therefore, many of the
command line options do not have any effect.

Defining the host type
----------------------

When you run `configure' for OSE, you must provide a tag to identify the
host type for which OSE is being installed. A directory corresponding to
the value of the tag will be created in the installation area and libraries,
programs and configuration files which are specific to the host placed
underneath that directory. Files which can be shared between different
hosts will be placed in a common directory to cut down on the amount of
disk space used when OSE is installed for multiple host types.

In general, you can use any naming convention you wish for the tag as long
as it is different for each incompatable host type for which OSE is being
installed. Those tags for which there is a dependence on a specific value
are marked below with an `*'. A suggested naming convention is to
incorporate both the cpu type and operating system type into the name of
the tag. For example:

  ALPHA_OSF		DEC Alpha Workstation
  HPPA_HPUX		Hewlett Packard Workstation
  MIPS_IRIX		Silicon Graphics Mips Workstation
  POWER_AIX		AIX (Power PC)
  SPARC_SUN4		Sun Sparcstation - SunOS 4.X (*)
  SPARC_SOL2		Sun Sparcstation - Solaris 2.X
  X86_LINUX		Linux (80x86 architecture)
  X86_NT35		Windows NT 3.5/3.51 (80x86 architecture) (*)
  X86_SCO		SCO (80x86 architecture)
  X86_UNIXWARE		UNIXWARE (80x86 architecture)

You must pass the tag for the host type to the `configure' program using
the `--host' option. For example, if installing OSE on a Sun Sparcstation
running SunOS 4.1.3, you would run `configure' as:

  ./configure --host SPARC_SUN4

Supplying the `--host' option to `configure' to define the host type is
mandatory. If not supplied, `configure' will not run. Do not run
`configure' just yet though, as there are a number of other optional
command line options you may want to define.

Defining where OSE is installed
-------------------------------

When multiple versions of OSE are installed, they are all installed under
a common root directory. Each different version is kept separate by being
installed in a subdirectory of the common root directory, corresponding to
the version of OSE. By default, the common root directory under which any
version of OSE is installed is:

  /usr/local/ose

If for example, both version 3.3 and version 4.0 of OSE had been installed,
the following two directories would subsequently exist:

  /usr/local/ose/3.3
  /usr/local/ose/4.0

To specify a prefix other than `/usr/local' for the name of the root
directory, you should pass the `--prefix' to `configure'. For example, if
you were installing OSE on a machine running Solaris 2.X, you may wish to
perform the installation into the `/opt' directory, rather than
`/usr/local'. Assuming that your machine was a Sun Sparcstation, to set the
prefix to `/opt' you would run `configure' with the options:

  ./configure --host SPARC_SOL2 --prefix /opt

This will result in the root directory being:

  /opt/ose

Note that the directory name `ose' is appended automatically by the
`configure' script to whatever the prefix is defined as, to arrive at the
name of the root directory. You should therefore, not include `ose' in the
prefix yourself when you define it. You should also make sure you do not
add a trailing `/' to the pathname you provide.

If installing OSE for the ObjectStore C++ compiler, and you intend using
the DML extensions provided by that compiler, the destination directory for
OSE must be in a filesystem in which ObjectStore databases can be created
and manipulated.

Before commencing installation of OSE, you will need to ensure that the
common root directory you have specified exists. The installation procedure
will not automatically create the directory. If you do not create the
directory, the build procedure will tell you, and subsequently stop.

Optional libraries
------------------

OSE is currently supplied with one optional C++ class library. This is the
OTK library. This C++ library provides extensions to the event dispatcher
in the OTC and OUX library to allow the TCL/TK library to be used by your
applications, but allow the features of the event dispatcher supplied with
OSE to still be available. In order to be able to install this library, you
need to have TCL version 7.0 and TK version 3.3 or later versions. You will
need to apply a patch to your copy of TK in order to add some new functions
required by the OTK library, and have reinstalled the TK library. The file
containing the additional functions can be found in the `misc' directory
and is called `tkEvents.c.ext'. Instructions as to what needs to be done
are contained in the file. OSE will need to know where the header files and
libraries for TCL/TK are installed, as well as the header files and
libraries for X Windows. This information should be supplied in the host
configuration files as will be described later.

If you want the optional OTK library to be installed, you must pass the
`--with-OTK' option to `configure' when you run it.

Note that defining whether or not the OTK library is built, will in a future
version of OSE be done by setting a variable in the host `build.mk' file and
not be a parameter to `configure'.

Running `configure'
-------------------

You should now run `configure', supplying the madantory `--host' option,
and the optional options if required. The `configure' script must be run
from the directory in which it is located. For example:

  ./configure --host SPARC_SOL2 --prefix /opt --with-OTK

The `configure' script will use the C compiler `cc'. It will not use `gcc'
unless you tell it to. If installing OSE on NeXTSTEP, you must force the
`configure' script to use `gcc' instead of `cc'. This is because `cc -E'
does not work as required on the NeXTSTEP platform. To force use of `gcc',
set the CC environment variable when running the `configure' script. For
example:

  CC=gcc ./configure --host X86_NEXT

If installing OSE on Solaris, you must ensure that `/usr/ucb/cc' will NOT
be found before `/opt/SUNWspro/bin/cc'. Also, make sure that the directory
`/usr/ccs/bin' appears in your path and that you have not installed GNU
versions of `ranlib' or `ar', as the GNU versions of these programs will
cause Sun C++ 3.0.1 to fail. If you do not have a working version of the
compiler `/opt/SUNWspro/bin/cc', you will need to force the `configure'
script to use `gcc'.

If installing OSE on UNIXWARE, you must prevent the C compiler from
inlining system functions when `configure' is being run. To do this
the C compiler options `-O -K no_host' must be used. For example:

  CFLAGS="-O -K no_host" ./configure --host X86_UNIXWARE

If installing OSE on Windows NT, you must have available the MKS Toolkit,
Micro$oft C++ and the WIN32 version of GNU make from Cygnus. The latter
is currently available in the package of GNU tools from Cygnus at the
address:

  ftp.cygnus.com:~ftp/pub/gnu-win32/win32

A version of these tools containing `bash' was released right at the time
this version of OSE was being released and thus it hasn't been
investigated as to whether the GNU tools can be used exclusively in place
of the MKS Toolkit. The problems mentioned with respect to the `b8' version
of GNU make may not exist in this latest release of the GNU tools.

The path to the MKS Toolkit programs, must appear in your path before that
of the GNU programs.

When actually running `configure' on the Windows NT platform, you will need
to invoke the Korn Shell supplied with the MKS Toolkit explicitly with the
name of the `configure' script given as argument.

  sh ./configure --host X86_NT35 --prefix /

The `configure' script expects the MKS Toolkit to be installed in `/mksnt'
and Micro$oft C++ in `/msvc20'. If these are in different locations, you
can edit `configure' and change the paths given in that file. Do not however
change the options passed to the compiler. Note that doing this will add
`^M' characters to the file which will make it unusable on the UNIX
platform. If you are also using UNIX, it may therefore be advisable to copy
`configure' to `configure.nt', making the modifications to the copy and
running it.

Finally, for Windows NT, you should not use the drive specifier in any of
the pathnames, also, you should use `/' and not `\'. This does mean that
you are restricted to installing OSE into the same drive as where you
have the source located. Once installed, if you wish to use OSE from a
different drive to where it is installed, you will need to set the
environment variable OSE_ROOT to be the location of OSE. Ie.,

  OSE_ROOT="c:/ose"

The drive in which you install OSE and in which you work must support long
filenames.

Note that using drive letters may cause some problems. It may be necessary
to have everything you are using in the one drive.

Note that because WIN32 doesn't properly distinguish between upper and
lower case characters in filenames, you cannot use a `.C' extension for C++
files in Windows NT. The `C' module is thus not installed under Windows NT.

Checking the files created by `configure'
-----------------------------------------

The files generated by `configure' are:

  host/XXX/config.mk
  host/XXX/OSE-CONFIG.h

The value of `XXX' will be what you provided as the tag identifying the
host on which you are installing OSE. For example:

  host/SPARC_SOL2/config.mk
  host/SPARC_SOL2/OSE-CONFIG.h

After having run `configure', check these files. If necessary make changes.
If changes are required, please let us know so that `configure' can be
modified, if necessary, to ensure that the fields are filled in with more
appropriate values.

Note that if the INSTALL variable is set to be 'cp', a version of the
'install' program provided with OSE will be used. If not set to 'cp',
you should confirm that the 'install' program it finds is satisfactory.
If the 'install' program it finds is located in '/etc' or in '/sbin'
you will need to change the INSTALL variable to read 'cp'.

Host/Site Configuration File
----------------------------

You now need to modify the host configuration files. The host configuration
files are located in the subdirectory of the `host' directory which
corresponds to your host. The names of the files are:

  build.mk
  site.mk
  system.mk

If your system was not one for which these files exist, the `configure'
script would have created the subdirectory and placed into it a copy of the
files from the `GENERIC' host directory.

Defining C++ libraries to be built
----------------------------------

This information is in general defined by modifying the `build.mk' file.

Versions of the C++ libraries for more than one C++ compiler can be
installed. The libraries for each different C++ compiler will be placed
into separate directories. When using `makeit', the version of the library
corresponding to the C++ compiler you are using will automatically be
selected.

Some of the C++ compilers which are known to have so far succesfully
compiled the C++ libraries are:

  ATT2.1		AT&T C++ 2.1 (CFRONT)
  ATT3.0.1		AT&T C++ 3.0.1 (CFRONT)
  CL1.1			CenterLine 1.1 (CFRONT)
  CL2.0.2		CenterLine 2.0.2 (CFRONT)
  DEC1.3		DEC C++ 1.3
  GNU2.5.6		GNU C++ 2.5.6
  GNU2.6.0		GNU C++ 2.6.0
  HP3.0			HP-UX C++ 3.0 (CFRONT)
  KAI2.03		KAI C++ 2.03 (EDG)
  LC3.2			Lucid C++ 3.2
  MS2.0			Micro$oft C++ 2.0
  NOV2.0		Novell C++ 2.0 (EDG)
  OS2.0			ObjectStore C++ 2.0 (CFRONT)
  OS3.0			ObjectStore C++ 3.0 (CFRONT)
  SG3.0			SGI C++ 3.0 (CFRONT)
  SG4.0			SGI C++ 4.0 (EDG)
  SGD1.0		SGI Delta C++ 1.0 (EDG)
  SUN2.1		Sun C++ 2.1 (CFRONT)
  SUN3.0.1		Sun C++ 3.0.1 (CFRONT)
  SUN4.0.1		Sun C++ 4.0.1 (CAFE)
  SUN4.1		Sun C++ 4.1 (CAFE)
  XL1.1			XL C++ 1.1.2.22

Various vendor ports of AT&T CFRONT have also been used by assuming it was
an original AT&T compiler. If your C++ compiler is not in the above list,
contact us and we will tell you what we can about whether that C++ compiler
has been successfully used, and the tag you should use to identify that
C++ compiler.

Each C++ compiler for which you want a version of the C++ libraries
installed must be listed in the `C++COMPILERS' variable. Do not list
in this variable any C++ compilers which are not capable of compiling
the C++ libraries supplied with OSE. If you are only installing `makeit'
and are not installing the C++ libraries, do not define this variable.
  
Now define the `DEFAULTC++COMPILER' variable. This should be the C++
compiler to be used if the user has not specified explicitly in their
makefile for `makeit', the C++ compiler which they want. The default
C++ compiler does not need to be one of the C++ compilers you have
listed in the `C++COMPILERS' variable.

If using HP C++, you should not define `+eh' in the set of options for the
compiler. If you want exception support enabled, you should add the
environment tag `EH' to the compiler tag to get for example, `EH-HP3.0'. It
is possible to list both `EH-HP3.0' and `HP3.0' in the `C++COMPILERS'
variable. If this is done, versions of the C++ libraries with and without
exception support will be installed, and you will be able to select between
them.

When ObjectStore C++ is listed, it will be used in the mode whereby the DML
extensions are enabled. If you intend to use the library interface for
ObjectStore and want the DML extensions disabled, you should use the
compiler tag `OSTORE-OS3.0'.

When wishing to use a C++ compiler other than the ObjectStore C++ compiler
with ObjectStore, the tag for the compiler should be prefixed with the
environment tag `OSTORE'. Some of the C++ compilers which are known to have
so far succesfully compiled the C++ libraries, where support for ObjectStore
was included, are:

  OSTORE-ATT3.0.1	AT&T C++ 3.0.1
  OSTORE-MS2.0		Micro$oft C++ 2.0
  OSTORE-SUN3.0.1	Sun C++ 3.0.1
  OSTORE-HP3.0		HP C++ 3.0

Note that any combination which requires using the template preprocessor
with ObjectStore, is not supported.

Note that only ObjectStore 4.0 and latter versions are supported on the
Windows NT platform.

For Versant, the environment tag `VERSANT' should proceed the compiler
name. For example:

  VERSANT-ATT3.0.1	AT&T C++ 3.0.1
  VERSANT-CL2.0.2	CenterLine 2.0
  VERSANT-SUN3.0.1	Sun C++ 3.0.1
  VERSANT-XL1.1.2	IBM XL C++ 1.1.2.22

Note that for the following:

  VERSANT-SUN4.X.Y	Sun C++ 4.X.Y

Install only for the SUN4.X.Y tag, not for VERSANT-4.X.Y. In your personal
makefile you can say VERSANT-4.X.Y though. In this case, the versions of
the libraries for SUN4.X.Y will be used as it is not necessary to build
special Versant versions of the libraries with the SUN4.X.Y compiler.

For each C++ compiler, multiple variants of the library will be installed.
By default four standard variants are defined. These are:

  dbg			Compiled with support for debuggers.
  opt			Compiled with optimisation.
  prf			Compiled with support for profilers.
  std			Compiled with no special support.

If you wish to change the set of variants, for which C++ libraries are
installed, you should change the value of the `VARIANTS' variable.

Note that a bug in the `b8' version of GNU make for WIN32 means that
you cannot defined more than one variant in the VARIANTS variable on
the Windows NT platform. If you want to install more than one variant,
you will need to do one at a time.

You must now define the `DEFAULTVARIANT' variable. This should be the
variant which is used, if the user has not specified explicitly in their
makefile for `makeit', the variant which should be used. The value of
`DEFAULTVARIANT' must be one of the variants listed in the `VARIANTS'
variable.

You should now indicate whether your host supports shared libraries and
which variants shared libraries can be created for. If you do not want
shared libraries to be generated, you should not define the `PICVARIANTS'
variable. Otherwise, you should define the `PICVARIANTS' variable to be the
list of variants for which shared libraries should, or can be generated.
Creation of shared libraries including profiling or debugger information is
not possible on some platforms, so check your operating system documentation.

If you have enabled the creation of shared libraries, you will need to
provide details about the compiler options needed to create object files
for use in shared libraries, and the linker options to create the shared
library. The variables for defining this information are `C++PICFLAGS',
`CPICFLAGS' and `LDPICFLAGS'. How to install a shared library should also
be defined by the `PICINSTALL' macro. The variables are in the `system.mk'
file.

Listing all four variants in the `VARIANTS' variable means that four
separate libraries will be created for each C++ library. More will be
created if generation of shared libraries is enabled. Compiling the
libraries multiple times like this may take a while. If you are new to OSE,
you therefore might consider listing only the `opt' and `dbg' variants in
the `VARIANTS' variable and disable generation of shared libraries. When
installation is working okay, build all four variants, letting the
installation run overnight. Building all four variants for a single C++
compiler can range from 30 minutes to 3 hours, depending on the type of
machine you have, and the speed of the C++ compiler.

Defining C++ compiler paths and options
---------------------------------------

This information is in general defined by modifying the `site.mk' file.

You now need to define the locations of any C++ compilers which you have
available, and any special flags which should always be used for each C++
compiler. You must define the locations of the C++ compilers you listed in
the `C++COMPILERS' variable. Although you may not build versions of the
C++ libraries for them, you can list other C++ compilers as well.

Examples for a couple of C++ compilers are given below:

  SUN2.1_C++ = /usr/lang/CC-2.1
  SUN2.1_CC = /bin/cc
  SUN2.1_LD = /usr/bin/ld
  SUN2.1_CPPFLAGS =
  SUN2.1_C++FLAGS = +p
  SUN2.1_C++WARNINGFLAGS = +w
  SUN2.1_CFLAGS =

  GNU2.5.6_C++ = /usr/gnu/bin/g++
  GNU2.5.6_CC = /usr/gnu/bin/gcc
  GNU2.5.6_LD = /usr/bin/ld
  GNU2.5.6_CPPFLAGS =
  GNU2.5.6_C++FLAGS = -V 2.5.6
  GNU2.5.6_C++WARNINGFLAGS = -Wall
  GNU2.5.6_CFLAGS = -V 2.5.6

If you have threads available for the compiler/platform you are using,
thread support can be enabled within the OSE C++ class libraries by
defining a preprocessor symbol corresponding to the type of threads
available. The preprocessor symbols are:

  Posix Threads		HAVE_POSIX_THREADS
  Solaris Threads	HAVE_SOLARIS_THREADS
  VxWorks Tasks		HAVE_VXWORKS_THREADS
  WIN32 Threads		HAVE_WIN32_THREADS

You will need to also make sure that any appropriate thread libraries
are linked in with applications. An example as to how Solaris threads
are enabled when using Sun C++ 4.0.1 is as follows:

  SUN4.0.1_CPPFLAGS := -DHAVE_SOLARIS_THREADS
  SUN4.0.1_LDLIBS := -lthread

If you are using a Cygnus version of GNU C++ corresponding to a version of
GNU C++ prior to version 2.6.0, you should add -DCYGNUS to the C++FLAGS
variable for that compiler. The flag is needed to work around a program
with template instantiation and the interface/implementation pragmas.

If you are using ODE, you may need to take out the "+p" option. This is
necessary as the ODE front end incorrectly marks some things as
anachronistic when they shouldn't.

If you are using SUN2.1 or ATT2.1, you may need to take the "+w" option out
as there are bugs in early revisions of those compilers which cause an
internal error when a certain warning message is produced.

Note that there is no need to define separate entries for C++ compilers
with environment tags such as "VERSANT" and "OSTORE". Only define the
location of the C++ compiler using its unmodified tag.

When defining the locations and flags for the C++ compilers you have
available, you should also provide overrides for C++ compiler flags for
specific variants, where flags need to differ from the defaults. For
example, ObjectStore C++ only includes decent debugging symbols if the
`-gx' option is used. Usually, the `-g' option would be used.

You will also need to set a number of other options corresponding to
whether your C++ compiler has certain patches applied, whether the
preprocessor used by your C++ compiler can cope with C++ code, and whether
your C++ compiler requires an ANSI style preprocessor if the preprocessor
supplied with OSE is being used. Consult the host configuration file for
further information on these options.

Defining location of third party products
-----------------------------------------

This information is in general defined by modifying the `site.mk' file.

The final step of manual configuration is to define the locations of any
third party products which are required or which you have available.
Options related to these products may also need to be set. Products which
options exist for are Purify, Quantify, Purelink, Sentinel, Versant,
ObjectStore, ODE, TCL/TK and X Windows.

If you ran `configure' with the `--with-OTK' option, you must define the
location of TCL/TK and X Windows.

Adding support for new C++ compilers
------------------------------------

If the build environment does not currently support your C++ compiler you
will also have to edit the file `include/makeit/compiler.mk'. If you have to
do this, then we suggest that you contact us first, so that we can direct
you in what changes to make.


Part 2: Compilation of GNU make
===============================

The build environment provided with OSE requires GNU make version 3.67 or
later, to operate. Since the OSE build environment is actually used to
compile and install OSE, you will need to compile GNU make before installing
OSE. Version 3.73 of the GNU make package can be found in the directory
`util/make-3.73'. If you do not use the copy of GNU make provided, but want
GNU make to read makefiles with the name `makeit.mk' and `Makeit.mk', you
will need to add these names to the `default_makefiles' variable in the file
`read.c' of the version of GNU make you do use.

To compile GNU make, follow the directions contained in the file `INSTALL'
which can be found in the GNU make directory. NOTE, BEFORE YOU RUN
CONFIGURE FOR GNU MAKE, MAKE SURE YOU REMOVE THE FILE 'config.cache'. IF
YOU DON'T THE PARAMETERS FOR THE LAST PLATFORM ON WHICH GNU MAKE WAS BUILT
MAY BE USED IN ERROR. You do not need to install GNU make as the
installation of OSE will also install the compiled version of GNU make from
the `util/make-3.73' directory into an appropriate place.

Note that you shouldn't use the source for GNU make provided, get the
prebuilt version of GNU make for WIN32 from:

  ftp.cygnus.com:~ftp/pub/gnu-win32/win32

In doing so though, you will not be able to use `Makeit.mk' or `makeit.mk'
as the name of the makefile.

Note that if you do not build the version of GNU make provided, but use
your own version of GNU make, you will need to copy it into the OSE
installation area yourself. When copied into the OSE installation area, it
should be called `makeit'. The file should be placed into the `etc'
directory underneath the directory created for the host you are installing
OSE on. For example, if installing OSE version 4.0, using the host tag
of `SPARC_SUN4', and the root directory is `/usr/local/ose', you will
need to run:

  cp make /usr/local/ose/4.0/SPARC_SUN4/etc/makeit

where `make' is your version of GNU make.


Part 3: Building and installing OSE
===================================

Before proceeding further with the installation, set the environment
variable `OSE_HOST' to the value you supplied as argument to the `--host'
option when running `configure'. For example, if using the host tag
of `SPARC_SUN4' and if running a Bourne Shell, you would use:

  OSE_HOST=SPARC_SUN4
  export OSE_HOST

Or if running a C-Shell, you would use:

  setenv OSE_HOST SPARC_SUN4

You will also need to set this environment variable whenever you wish to
use OSE after it has been installed.

If you do not set OSE_HOST when doing the installation, you will see the
error messages:

  include/makeit/init.mk:79: host//config.mk: No such file or directory
  include/makeit/init.mk:84: host//build.mk: No such file or directory
  include/makeit/init.mk:94: host//system.mk: No such file or directory
  include/makeit/init.mk:99: host//site.mk: No such file or directory
  make: *** No rule to make target `host//site.mk'.  Stop.

Now make sure that the root directory for OSE already exists. If it does
not exist, you will need to create it as the installation will not do it.

If you only want to install makeit at this point and do not wish to compile
and install the C++ libraries and other tools, run the following command
from the top level src directory:

  util/make-3.73/make install.makeit

To compile and install all of OSE, you should run the following command from
the top level src directory:

  util/make-3.73/make install.all

Note that because of a bug in the `b8' version of GNU make for WIN32, you
cannot use the `install.all' target under Windows NT. You must instead use
`install' and thus if wishing to install OSE for multiple C++ compilers, do
one at a time by changing the value of DEFAULTC++COMPILER.

Note that some products of compilations are removed as the installation
proceeds, in order to conserve space. If you have problems and need to
install OSE for only one C++ compiler, so that the results of compilation
are not removed, you can run:

  util/make-3.73/make C++COMPILER=SUN2.1 install

where C++COMPILER is set to the identifier for the compiler. If you used
the `install' target and wish to compile and run the test programs, go to
the directories lib/OTC and lib/OUX in turn, and run

  util/make-3.73/make C++COMPILER=SUN2.1 check

If you use the `install' target, you will need to remove the byproducts of
the installation manually by running:

  util/make-3.73/make C++COMPILER=SUN2.1 clean

from the top level src directory.

When you do use the `install.all' target, by default, if compilation for
any of the C++ compilers specified fails, the full build will stop. If
you want, you can have the build process skip the compiler which failed
and move onto the next compiler. At the end of the full build, a list of
the C++ compilers which failed will be given. To enable this behaviour,
set the DONTSTOPBUILD variable to `YES' on the command line when you
run make. Ie.:

  util/make-3.73/make DONTSTOPBUILD=YES install.all

Note that, depending on which compiler you are using, compiling and keeping
everything will take up a lot of space, so allow at least 25-30MB of free
space where you are compiling OSE in this way. If you are using
ObjectStore, a considerable amount of space will be required if you keep
everything around. If using Sun C++ 3.0.1, you will also need `/tmp'
space of about 8MB. If using Sun C++ 3.0.1 with ObjectStore, you will
need `/tmp' space of between 15 and 20MB depending on whether inline code
is actually being inlined or not.


Part 4: Cleaning up
===================

The installation process does not remove temporary object files and
executables from the directory util/make-3.73. Therefore, you should
run:

  make clean

in that directory.


Part 5: Configuring user environments
=====================================

To use OSE, you must now set up your user environment appropriately. Three
variables should be set. These are `PATH', `MANPATH' and `OSE_HOST'.

The `PATH' variable should be set to include the `bin' directory located
under the install directory for this version. For example, if this is
version 4.0 of OSE, and the root directory for all versions of OSE is
`/usr/local/ose' you will need to include the following in your PATH
environment variable:

  /usr/local/ose/4.0/bin

The `MANPATH' should be set similarly, but for the `man' directory. For
example:

  /usr/local/ose/4.0/man

The `OSE_HOST' variable should be set to the value you use for the host
tag for this installation. In other words, the value supplied as argument
to the `--host' option when you ran `configure'. For example, on a
Sparcstation running Solaris 2.3, you may have used:

  SPARC_SOL2

If after setting these, you run `makeit' and see an error message something
like:

  makeit: /usr/local/ose/4.0/SPARC_SOL2/etc/makeit does not exist, stopping

it means that the GNU make binary was not installed correctly. If you had
built the version of GNU make provided, this would have been installed
automatically. If you used your own version of GNU make, you were supposed
to have installed it manually as was described above. Go back now and
install a copy of GNU make in the specified location.
