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

                           EyeDB Distribution
                 Copyright (c) SYSRA, 1995-1999,2004,2005

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

EyeDB home: http://www.eyedb.org


Introduction
------------

EyeDB is an Object Database Management System (ODBMS).

EyeDB databases are object databases, i.e. databases in which you
store objects, in the sense of Object Oriented Programming, and not
tables in the sense of relational databases. Classes (the database
"schema") are defined using ODL (Object Definition Language); objects
can be retrieved and manipulated using OQL (Object Query
Language). Programming interfaces for C++ (native), Java (native),
Python (using SWIG) are provided, allowing to access databases in the
programming language of your choice.

EyeDB is distributed under the GNU Lesser General Public. Refer to
file COPYING to get the license.


Compiling EyeDB
---------------

In order to compile EyeDB, you need the following tools: 
GNU make
C++ compiler
bison
flex

To build the Java part, you need a java compiler (gcj or javac from
Sun's JDK) and an archive tool to build a .jar archive.

If you want to build documentation, you will need the following
additional tools:
latex, dvips, ps2pdf (for manual)
doxygen (for api documentation)
xsltproc (for manpages)

If you have latex2html installed, the HTML version of the manual will
be generated.

Please refer to your distribution to check if these tools are packaged
for your distribution (which is very likely the case) and to get their
respective installation instructions.

To compile EyeDB, just run:
./configure
make

configure script takes the following useful options:
--prefix=PREFIX         to specify EyeDB installation root directory 
                        (default is /usr)
--enable-debug          to compile with debug (default is no)
--enable-optimize=flag  to compile with given optimization flag, for 
                        instance --enable-optimize=-O2 (default is no 
                        optimization)
--enable-swig           to generate various languages bindings with SWIG 
                        (default is no)

Full description of configure options can be obtained with:
./configure --help

Examples and tests programs, located in sub-directories examples/ and
tests/, are not compiled by 'make' or 'make all' but by 'make check'.


Installing EyeDB
----------------

After compiling EyeDB, you can install it with the usual:
make install

This will install EyeDB in the directories that you have given when
running the configure script.

If you install EyeDB from scratch (i.e. you don't have existing EyeDB
databases coming from a previous installation), you need to run the 
post-install script after the 'make install'. The post-install script
is located in PREFIX/share/eyedb/tools/eyedb-postinstall.sh 

For instance, if you have installed EyeDB in /usr/local (for instance
by running configure with ./configure --prefix=/usr/local), the 
post-install script is:
/usr/local/share/eyedb/tools/eyedb-postinstall.sh 

NOTES:
* running the post-install script is mandatory, otherwise your
installation will not work
* if you want to change the configuration defaults

Upgrading EyeDB
---------------

If you are upgrading EyeDB and have an existing working installation of 
EyeDB with databases that you want to keep, you must not run the 
post-install script.


Running EyeDB
-------------

To run EyeDB, you need first to start the server by:
eyedbctl start

You can then check that the server is running by:
eyedbctl status

To check that EyeDB runs, after starting the server, you can run the
following command:
eyedboql -c "select schema" --print
This should print a number of EyeDB base structures.

You can then try some examples, such as examples/GettingStarted, that 
shows how to create a database using a schema, insert objects, build
OQL queries (OQL is the Object Query Language) and use the C++ and Java
programming interfaces.


Finding documentation
---------------------

You can find EyeDB documentation in the following places, in the
source tree after compilation:
- doc/eyedb-VERSION/manual: the different manuals
- doc/eyedb-VERSION/api: the C++ API documentation build using doxygen
- doc/eyedb-VERSION/examples: EyeDB programming examples using the C++
and the Java APIs


Getting help
------------

EyEDB web site: http://www.eyedb.org
EyeDB wiki: http://wiki.eyedb.org
EyeDB blog: http://blog.eyedb.org
EyeDB project: http://sourceforge.net/projects/eyedb

EyeDB mailing list: eyedb-general@lists.sourceforge.net
Mailman page: http://lists.sourceforge.net/lists/listinfo/eyedb-general

EyeDB IRC: irc.freenode.net #eyedb
