1 Directory structure {#directories}
4 The input files in the %IMP repository are structured as follows:
5 - `tools` contains various command line utilities
for use by developers. They
6 are [documented below](#devguide_scripts).
7 - `doc` contains inputs
for general %IMP overview documentation (such as
this
8 page), as well as configuration scripts
for `doxygen`.
9 - each subdirectory of `modules/` defines a module; they all have the same
10 structure. The directory
for module `name` has the following structure:
11 - `%README.md` contains a module overview
12 - `include` contains the C++ header files
13 - `src` contains the C++ source files
14 - `bin` contains C++ source files each of which is built into an executable,
15 and/or Python scripts. These programs will be installed
for %IMP users
17 - `utility` is like `bin` but the programs are not installed - they are only
18 for use during the build procedure
19 - `pyext` contains files defining the Python
interface to the module as well
20 as Python source files (in `pyext/src`)
21 - `test` contains test files that can be run with `ctest`
22 - `doc` contains additional documentation that is provided via `.dox`
24 - `examples` contains examples in Python and C++, as well as any data needed
26 - `data` contains any data files needed by the module
28 When %IMP is built, a number of directories are created in the build directory.
30 - `include` which includes all the headers. The headers
for module `name` are
31 placed in `include/IMP/name`
32 - `lib` where the C++ and Python libraries are placed. Module `name` is built
33 into a C++ library `lib/libimp_name.so` (or `.dylib` on a Mac) and a Python
34 library with Python files located in `lib/IMP/name` and the binary part in
36 - `doc` containing the manual in `doc/html` and the examples
37 in `doc/examples` with a subdirectory
for each module
38 - `data` where each module gets a subdirectory
for its data.
40 When %IMP is installed, the structure from the build directory is
41 moved over more or less intact except that the C++ and Python
42 libraries are put in the (different) appropriate locations.