This is a source-code release of the Mirror Object Steering System.  The
normal academic terms and conditions apply.  I.E. you can use this for
non-profit research and educational purposes without fees or licenses.  All
other rights are reserved.

MOSS is composed of a variety of separable packages and utilities.  These are
configured and built separately, though there are interdependencies.  The
script "build_all" will configure and build everything necessary to work with
MOSS.  The resulting libraries, binaries and include files are placed into
appropriate subdirectories at the top level of the source distribution.  If
you'd like them placed elsewhere, edit "build_all" and change the definitions
of BINDIR, LIBDIR, etc.

This distribution contains a simple demonstration program with source in
"bounce_demo".  The program consists of a steerable executable "ball" and a
graphical steering interface "bounce" (both of which should be placed in the
bin directory after the build).  You should be able to run "bin/ball" and one
or more copies of "bin/bounce".

In order to provide their services, some of these libraries rely on network
service daemons.  You can try out this software for a short period of time
by using daemons running in the domain cc.gatech.edu.  However, for
longer-term use you must run your own daemons.  More information on the
daemons is available at:
	http://www.cc.gatech.edu/systems/projects/MOSS/servers.html
The three basic daemons: format_server, group_server and atom_server, are
automatically configured and build with the rest of the distribution.


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

You can find basic documentation on PBIO and DataExchange in their respective
"doc" directories.  Information is also available at:
      http://www.cc.gatech.edu/systems/projects/DataExchange
      http://www.cc.gatech.edu/systems/projects/PBIO

There is at present little documentation on writing code with the object
system or MOSS itself.  We ask that you code by example for the moment.  The
underlying CORBA-style object system operates like similar systems.  For that
reason, the general information describing the use of ILU, another CORBA-style
object system may be useful.

http://www.parc.xerox.com/istl/projects/http-ng/ilu-sources/doc/manual_1.html

Please note this is a research system and that we do not support all of
CORBA.  The most glaring basic omission is lack of support for exceptions.


Basic Installation on Windows NT
==================

This is a source-code release and may require tweaking in order to build in
your environment.  We typically build using 'make' from the MKS Toolkit and
the command-line interface to the Microsoft Visual C++ compiler.  Because
the configure script may not run under NT, we provide Makefile.nt and
config.nt.  You should copy or rename Makefile.nt to "makefile", and copy or
rename config.nt to "config.h".  Also, if you do not have 'sed' (available
from Cygnus or as part of the MKS toolkit), you should copy cthread.nt to
cthread.h.  Otherwise cthread.h will be built automatically.  

After this preparation, do "make all".  We do not provide a project workspace
or makefile configuration for VC++.  You *might* be able to create a Makefile
Project under VC++ and use nmake to build DataExchange.  However, I've found
that nmake doesn't like curly brackets in Makefiles.  So you probably would
have to edit Makefile.nt to change the curly brackets to smooth parens.  Also,
at this time, we build an object library, not a DLL.

The files Makefile.nt and config.nt were generated by the configure.nt
configuration script.  Configure.nt is itself derived from the Unix
"configure" script through the action of the sed script unix_to_nt.sed.  We
are able to run configure.nt using KSH with the MKS tools.  Your mileage may
vary.  Other versions of ksh or sh may work more or less like Unix and
configure or configure.nt may work more or less well.

Before you build DataExchange, you must build PBIO.  Because the path
searching mechanisms don't work well in configure.nt, PBIO *must* be
accessible in ../pbio from the dataexchange build directory.

Building on NT is definately a "don't try this at home kids" kind of task.
If you can't manage it, we are unlikely to be able to help you.  We may try to
have a binary release for NT available at some point...
