******************************************************************************
INSTALL - Equeue, event queues for O'Caml
******************************************************************************


==============================================================================
The "equeue" package
==============================================================================

------------------------------------------------------------------------------
Prerequisites
------------------------------------------------------------------------------

Equeue does not need any other packages besides the O'Caml core. Equeue is 
known to work with O'Caml 3.07. The installation procedure defined in the 
Makefile requires findlib [1] to work [2]. 

If you want to have the TCL queue extension, you need labltk. 

------------------------------------------------------------------------------
Configuration
------------------------------------------------------------------------------

There is a configuration script: 

./configure

By default, only the core modules are configured. 

If you are going to use the TCL queue extension, you must pass the argument 
-with-equeue-tcl to the configuration script, and maybe -equeue-tcl-defs and 
-equeue-tcl-libs, e.g. 

./configure -with-equeue-tcl -equeue-tcl-defs -I/usr/include/tcl8.3 \
            -equeue-tcl-libs -ltcl8.3

It is absolutely required that equeue and labltk are linked against the same 
TCL library. You can usually find out the library labltk uses by invoking 

ldd <stdlib directory>/stublibs/dlllabltk.so



The option -with-equeue-gtk1 enables the lablgtk GUI integration. It is 
required that lablgtk is installed in a findlib-compatible way, i.e. there is a 
findlib package "lablgtk".

The option -with-equeue-gtk2 enables the lablgtk2 GUI integration. It is 
required that lablgtk2 is installed in a findlib-compatible way, i.e. there is 
a findlib package "lablgtk2". Only recent versions of lablgtk2 work, you need 
at least lablgtk2.4.0 where this patch [3] is applied (or a better version, 
likely without needing a patch). 

------------------------------------------------------------------------------
Compilation
------------------------------------------------------------------------------

The Makefile defines the following goals: 

-  make all
   compiles with the bytecode compiler and creates equeue.cma (the standard 
   version), and equeue_mt.cma (version prepared for multi-threading) 
   
-  make opt
   compiles with the native compiler and creates equeue.cmxa (the standard 
   version), and equeue_mt.cmxa (version prepared for multi-threading) 
   
------------------------------------------------------------------------------
Installation
------------------------------------------------------------------------------

The Makefile defines the following goals:

-  make install
   installs the bytecode archives, the interface definitions, and if present, 
   the native archives in the default location of findlib 
   
-  make uninstall
   removes the package
   
==============================================================================
The examples
==============================================================================

In the "examples" directory you find several code examples how to use Equeue. 
They require that Equeue has been installed using findlib. See the Makefiles in 
the directories for descriptions of "make" goals. 


--------------------------

[1]   see http://www.ocaml-programming.de/packages/documentation/findlib/

[2]   Findlib is a package manager, see the file ABOUT-FINDLIB.

[3]   
      see https://gps.dynxs.de/wwwsvn/trunk/godi/godi-lablgtk2/patches/patch-ab-ml_glib.c?view=auto&rev=652



