IMP logo
IMP Manual  for IMP version 2.16.0
directories.md
1 Directory structure {#directories}
2 ===================
3 
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
16  to use
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`
23  or `.md` files
24  - `examples` contains examples in Python and C++, as well as any data needed
25  for examples
26  - `data` contains any data files needed by the module
27 
28 When %IMP is built, a number of directories are created in the build directory.
29 They are
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
35  `lib/_IMP_name.so`
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.
39 
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.