===============================================================
Linux shared libraries for the Khoros 2.0.2 development release
===============================================================

Wolfram Gloger (wmglo@dent.med.uni-muenchen.de)

May 1995


INTRODUCTION

The image processing system Khoros 2.0.2 ('K2') is now available for
ftp as a 'developers release' (sources only) from ftp.khoros.unm.edu
(and other sites, see comp.soft-sys.khoros for announcements).  It
will compile without changes on Linux, but take up more than 100MB of
disk space when all binaries are statically linked (which is the
default).

I have added support for Linux a.out shared libraries for the
'bootstrap', 'data services' and 'design' toolboxes in K2.0.2.  Adding
jump files etc. for the other toolboxes seems like a waste of time to
me, since the saving in binary disk usage would be minimal.

*** Important: *** This patch set is _not_ for compiling ELF shared
libs.  I will look at ELF as soon as stable gcc-elf and XFree86-elf
packages are available.  It should be almost trivial.


CHANGES COMPARED TO THE PREVIOUS VERSION

I had to edit the jump.* DLL config files for new symbols and to
remove no-longer existent ones.  In doing so I definitely broke
backward compatibility with the 2.0.1 libraries.


WHAT AND WHERE TO GET - COPYRIGHT ISSUES

khoros2.0.2-linux.tar.gz at

sunsite.unc.edu:pub/Linux/incoming (now) pub/Linux/X11/xapps (later)
tsx-11.mit.edu:pub/Linux/ports (hopefully soon)
ftp.khoros.unm.edu:pub/khoros/contrib/ports (maybe)
ftp.e20.physik.tu-muenchen.de:pub/K2 (probably soon)
ftp.lrz-muenchen.de:/local/khoros/khoros-2.0/khoros-2.0/contrib/ports
 (probably soon)

Khoros 2.0 comes with its own license.  My patches are copyrighted and
freely distributable according to the GNU public license.  In
particular, I assume no responsibility of any kind as to the
functionality of K2 compiled with these patches.

I used gcc 2.5.8, flex 2.4.7 and BSD yacc 1.8 (?) to compile.  I have
XFree86 2.1.1, but version 3.x should work just as well.  (Don't
forget to change X11LibDir and X11LibDir_ in Site.linux appropriately,
for /usr/X11R6/lib.)  To create Linux a.out DLLs, please get and
install the a.out DLL tools 2.16 or later, e.g. from
tsx-11.mit.edu:pub/linux/packages/GCC/src/tools-2.17.tar.gz.  Earlier
versions than 2.16 have bugs that may cause problems with K2.


HOW TO APPLY THE PATCH

First unpack Khoros as described in the 'release/install' file found
on K2 ftp servers.  Unpack khoros2.0.2-linux.tar.gz, e.g. in the K2
home directory.  This will create a 'linux' directory.  Before running
bin/installit, go to the Khoros 2.0.2 home directory and apply the
patch with:

% KHOROS_HOME=/your/path/to/K2; export KHOROS_HOME
% cd $KHOROS_HOME
% patch -p0 < .../linux/patch.Linux
% tar xvf .../linux/jump.tar


HOW TO INSTALL TOOLBOXES

As described in the K2 docs,

% PATH=$KHOROS_HOME:$PATH
% installit

should compile the bootstrap toolbox, which is really the base of the
system.  For the other toolboxes and their installation, see the K2
docs.  One _important_ thing if you want to compile additional
toolboxes that are not part of khoros-2.0.2.tar.gz itself --
you have to add the following four lines at the end of
/path/to/toolbox/repos/config/imake_conf/toolbox.def
(just before the #endif /* _toolbox_def_ */ line !):

#ifdef LinuxSharedLibraries
#undef CreateKhorosSharedLibraries
#define CreateKhorosSharedLibraries NO
#endif /* LinuxSharedLibraries */


Good luck with Khoros,

Wolfram.
