Task #1013

Updated by Teemu Murtola about 7 years ago

Currently, states that there will be only one library, _libgromacs_. In the source code, there are still two built: _libgromacs_ and _libgmxana_. Do we want to merge also all the analysis tool code into _libgromacs_? I think that some concerns have been raised regarding the size of the library for platforms where memory is limited (e.g., BlueGene). If we merge the libraries and the size is a problem, we could possibly just add some build system features that allow building only parts of Gromacs, so that users could build a stripped-down version that runs only mdrun, for use on such platforms. In particular if we have a modular system for building the different old binaries into a single binary with #685, it shouldn't be too difficult to skip building some parts.

Even if we want to keep a separate analysis library, the division needs some work, as currently tools using the new analysis framework are built as part of _libgromacs_ and not _libgmxana_. It also needs to considered where do other parts of the framework belong (the generic runner code, the selection library, other utility functions). With the new framework, most code in the tools is part of the framework, and not in the tool-specific code.

The division has an effect on #988 and #701, in particular in placing constraints what symbols we must export from the shared libraries.