omniORB2 on OpenVMS platforms
=============================

This file contains information on building omniORB2 on OpenVMS (Alpha and
and VAX) platforms.

Downloading the distribution
----------------------------

For best results, do the following.

Download the .zip version of the distribution directly to your VMS site.  Obtain
the freeware unzip utility from the Digital OpenVMS web site
(http://www.openvms.digital.com/openvms/freeware/freeware.html).  Set your
default location to the top level directory of the distribution.  Unzip the file
[.etc]openvms.zip.

Building the distribution
-------------------------

This distribution requires the use of MMS.  It has been tested on OpenVMS Alpha
version 6.2 and OpenVMS VAX version 6.1 using DEC C++ version 5.5 and 5.6.

The MMS files assume the use of the MMS /Skip qualifier.  You should define a
"make" symbol as follows:

	$ make=="mms/skip"

Before starting the build, you should configure your system to the platform you
are using by editing the file [.config]config.mms.

Next, set your default working directory to [.src] and type:

	$ make/macro=(initialize_mms=1)

You should now be ready to build. Just type 'make export'.  If you use the
"veryclean" rule you will need to repeat the above initialization step.

To build debug versions of the library and/or executables, type:

	$ make/macro=(debug=1)

This will create libraries and executables with a "d" suffix.  For example,
omniORB2d.olb.

Setting up your environment
---------------------------

If your operating system is 6.2 or above, you should add the directory:
mydisk:[myroot.bin.platform] to the logical name DCL$PATH (where platform is
openvms_{alpha|vax}_6_{1|2} and mydisk:[myroot] is the directory containing the
file you are reading).  DCL$PATH should be defined as a search list logical.

If your operating system is 6.1 or below, you should define each of the
executables in that directory as foreign commands.  E.g.:

	$ omniidl2=="mydisk:[myroot.bin.openvms_vax_6_1]omniidl2.exe"

To compile and link against the omniORB2 libraries, you should define the
following logical names:

	$ define <qualifiers> omni mydisk:[myroot.include]
	$ define <qualifiers> omniORB2 mydisk:[myroot.include.omniORB2]
	$ define <qualifiers> omniVms mydisk:[myroot.include.omniVms]
	$ define <qualifiers> omnithread mydisk:[myroot.include.omnithread]

(Note that the resulting logical names and translations will be in all upper
case.)  With the above definitions in place, you should add
/include=([],omni:)/exceptions to your CXX compiles.  The other logical names
are needed because DEC C++ for OpenVMS does not handle sub-directories of a
directory in the include path properly.

You will also need to define the logical OMNICFG to point to an existing
directory for name service configuration information.  The omniNames server
will use this directory.

You will need to create a file called "omnicfg:omniorb.cfg" to contain the
nameservice IOR as described in the omniORB2 documentation.  The file
contains the single record:

NAMESERVICE <stringified IOR>

Once you have created this file, you should startup the omniNames server as a
detached process.  This should be added to your system startup procedure.

Notes
-----

If you are running OpenVMS version 6.1, please ensure that you have
installed the latest ECOs for the DEC C RTL and C++ Class Library.

This release of omniORB2 is incompatable with the backport library supplied
with DEC C++ version 5.6.  Therefore, if your operating system is below 7.0
and you use DEC C++ version 5.6, be sure that the logical name DECC$CRTLMAP
is not defined.

Building the examples
=====================

You are strongly encouraged to try out the examples provided in
[.src.examples]. Go into [.src.examples] and type 'make all' (where make is
defined as above).

Study the documentations in [.doc] (in the omniORB 2.5.0 distribution) before
you run any of the example programs.

Documentation
=============

You must read the omniORB2 and the OMNI naming service user guides. Follow
the instructions in the guides to complete the configuration process.


