[gmx-developers] include files / cmake

Victor Rühle ruehle at mpip-mainz.mpg.de
Mon Nov 30 19:50:56 CET 2009


The problem occurs with autotools as well. The actual problem is in 

#include <types/simple.h>

Which means search in the standard include dirs for types/simple.h. If 
you include from a 3rd party package like:

#include <gromacs/???.h>

This dir is not in the search path (so the workaround I mentiond is 
CPPFLAGS=-I<prefix>/include/gromacs). What it really should do is look 
in the current directory for these files:

#include "types/simple.h"

There were 1-2 more files in types that would need a fix as well (e.g. 
in trx.h it should be #include "../molfile_plugin.h")

This way you don't need the package name in the include directives. I 
already tried that with an older gromacs version where it worked 
perfectly, if you're interested in a patch, I can email it the next days.


David van der Spoel wrote:
> Victor Rühle wrote:
>> We're developing a package for coarse-graining applications which also 
>> uses the gromacs libraries. With molfile_plugin.h missing, compiling 
>> against the gromacs installation is not possible, that's why the file 
>> should be installed.
>> For such a scenario, there is an additional problem with malformated 
>> include directives in the gromacs headers (I reported this some time 
>> ago), however this can be solved by some unhandy CPPFLAGS even though 
>> GROMACS headers are in standard include directory.
> This is a good point that I was fighting today. Even though gromacs 
> include files are installed in $PREFIX/include/gromacs the include files 
> are referred to as
> #include "typedefs.h"
> although it works fine to compile gromacs this way, for a third party 
> package that needs to link to gromacs, this complicates matters (at 
> least with cmake). Would it be possible to include all files like 
> "gromacs/typedefs.h" ?
>> Cheers,
>> Victor
>> Roland Schulz wrote:
>>> On Mon, Nov 30, 2009 at 11:44 AM, Victor Rühle 
>>> <ruehle at mpip-mainz.mpg.de <mailto:ruehle at mpip-mainz.mpg.de>> wrote:
>>>     p.s.: in the dev branch, the file molfile_plugin.h is not copied
>>>     during installation
>>> why does this matter?
>>> This file is a VMD include file and only included in the GROMACS 
>>> source to avoid a dependency on VMD at compile time. But it is not an 
>>> external interface to GROMACS. So I don't know why anyone would need 
>>> that include file.
>>> Roland
>>>     Berk Hess wrote:
>>>         We can't do that, since these numbers have to match the contents
>>>         of the
>>>         moltype entry.
>>>         Berk
>>>         Victor Rühle wrote:
>>>             Hi Berk,
>>>             thanks for the quick answer. The only thing I don't
>>>             understand then is
>>>             the t_block structure mtop.mols which contains at least the
>>>             correct
>>>             partitioning of atoms into molecules (also in the old tpr
>>>             files).
>>>             Since this data is there, wouldn't it be better to
>>>             initialize the
>>>             mtop.nmolblock.natoms_mol + mtop.nmolblock.nmol accordingly?
>>>             Victor
>>>             Berk Hess wrote:
>>>                 Hi,
>>>                 The old tpr files do not  contain information on
>>>                 molecular topologies,
>>>                 so the only thing we can do is consider the whole system
>>>                 as one large
>>>                 moleculetype.
>>>                 Berk
>>>                 Victor Rühle wrote:
>>>                     Dear all,
>>>                     I changed my code for reading .tpr files to read_tpx
>>>                     to get molecule
>>>                     names. When I use the tpr-file generated by a recent
>>>                     gromacs version,
>>>                     everything works fine.
>>>                     However when using older .tpr files (before molecule
>>>                     names were
>>>                     stored), there is an inconsistency in the 
>>> structures:
>>>                     mtop.nmolblock = 1
>>>                     mtop.nmoltype = 1
>>>                     mtop.molblock[0].nmol = 1
>>>                     mtop.mols.nr <http://mtop.mols.nr> = real number of
>>>                     molecules
>>>                     Is this a bug or a feature? As one can see, at least
>>>                     some molecule
>>>                     information is still there but just the new
>>>                     structures are not set up
>>>                     properly. If I run tpbconv, it puts all atoms in a
>>>                     single molecule.
>>>                     Possible workarounds are to rerun grompp to create
>>>                     new tpr files or
>>>                     change my read function to compensate for this
>>>                     problem. Both solutions
>>>                     are not very nice.
>>>                     Did anybody else had a similar problem?
>>>                     Thanks for your help,
>>>                     Victor
>>>     --     gmx-developers mailing list
>>>     gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
>>>     http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>     Please don't post (un)subscribe requests to the list. Use the www
>>>     interface or send it to gmx-developers-request at gromacs.org
>>>     <mailto:gmx-developers-request at gromacs.org>.
>>> -- 
>>> ORNL/UT Center for Molecular Biophysics cmb.ornl.gov 
>>> <http://cmb.ornl.gov>
>>> 865-241-1537, ORNL PO BOX 2008 MS6309

More information about the gromacs.org_gmx-developers mailing list