AdaptiveOpticsControl
Coding Standards

Compilation

Source code is written in C. The package follows the GNU build process, and uses autotools (autmake, autoconf, libtool).

By default, libraries are dynamically linked.

Full list of compilation options is obtained by :

./configure --help

For high performance (fast execution speed), use :

./configure_highperf

Modules

The code is arranged in modules. Source code, documentation and additional files for each modules are located in :

./src/<modulename>/
File / Directory Content
./src/<modulename>/<modulename>.c C source code
./src/<modulename>/<modulename>.h Function prototypes
./src/<modulename>/Makefile.am Makefile input
./src/<modulename>/doc/ documentation
./src/<modulename>/docdir/ extended documentation (optional)
./src/<modulename>/data/ module data file (optional)
./src/<modulename>/scripts/ high level scripts (optional)
./src/<modulename>/examples/ examples (optional)

Modules are compiled to object files, stored in ./libs/ (static and shared objects).

Documenting code

Github documentation

File README.md is the main page for documentation on the github site.

Doxygen input files

Documentation is generated by doxygen from multiple sources:

  • pages.dox top-level menu, which is the main page for doxygen-generated documentation
  • markdown files (<filename>.md) in doc/ directories
  • documentation contained in source code (.c and .h files)

Other documentation

Additional documentation that is not meant to be processed by doxygen (but can be linked from it) should be placed in directories named docdir. This can consist of pdf files, markdown file, or any other format.

Summary table

File / Directory Github Doxygen Content
pages.dox X top doxygen menu (application specific)
README.md X top level github (application specific)
./doc/*.md X Generic documentation files
./docapp/*.md X Application specific docs
./src/doc/*.md X Generic documentation files
./src/docdir/*.md non-doxygen dodumentation
./src/<modulename>/doc/*.md X Module documentation files
./src/<modulename>/docdir/*.md Extended application documentation