2. Build and Installation

2.1. Prerequisites
2.2. Quick Install Guide - Unix
2.3. Quick Install Guide - Windows
2.4. Building from Source on Windows
2.5. Programs
2.6. Supported Platforms
2.7. Directory Structure

This section provides a complete guide to building and installing omniEvents.

2.1. Prerequisites

You need to install omniORB before you can start with omniEvents. The latest version of omniORB4 is strongly recommended. You can download it from here: http://omniorb.sourceforge.net/download.html

The Unix install requires GNU Make. If you don't have it already, then you can download it from here: http://ftp.gnu.org/pub/gnu/make/

In order to install omniEvents as a Windows service, you need to be using a modern version of Windows. You need: NT, win2000 or XP. You cannot use: win95, 98 or ME (but you can just run the server manually).

2.2. Quick Install Guide - Unix

omniEvents is distributed as source for Unix platforms. To install you must unpack the omniEvents-XXX-src.tar.gz file, build the code and then install the executables and init scripts into the correct locations on your system.

  1. Unpack the .tar.gz file: gzip -dc omniEvents-XXX-src.tar.gz | tar xvf -.

  2. Go down into the omniEvents diectory: cd omniEvents-XXX.

  3. Run the configure script. For a full list of available parameters, type ./configure --help. Common parameters are:

    --prefix=PREFIX install files in PREFIX [/usr/local].
    --with-omniorb=PATH set the path to the local omniORB installation [$OMNIORBBASE].
    -q, --quiet, --silent do not print “checking...” messages.
  4. Compile the executables: make.

  5. Get superuser privileges: su root.

  6. Install the executables: make install.

  7. Install the system init script: cd etc; make install.

  8. Set up SysV service omniorb-eventservice...

The procedure for setting up a SysV service differs from platform to platform. You need to create symbolic links from the /etc/rcX.d directories to the /etc/init.d/omniorb-eventservice init script. (The paths to these files may be different on your system.) For example, on a Debian GNU/Linux system, the command update-rc.d omniorb-eventservice defaults would set up omniEvents to start at the default runlevels.

Example 1. Typical Unix build session

% gzip -dc omniEvents-XXX-src.tar.gz | tar xvf -
% cd omniEvents-XXX
% ./configure
% make
% su root
# make install
# cd etc
# make install
#

2.3. Quick Install Guide - Windows

omniEvents is distributed precompiled for Windows. To install you must unpack the omniEvents-XXX-win32.zip file, set up your system path and install the service.

  1. Unpack the .zip file using (for example) WinZip.

    We assume that you unpack it into C:\Program Files. If you choose to put it somewhere else, then just adjust the remainder of these instructions accordingly.

  2. Add the omniEvents directory to the system environment variable: Path. It's important to NOT use the “local” path. Only the “system” path is available at boot time when services start.

    Menu: Start -> Control Panel. Icon: System. Tab: Advanced. Click: Environment Variables.

    Add to System Path: ;C:\Program Files\omniEvents-XXX

  3. Create a data directory: C:\omniEvents. omniEvents will store its persistent state in this directory.

  4. Install the service: Open a command window, and type: omniEvents install -t "C:\omniEvents\trace.out"

  5. The service will start automatically when you next reboot, or you can start it manually now.

2.4. Building from Source on Windows

It is not usually necessary to compile omniEvents for Windows, since it is available pre-compiled.

  1. Firstly make sure you have everything you need:

    Microsoft Visual C++ compiler. (Tested with version 6.0, service pack 3) The environment variables for command-line compiling must be set up. You can test this by trying to compile hello.cc (in the win32 directory) with the command:

    > cl -TP -GX -MD hello.cc

    omniORB4. Get it from http://omniorb.sourceforge.net/download.html You should set up your PATH environment to include: <omniORB Top-Level Directory>\bin\x86_win32 Test this by checking that this command prints out the omniidl help:

    > omniidl -u

    A fairly recent version of GNU Make for Windows (3.78.1 or above). Download it from http://unxutils.sourceforge.net/ or Google for “gnu make windows”. The make.exe also needs to be in the PATH. For example, you could copy it into your C:\winnt directory. The following command should show version text:

    > make --help
  2. Next make sure that the build files are correctly configured. Don't run the configure command on Windows, hand edit the files instead.

    When you unpack the omniEvents-XXX-src.tar.gz file, the Windows config.mk and src/config.h files should already be in the correct places. If not, then you can copy them from the win32/ directory.

    Edit config.mk to set the values of these variables:

    OMNIORB_BASE full path to omniORB top-level directory.
    OMNIORB_LIBS libraries provided by omniORB.
    OMNIEVENTS_BASE full path to omniEvents top-level directory.
  3. Compile omniEvents. Open a command window, and cd to the omniEvents top-level directory. The following command builds omniEvents:

    > make

2.5. Programs

This section lists the programs that are bundled with the omniEvents distribution.

Most importantly, the omniEvents daemon implements the EventChannelFactory and hosts the event channels. The daemon is built in the src/ directory. On Unix the daemon is installed into /usr/local/sbin, by default.

Unix win32 Description
omniEvents omniEvents.exe EventChannelFactory server.

These tools enable management of event channels from the command line. They are built in the tools/ directory. On Unix, they are installed into /usr/local/bin, by default.

Unix win32 Description
eventc eventc.exe Command to create a channel.
eventf eventf.exe Command to federate (link) two channels.
events events.exe Command to stream events to or from a file.
rmeventc rmeventc.exe Command to remove a channel.

Finally, four example clients are provided. These enable you to test whether or not your omniEvents daemon is really working. They are built in the examples/ directory.

Unix win32 Description
pushsupp pushsupp.exe Push Supplier test client
pushcons pushcons.exe Push Consumer test client
pullsupp pullsupp.exe Pull Supplier test client
pullcons pullcons.exe Pull Consumer test client

2.6. Supported Platforms

omniEvents 2.6 has been tested with omniORB 3.0.5 & omniORB 4.0.4 on the following platforms.

Platform omniORB3 omniORB4
AIX 5.1 / xlC_r 5.0 no yes
HPUX 11.00 / aCC A.03.37 - yes
Linux x86, Debian 3.1 / g++ 2.95.4 yes yes
Macintosh OS X, 10.3.5 - yes
Solaris 9 x86 / gcc-2.95.3 - yes
Solaris 8 sparc / CC 5.3 yes yes
Tru64 5.1B / cxx 6.5 yes yes
Windows 2000 / Visual C++ 6.0 SP3 - yes

Earlier versions of omniEvents have been tested on the following platforms.

Platform omniORB3 omniORB4
Tru64 4.0F / cxx 6.2 yes yes
HPUX 10.20 / aCC (B3910B A.01.21) yes -
Windows NT 4.0 / Visual C++ 6.0 SP3 yes -
Solaris 2.5 / gcc-2.8.1 yes -
x86 Redhat linux 4.2 / gcc-2.7.2 yes -
x86 Mandrake 7.2 / gcc-2.95.3 - yes

2.7. Directory Structure

The directory structure of the omniEvents distribution looks as follows.

auto/ various scripts used by AutoConf
doc/ this documentation
doc/doxygen/ source code documentation generated by Doxygen.
examples/ source files for examples
examples/java/ Java version of examples
examples/python/ Python version of examples
idl/ idl files
src/ source files
test/ test harness
tools/ command line tools for manipulating the Event Service.
win32/ build files for Windows