==============
Etoile INSTALL
==============

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

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

    * gnustep-make 1.13 or higher

    * gnustep-base 1.13 or higher

    * gnustep-gui 0.11 or higher

    * gnustep-back 0.11 or higher

See <http://www.gnustep.org/> for further information.
   
   
You need some extra libraries if you intend to build a complete Etoile
environment or the whole repository:
    
    * libpng (IconKit)

    * zlib (LuceneKit)
    
    See <http://www.zlib.net/> for further information.
    
    * OniGuruma 3.8.6 or higher (OgreKit)
    
    See <http://www.geocities.jp/kosako3/oniguruma/> for further information. 
    This dependency is also available in trunk/Dependencies/oniguruma (within 
    Etoile repository).
    
    * sqlite3 (SQLiteClient)
    
    See <http://www.sqlite3.org> for further information. 
    
    * SQLClient (SQLiteClient)
    
    See <http://www.gnustep.org/> for further information.


Notation
--------

    In the following text, square brackets "[ ]" are used to indicate an
    optional parameter, while "*" at the beginning of a line indicates a 
    command.


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

Warning! At this time, the install process is broken when run with 'sudo', then
you probably have to use 'su root'. Moreover if you encounter path related 
error, you can source GNUstep.sh or GNUstep.csh in your shell, read the GNUstep 
documentation to know more about this topic.

Steps to build:

    * make
    * [sudo] make install
    * ./setup.sh

setup.sh script takes care of various operations mandatory to have a ready to 
use environment that includes:

    * the environment startup tool (named 'etoile_system')
    * Nesedah theme
    * Horizontal menu bar
    * X11 session support (to start Etoile with KDM, GDM etc.)

This involves to copy or link various elements and set several preferences 
(called 'defaults' in GNUstep terminology). 
The script will ask you whether you want to set up the environment for the 
current user only or for the whole machine.


Uninstall
---------

Steps to uninstall:

    * [sudo] make uninstall
    * ./setdown.sh

setdown.sh script allows to get rid of what has been installed or configured by 
setup.sh. In other words, it reverts the effect of setup.sh script. 

Take note, you can use it alone without running 'make uninstall' first. This is 
useful when you want to disable temporarily Etoile theme, horizontal menu etc. 
and get back to the GNUstep look & feel. Then you can return to the usual 
Etoile look & feel by running setup.sh again.

However it's important to note that setdown.sh doesn't disable only Camaelon 
(theme engine) and WildMenus (horizontal menu engine). You won't be able
to log in from KDM or GDM once setdown.sh has been run, and Etoile specific 
applications may fail because of missing elements or daemons not launched.


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

In order to build and install the whole project (with the exception of
developers tools like UnitKit), you can just type in the root directory (named
Etoile):

    * make
    * [sudo] make install

Warning! The following section isn't up-to-date. At this time, it isn't 
possible to build only one module by typing 'make modulename=yes'. This
should be fixed to match the documentation below. 

Which is the equivalent for the build system of asking to build the etoile
module:

    * make etoile=yes
    * [sudo] make etoile=yes install

Indeed, you can choose to build only a specific module. Simply follow 'make'
with the module's name (in lowercase) set to yes. For example:

    * make camaelon=yes
    * make camaelon=yes install

Will only build and install Camaelon.

You can combine more than one module:

    * make camaelon=yes lucenekit=yes

And even use custom set of modules, like desktop-base. Here is a list of the
current sets of modules:

    * desktop-base --> camaelon, bookmarkkit, iconkit, preferenceskit
    * user-base --> installer (for now that's all)
    * developer-base --> unitkit, unittests, examples
    * etoile-extensions --> lucenekit, extendedworkspacekit, trackerkit,
    servicesbarkit, servicesbar

The 'etoile' option semantic is a bit special:

    * etoile=yes --> desktop-base, user-base, etoile-extensions, workspace
    * etoile=no --> desktop-base, developer-base // everything which is not
    bound to Etoile itself

Finally you can combine these module sets with specific module options, like:

    * make developer-base=yes camaelon=yes // build developer-base and camaelon
    * make desktop-base=no camaelon=yes // build user-base, etoile-extensions,
    workspace and camaelon (but not other desktop-base stuff)
    * make etoile=no etoile-extensions=yes extendedworkspacekit=no


You can use the 'make' command with all the available options from every
projects directory.

You can also build test bundles for any specified modules by adding an option
'test=yes', in future you should be able to run every test bundles with 'make
check' but this not implemented currently.


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>.
