The source for Carbon is divided into a modular structure. Each module
resides in its own directory under the modules directory of the root
carbon directory. Each module is self-contained and has 4 or 5
- classes - compiled classes
- code - module source code
- docs - generated javadoc
- jars - jar file(s) of the module
- lib (optional) - required 3rd party libraries for the module
Each module has its own build script (build.xml) and can be built
independently. It can, however, have compile-time dependencies on other
modules. The compile-time dependencies are resolved by referencing another
module's jar file in its build.xml. The core module is an exception; it
does not depend on any other module.
All modules keep their configurations in a common configuration directory.
This directory is named config and is located off the carbon root.
The master build script resides in the root carbon directory. It builds all
the modules in the correct sequence and copies all module and 3rd party
jars to the root level jars directory.