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