Library division for tools and generic Gromacs code - Redmine #1013
Archive from user: Teemu Murtola
Currently, http://www.gromacs.org/Developer_Zone/Programming_Guide/Library_Structure 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.
(from redmine: issue id 1013, created on 2012-09-30 by gmxdefault, closed on 2013-04-11)
- Relations:
- relates #988 (closed)
- relates #701 (closed)
- Changesets:
- Revision 8421fa36 by Teemu Murtola on 2013-03-24T18:28:07Z:
Merge libgmxana into libgromacs.
- Move contents of src/tools/ into src/gromacs/gmxana/, except for
g_tune_pme.c and g_pme_error.c.
- Delete unused src/tools/g_membed.c.
- Adjust the build system accordingly, removing references to gmxana.
- Merge contents of libgmxana.pc into libgromacs.pc and remove the
former.
- Move src/gromacs/legacyheaders/gmx_ana.h into src/gromacs/gmxana/ and
adjust files that include it accordingly. Removed a few unnecessary
inclusions of this header. Don't install it, as it doesn't do much
good.
- Merge src/contrib/g_sdf.c into src/contrib/gmx_sdf.c to make it
independent of gmx_ana.h. Remove gmx_sdf() from gmx_ana.h.
Closes #1013.
Change-Id: I34ba52fc938823833103123c8ada06d169abf7de
- Revision 9734c9fa8e757211703ed052f2ab22368e53abd0 by Teemu Murtola on 2013-06-13T07:45:27Z:
Merge libgmxana into libgromacs.
- Move contents of src/tools/ into src/gromacs/gmxana/, except for
g_tune_pme.c and g_pme_error.c.
- Delete unused src/tools/g_membed.c.
- Adjust the build system accordingly, removing references to gmxana.
- Merge contents of libgmxana.pc into libgromacs.pc and remove the
former.
- Move src/gromacs/legacyheaders/gmx_ana.h into src/gromacs/gmxana/ and
adjust files that include it accordingly. Removed a few unnecessary
inclusions of this header. Don't install it, as it doesn't do much
good.
- Merge src/contrib/g_sdf.c into src/contrib/gmx_sdf.c to make it
independent of gmx_ana.h. Remove gmx_sdf() from gmx_ana.h.
Closes #1013.
Change-Id: I34ba52fc938823833103123c8ada06d169abf7de