Quieten repeated cmake runs

We should not hassle the user about optional libraries that were not
found the first time. If the user wants to detect ones found in a
different place, then they can unset the relevant cache variables to
re-trigger detection and/or related output.

Change-Id: I266268dccc46da5b098d3d5640798cbee7ee6fd0
Name the tarball how we like it

This names the tarball and the top-level directory how
GROMACS usually does it. Previously, I'd been renaming
stuff manually.

Change-Id: I485c4a4c711064a3a0ca2343ec696375cbc3de96
Fix xml2 link check rerun

gmx_check_if_changed logic had a typo and thus check wasn't rerun
if LIBXML2_INCLUDE_DIR or LIBXML2_LIBRARIES changed.

Change-Id: I838f32fd6e9b62480acc4eafc4bf3d657477d09d
Fix HTML links that contain file extensions

- Consider '-' and '_' as part of a word when replacing links, so that
  convert-tpr and make_ndx are considered single words, and the
  extensions there are not converted into links.
- Do links.dat replacement before program links, so that the URL in the
  above program name links is not processed.

Change-Id: I0ce204d3adedc56e57c1e1cd150a63d21c442eab
Make AVX2 check more robust

Apparently the GNU assembler version 2.20 supported some
parts of AVX2 (in particular the FMA floating-point ops),
which caused our cmake test to pass. This patch changes
it to test the integer addition instead, which isn't
supported in as-2.20 in my tests.

Change-Id: I79e516639fc78d1590d306f486eb027962388543
Avoid clang/32 optimization affecting IEEE endian detection

This turns the detection code into a c++ file, moves the
structure to a global one and adds volatile specifiers.
This should hopefully prevent any standard-adhering
compiler from touching the data.

Change-Id: I6f4b86ddf6b0567655466e0877bb1ba39a45ce4e
Fix HTML help and man pages for commands with dashes

Replace one case of "gmx-something" to "gmx something" conversion with
explicit construction of the latter from its component parts.
The other instance does not (easily) have the component parts available,
so only the first dash is removed when converting between
"gmx-something" and "gmx something". Add an assert for the condition
that this requires to remain functional.

Change-Id: I5bfbd1acae440af93b3b7b50a25d8782a7e60c8a
Fix GMX_NONBONDED_NUM_THREADS!=GMX_PAIRSEARCH_NUM_THREADS

Change-Id: I7d5416fa299e244244d7bf48e785090da2e0b6d0
Fix GMX_BUILD_OWN_FFTW for Cygwin

CMAKE_BINARY_PREFIX doesn't exist and thus the previous version added just
an extra slash which doesn't work under Cygwin.

Change-Id: I285f93020d0818515fff3f2cfbf41662f03190d0
Add support for int64 in refdata

Change-Id: Ia5fedbe7593d9630a095eaf1cb6d69f0c1223ee0
Do not actually install uniqueptr.h

Due to some rebasing error or something, 22d74432 unintentionally undid
the change in 1078df1d.

Change-Id: Icabe61112b98229bc4e5e13462892b9f5a584d8b
Fix Cygwin+Shared-Libs+FFTW

Cygwin doesn't have or require fPIC

Change-Id: If1af6f070e2cd0457f429a155e92014af51c0c33
Workaround for ICC 14 bug

ICC name-mangling is incorrect for static variable in static
member in anonymous namespace.

Fixes #1558

Change-Id: Ie861224bcc61df2f26025d1dd106bcab827308bb
Fix selection of xtc groups not starting at index 0

The code to select atoms to write to the xtc file
only looped over the number of atoms selected for
output rather than all atoms. This meant that xtc
group selections that were not located at the start
of the atom indices would not be written correctly.

Fixes #1561.

Change-Id: I48886a75c682e38122dadcb2f752507b14b308fe
Remove memtest

Native GPU acceleration isn't using it and OpenMM has been removed.

Change-Id: I9c657d37654b3a822ff980b5e28e5158fd52884b
Remove individual cuda libraries

Instead use CUDA_ADD_LIBRARY to build libgromacs. It builds all
non CUDA files using the standard build rules. Thus this should not
have any effect on non CUDA files. All CUDA files were compiled
with the same nvcc OPTIONS, and thus nothing should have changed
for them either.

This also removes the requirement for gmxManageNvccConfig to set
fPIC manually because now CUDA_ADD_LIBRARY knows when the library
is shared.

Change-Id: I23fe6b7a9766a39c525cdc1abfa3922ec24058d9
Remove Random123/features

Remove all auto-detection and replace with hard-coded
values and gmx_inline.

The purpose is that it now should compile on any hardware /
compiler. Correctness is guaranteed (as is custom in all
of Gromacs) by unit tests (separate commit).

Change-Id: I7e75ff38f7288e87817d42582ae844c1d38ef369
Add unit test for random/Threefry

Change-Id: I5f9d60c594c0d7a6925b829658119d2fdea5d113
Fix build of binary package

Commit a00437 accidentally changed that the source-package error is also
printed for binary packages. Because it defined
CPACK_SOURCE_PACKAGE_FILE_NAME which we used to detect source-package.
This now uses CPACK_INSTALL_CMAKE_PROJECTS which is hopefully future-proof.
It also adds a proper warning for binary packages.

Change-Id: I842655755bed1c448f30db435a85ad1ca5844a60
Merge release-5-0 into master

Conflicts:
    src/testutils/refdata.h (trivial)

Manual changes:
    src/external/Random123-1.08/include/Random123/features/compilerfeatures.h
        replaced simple.h with basedefintions.h

Change-Id: I96fbc370b1c6bec101d877b2e3bda1adec56fcb6