Disclaimer! These instructions are intended for developers and others
who are familiar with building complex software. I won't go into very
detailed explanations, and you should familiarize yourself with any
README etc. from the source packages. I give no guarantees about the
correctness of these instructions, you may have to fiddle a bit to
get everything working smoothly. Any improvements or corrections to
these instructions are welcome.

This directory contains context diffs for xview3.2, Slingshot2.0
and UITV3, all available from ftp.x.org/contrib. The context diffs
allow the libraries and clients to be built for linux 0.99.12.

On my linux system all the source packages are installed under /usr/src.
The DLL hierarchy will contain softlinks here so you might follow the
same scheme as well.

Patching:
---------
For xview3.2, get the Patch01 file from the Fixes directory
(ftp.x.org:/contrib/xview3.2/Fixes/Patch01) and apply it to the xview source
tree before applying the xv32*.diff patches in this package.

For slingshot, do *not* apply the four patches from ftp.x.org, because
the linux patch ss.diff contains all patchlevels.

For UIT, install the UITV3.tar.Z package and apply the UICV3lx.diff
patch.

Building (static libs):
-----------------------
xview3.2:
   Follow the instructions in the README in the source package. If all
   goes well you should end up with static versions of libolgx.a and
   libxview.a, which are installed in /usr/openwin/lib. You might not
   want to build the clients or contrib/examples at this point because
   the DLL libraries haven't been built yet.

slingshot:
   Follow the README in the source package. Basically it just tells you
   to type 'make'.

UIT:
  Follow the README.linux in the toplevel UICV3 directory.

Building (DLL libs)
-------------------
Make sure you have the shlib-tools installed. Get them from
tsx-11.mit.edu:/pub/linux/packages/GCC/*/tools-2.7.5.tar.gz (??)

Create the following directories:
  /usr/src/dll
  /usr/src/dll/olgx
  /usr/src/dll/xview
  /usr/src/dll/ss
  /usr/src/dll/UIC

Install each of the *jump.tar tar-archives in their respective directories:
cd /usr/src/dll/olgx && tar xf (this directory)/olgxjump.tar
cd /usr/src/dll/xview && tar xf             .../xviewjump.tar
cd /usr/src/dll/ss && tar xf                .../ssjump.tar
cd /usr/src/dll/UIC && tar xf               .../UITjump.tar

Doublecheck the softlinks extracted from the tarfiles, make sure they point
at the location of the real sources.

Each directory under /usr/src/dll has a file called 'envvars', which you
should source before starting a build.

Before starting a build make sure no object files are left from a previous
build, i.e. do a 'make clean' in the source tree before building shared libs.

To build, you just issue a 'make' followed by 'make install' and the
DLL libraries should be installed under /usr/openwin/lib.

Example:
cd /usr/src/xview3.2/lib
make clean
cd /usr/src/dll/olgx
. envvars
make
(tons of output)
make install
make clean
cd /usr/src/dll/xview
. envvars
make
make install
... etc.

For UIT, the situation is a bit more complicated in that libUIC has been
split into two libraries (libUIC and libUICSS), where libUICSS contains
all the Slingshot dependent parts. In releases before UITV3 this 
separation was not made. Anyway, there are two different 'envvars' and
Makefiles in the UIC directory. To build both libs do:

cd /usr/src/dll/UIC
. envvars.UIC
make
make install
make clean
. envvars.UICSS
make -f Makefile.UICSS
make -f Makefile.UICSS install
make -f Makefile.UICSS clean

Important! The 'envvars*' scripts that you source before each DLL library
build sets an enviroment variable GCC_EXEC_PREFIX. You should always
remember to unset this variable before compiling anything else. So after
you have built and installed the DLL libraries, do an 'unset GCC_EXEC_PREFIX'

Other
-----
After the shared libraries have been successfully built you can build
all the clients and examples from the various packages. Check with the
'ldd' command that the all the shared libraries are used as they shall.

Kenneth Osterberg (lmfken@lmf.ericsson.se)
