openmm: lib issue
There are three issue when compiling with openmm:
-libs should be suffixed with -gpu
-user suffix should overwrite default suffixes, even for mdrun
-openmm (-lopenmm) linker flags should be added to the pkg-config files, but I would prefer if openmm would include a pkg-config file that will make life a lot easier.
I had a short discussion with Szilárd via email, I will fix the first two of these.
#1 Updated by Szilárd Páll almost 10 years ago
Just to emphasize why this is a but and not a feature enhancement: with shared libs on (which is the default with CMake atm), it is impossible to install GROMACS and GROMACS-GPU side-by side as the latter would overwrite the libraries during installation.
In fact this is a bug introduced by a39d22e fix for #549.
Additionally, there is a slight issue that suffixing is by default done with "_". However, initially I didn't consider the "-gpu" in mdrun-gpu a suffix but now that this turns into a suffixing problem the question is whether we should use "-" for gpu libs or stick to the "_". Neither of them are nice solutions, but I think we can't change the mdrun-gpu binary name to mdrun_gpu because it would create even more confusion.
#2 Updated by Christoph Junghans almost 10 years ago
I had another thought about the pkg-config files, I think they should not be installed by the 'install-mdrun' rule due to the fact pkg-config is somewhat useless without headers.
And yeah, I would suffix the libs with _gpu even if the binary is suffixed with -gpu that is not a big problem.
#3 Updated by Christoph Junghans almost 10 years ago
libs & binaries are not suffix with -gpu and _gpu if openmm enabled (commit b4c6b8c91cf04a261ab97c02afdcdc16c352697a). This is not very nice due to the fact that now all binaries are suffixed with -gpu, but so far there is no support for multiple suffixes.
In commit bd14641749282f3508a4c5fdc0e0ba1bbbaa5fff the install of pkg-config files with install-rule was removed.
I think we should add an extra rule 'install-pkgconfig', because from 'install-mdrun' one never know if there are compatible headers install in the same path.
(At least this is the same behavior as in autotools)
Issue 3 is not an issue: only mdrun gets linked against libOpenMM, so we do not have to change any pkg-config files ;-)