After successfully building and testing GROMACS 2024.4, the final “make install” step does not install the static library, libgromacs_mpi.a, in lib64 under the path given in DCMAKE_INSTALL_PREFIX (in fact, the lib64 directory is not even created). However, if I set DBUILD_SHARED_LIBS=ON during the build process, the shared object will be installed. Could someone please help me figure out how to get the static library installed during the “make install” step? Here is my build process:
Thanks for this, I tried it and both the compilation and installation completed. All tests passed, but cmake emitted this before compilation began:
– Configuring done (19.9s)
CMake Error: install(EXPORT “libgromacs” …) includes target “libgromacs” which requires target “colvars” that is not in any export set.
– Generating done (1.6s)
CMake Generate step failed. Build files cannot be regenerated correctly.
Thanks for your comment, I only queried this as it is a change in behaviour from what I have seen before. I’m a HPC system administrator, so if I spot differences in behaviour, my assumption is that this may impact on the users’ work as I can’t be sure they don’t need this.
Thanks for trying; I added your observation to our issue tracker. A bit weird that CMake failed yet it generated the build files.
One workaround could be setting -DGMX_USE_COLVARS=NONE. This will disable the Colvars library bundled since GROMACS 2024, so this would only work if your users don’t use it (if you’re upgrading from GROMACS 2023 or earlier, this is the case).
Building a shared library will also avoid all these problems (it’s the default and is better tested, both in CI and in real use). Like disabling Colvars, perhaps this is not possible in your situation, but if it is, this is the path of least resistance.