CoreObject INSTALL
==================

Required software
-----------------

You need to have the GNUstep core libraries installed in order to compile and 
use CoreObject. The core packages are, at a minimum:

   * gnustep-make

   * gnustep-base

See <http://www.gnustep.org/> for further information.

You also need to have PostgreSQL and libpq library installed:

    * PostgreSQL

    * libpq

See <http://www.postgresql.org/> for further information.

Finally you need from Etoile itself:

   * EtoileFoundation, which can be found in Etoile/Frameworks/EtoileFoundation

   * EtoileSerialize, which can be found in Etoile/Frameworks/EtoileSerialize

These last two dependencies are automatically handled when CoreObject is built 
by running 'make' tool in Frameworks or any other parent directories.


Notation
--------

In the following document, square brackets "[ ]" are used to indicate optional 
parameters.


Build and Install
-----------------

   Steps to build and install:

   * make

   * [[sudo] -E] make install

   * ./setup-coreobject.sh

setup-coreobject.sh only creates a PostgreSQL role with your username. The 
CoreObject database is not created at this time, but lazily when you launch a 
CoreObject-based application for the first time.

Uninstall
---------

   Steps to uninstall:

   * [sudo [-E]] make uninstall

   * ./uninstall-coreobject.sh

uninstall-coreobject.sh only deletes the CoreObject database but not your 
PostgreSQL user role. So running this script doesn't imply you will have to run 
setup-coreobject.sh later if you want use CoreObject again. This also means you 
can use this script to reset the content of the CoreObject DB, however all the 
existing core objects and the history will be lost. Lost core objects still 
exist on disk in ~/CoreObjectLibrary though, but we have currently no support to 
repopulate the DB by reimporting existing core objects. 
If you want to fully get rid of all core objects including their stored 
representations on disk, delete the ~/CoreObjectLibrary directory. You have to 
do so, because no deletion model is currently implemented (with some sort of GC 
at storage level).


Trouble
-------

Give us feedback! Tell us what you like; tell us what you think could be better. 
Send bug reports and patches to <etoile-track@gna.org>.
