Installation manual
Contents
Preliminaries
Configuration files
Specifying the JDK version
Installation
Preliminaries
To install and use the following should be pre-installed on your system:
- Java Development Kit version 1.1 or higher (version 1.2 recommended)
- An ANSI compliant C compiler (gcc recommended)
- (f)lex and yacc/bison
The JDK 1.2 is recommended, because this solves a memory problem. With JDK
1.1, some memory will not be garbage collected, which may ultimately cause
an OutOfMemoryException to be thrown.
Both compilers are written in ANSI C. The default method for compiling these
uses gcc together with flex and bison. This documentation
describes how to change to other tools if the defaults are not installed on
your system.
Back to contents.
Configuration files
This distribution of NexusRMI comes with a number of configuration files,
that may require editing before installing.
The first configuration file is config.mk
in the nexusrmi directory. This file specifies where the various parts of
NexusRMI are to be installed and on what platform (hardware architecture
and operating system) the binaries are going to run.
The following variables are set in this configuration file:
- ARCHITECTURE specifies the platform for which the binaries
should be generated and installed. Currently supported are SunOS,
Linux, Irix, and AIX.
- RTS_DIR specifies where the Nexus and NexusRMI
runtime system are to be installed. The Nexus runtime system will
be installed in a subdirectory "nexus<version>". A symbolic link
"nexus" will be created to point to "nexus<version>". When
ompiling or running NexusRMI, the class files will be accessed through
this symbolic link, since the complete nexus code is specified to be in
package nexus. The same setup is installed for NexusRMI. A
subdirectory "nexusrmi<version>" will be created together with a
link "nexusrmi" to it. The actual version is dependend on the distribution
and is not configurable. To run NexusRMI applications, include RTS_DIR
in your CLASSPATH.
- BIN_DIR specifies where the binaries are to be installed. To
allow the coexistence of multiple binaries for multiple platforms, a
subdirectory is created for the platform that is currently chosen. In
RTS_DIR itself, only platform independent scripts are installed,
which will automatically choose the correct binaries when needed. To
run the compiler, only RTS_DIR needs to be in your PATH.
- DOC_DIR specifies the directory where the documentation (that
you are currently reading) is to be installed.
Note that the directories need not exist yet, each directory and all parents, if
yet non-existent, will be created. This means that it is possible to install
the complete NexusRMI distribution in a yet non-existent nexusrmi directory. This
directory will be created as well as the documentation, binary, and java runtime
directories.
In the architecture dependent binary directories (e.g. compiler/bin/sunos)
the configuration files for specific binaries are found. Here
is the example configuration file for Solaris platforms.
The following variables are set in this configuration file:
- CC specifies the C compiler to use.
- CFLAGS specifies the flags to pass to CC
- LD specifies the linker to use.
- LDFLAGS specifies the flags to pass to LD
- LEX specifies the lexical analyzer generator to use.
- LFLAGS specifies the flag to pass to LEX.
- YACC specifies the syntactic analyzer generator to use.
- YFLAGS specifies the flags to pass to YACC
Edit the configuration file matching the specified ARCHITECTURE if
you do not have the default tools installed.
Back to contents.
Specifying the JDK version
There are separate NexusRMI runtime versions for use with JDK 1.1 and JDK 1.2. Two
classes from the nexusrmi.server package are different for these versions.
To allow the coexistence of these two versions, they are present in two separate
files with the version number included in it and a symbolic link to the current
version. If you are planning on installing the JDK 1.2 version, make sure the
files for class UnicastRemoteObject and RMIClassLoader in
compiler/runtime/Nexusrmi<version> look like this before installing:
RMIClassLoader.java -> RMIClassLoader.v12.java
RMIClassLoader.v11.java
RMIClassLoader.v12.java
UnicastRemoteObject.java -> UnicastRemoteObject.v12.java
UnicastRemoteObject.v11.java
UnicastRemoteObject.v12.java
If you are going to use JDK 1.1, make the symbolic links point to the JDK 1.1 versions
instead.
The nexusrmic and the nexusrmis compilers both require the existence of
class file binaries for the classes passed to them and all classes directly or indirectly
referenced from these classes. This means, that, ultimatly, the Java runtime system
classes also need to be available. We have not implemented reading class files from
zip- or jar-archives, so you need to unpack these archives in a
suitable directory. Since it is not advisable to have the unpacked class files in your
CLASSPATH both compilers temporarily include this directory in their
CLASSPATH. This means that you have to edit both scripts (nexusrmic and
nexusrmis in compiler/bin) to include the directory with the unpacked
system class files in their CLASSPATH.Each JDK version has its own collection
of system class files, so switching to another JDK version requires the unpacking of
the correspondig class files and the modification of these scripts to reflect the
version change.
Look in both scripts for a line of the following form:
CLASSPATH=${CLASSPATH}:<some dir>
and replace <some dir> with the directory containing the unpacked
class files.
Once NexusRMI is installed, both changes related to the JDK version change can still be
performed. In this case, look for UnicastRemoteObject.java and
RMIClassLoader.java in RTS_DIR/nexusrmi/server and look for
nexusrmic and nexusrmis in BIN_DIR.
Back to contents.
Installation
After having edited the configuration files to your liking, installing
the NexusRMI system is simply a matter of typing 'make' in the nexusrmi
directory.
Back to contents.
Fabian Breg
Last modified: Sat Oct 17 15:56:18 EST 1998