+**
+** Source tree organization
+**
+******************************************************
+
+There is at least 5 sub-projects in the tree:
+
+ - XBT: eXtended Bundle of Tools (low-level toolbox: logging, datatypes).
+ - SURF: a SimUlation aRtiFact. This is the simulation kernel.
+ - MSG: originally MetaSimGrid, MSG is a simple distributed application
+ simulator.
+ - GRAS: Grid Reality And Simulation (message passing API with two
+ implementations allowing to compile programs on top of the
+ simulator or for the real life without code modification)
+ - AMOK: Advanced Metacomputing Overlay Kit (high level toolbox; Grid
+ application elements such as distributed database, topology
+ discovery service, and so on)
+
+They are all in the same tree because they are complementary tools and
+having all of them in the same package makes the installation easier
+for end-users. Moreover, it enables to share the compilation chain and
+eases the development.
+
+The tree is not splited on projects, but on file finality:
+ include/ -> all *public* headers
+ include/xbt/*.h -> one file per module
+ include/gras.h -> file including all modules headers
+ (same for xbt instead of gras)
+
+ src/Makefile.am -> main makefile. All projects should fit in only one
+ library (I mean 2, RL+SG), which is compiled here.
+
+ Since all object.o files are placed here, you should
+ choose the name of c files carfully to avoid
+ conflict.
+
+ src/gras/DataDesc -> typical project module
+ src/gras/DataDesc/datadesc_interface.h -> visible to any GRAS modules;
+ masked to the user and GROS/AMOK/SURF
+ src/gras/DataDesc/datadesc_private.h -> visible only from this module
+
+ So, the modules have 3 levels of publicity for their interface.
+ Private, internal to GRAS, public. Of course, I try to keep as much stuff
+ private as possible.
+
+ src/include -> another location for protected headers. Used by SURF, and
+ other should be converted, since this is the Right Thing.
+
+ testsuite/ -> The more test the better.
+ Same organization than src/ and include/
+ Tests are allowed to load some headers of the module they test.
+ All tests should be listed in run_test.in so that they get
+ run on 'make check'.
+ They are not listed directly in the check_PROGRAMS part of
+ the makefile because run_test knows about the gras logging
+ features and relaunch with full details the failed tests.
+
+ examples/ -> Supposed to be copy/pastable by the user, so keep it clear and
+ avoid any kind of trick. In particular, do only include the
+ public headers here.
+**
+** Indentation standard
+**
+*****************************************************
+
+Most files use the Kernighan & Ritchie coding style with 2 spaces of
+indentation. The indent program can help you to stick to it:
+
+indent -br -brs -ce -bbo -bad -bap --dont-break-procedure-type
+ --no-tabs --cuddle-do-while --cuddle-else --indent-level2
+ --leave-preprocessor-space --no-space-after-function-call-names
+ <myfile>
+
+FIXME: this list of arguments is still to be discussed, maybe
+
+**
+** Type naming standard
+**
+*****************************************************
+
+It may sound strange, but the type naming convention was source of intense
+discution between da GRAS posse members. The convention we came to may not
+be the best solution, but it has the merit to exist and leave everyone work.
+So please stick to it.
+
+ - ???_t is a valid type (builded with typedef)
+ - s_toto_t is a structure (access to fields with .)
+ - s_toto is a structure needing 'struct' keyword to be used
+ - e_toto_t is an enum
+ - u_toto_t is an union
+ - u_toto is an union needing 'union' keyword to be used
+ - toto_t is an 'object' (struct*)
+
+Please to not call toto_t something else than an 'object' (ie, something you
+have to call _new and _free on it).
+
+Exemple:
+ typedef struct s_toto {} s_toto_t, *toto_t;
+ typedef enum {} e_toto_t;
+
+Moreover, only toto_t (and e_toto_t) are public. The rest (mainly s_toto_t)
+is private.
+
+If you see any part of the code not following this convention, this is a
+bug. Please report it (or fix it yourself if you can).
+