diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt
index ea7b41b0affe15ad12f2c1c6606888d1ea988cf3..16864bcdc47fe84a61b4d7b3b28ecb0aca32b34a 100644
--- a/doc/src/Section_packages.txt
+++ b/doc/src/Section_packages.txt
@@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
 "Table of standard packages"_#table_standard
 "Table of user packages"_#table_user :ul
 
+Either of these kinds of packages may work as is, may require some
+additional code compiled located in the lib folder, or may require
+an external library to be downloaded, compiled, installed, and LAMMPS
+configured to know about its location and additional compiler flags.
+You can often do the build of the internal or external libraries
+in one step by typing "make lib-name args='...'" from the src dir,
+with appropriate arguments included in args='...'. If you just type
+"make lib-name" you should see a help message about supported flags
+and some examples. For more details about this, please study the
+tables below and the sections about the individual packages.
+
 Standard packages are supported by the LAMMPS developers and are
 written in a syntax and style consistent with the rest of LAMMPS.
 This means the developers will answer questions about them, debug and
@@ -34,7 +45,9 @@ LAMMPS.
 User packages have been contributed by users, and begin with the
 "user" prefix.  If they are a single command (single file), they are
 typically in the user-misc package.  User packages don't necessarily
-meet the requirements of the standard packages.  If you have problems
+meet the requirements of the standard packages. This means the
+developers will try to keep things working and usually can answer
+technical questions about compiling the package. If you have problems
 using a feature provided in a user package, you may need to contact
 the contributor directly to get help.  Information on how to submit
 additions you make to LAMMPS as single files or as a standard or user
@@ -78,10 +91,10 @@ Package, Description, Doc page, Example, Library
 "COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
 "CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
 "DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
-"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, WWW bench, int
+"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
 "GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
 "KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
-"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, WWW bench, -
+"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
 "KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
 "MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
 "MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
@@ -90,7 +103,7 @@ Package, Description, Doc page, Example, Library
 "MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
 "MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
 "MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
-"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, WWW bench, -
+"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
 "PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
 "POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
 "PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
@@ -101,8 +114,7 @@ Package, Description, Doc page, Example, Library
 "SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
 "SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
 "SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
-"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext
-:tb(ea=c,ca1=l)
+"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
 
 [USER packages] :link(table_user),p
 
@@ -118,7 +130,7 @@ Package, Description, Doc page, Example, Library
 "USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
 "USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
 "USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
-"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, WWW bench, -
+"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
 "USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
 "USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
 "USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
@@ -126,7 +138,7 @@ Package, Description, Doc page, Example, Library
 "USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
 "USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
 "USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
-"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, WWW bench, -
+"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
 "USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
 "USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
 "USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
@@ -136,8 +148,7 @@ Package, Description, Doc page, Example, Library
 "USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
 "USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
 "USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
-"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext
-:tb(ea=c,ca1=l)
+"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
 
 :line
 :line
@@ -364,9 +375,12 @@ GPU package :link(GPU),h4
 [Contents:]
 
 Dozens of pair styles and a version of the PPPM long-range Coulombic
-solver optimized for NVIDIA GPUs.  All such styles have a "gpu" as a
-suffix in their style name.  "Section 5.3.1"_accelerate_gpu.html gives
-details of what hardware and Cuda software is required on your system,
+solver optimized for GPUs.  All such styles have a "gpu" as a
+suffix in their style name. The GPU code can be compiled with either
+CUDA or OpenCL, however the OpenCL variants are no longer actively
+maintained and only the CUDA versions are regularly tested.
+"Section 5.3.1"_accelerate_gpu.html gives details of what
+hardware and GPU software is required on your system,
 and details on how to build and use this package.  Its styles can be
 invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
 switches"_Section_start.html#start_6.  See also the "KOKKOS"_#KOKKOS
@@ -378,32 +392,41 @@ package, which has GPU-enabled styles.
 [Install or un-install:]
 
 Before building LAMMPS with this package, you must first build the GPU
-library in lib/gpu from a set of provided C and Cuda files.  You can
+library in lib/gpu from a set of provided C and CUDA files.  You can
 do this manually if you prefer; follow the instructions in
-lib/gpu/README.  You can also do it in one step from the lammps/src
+lib/gpu/README. Please note, that the GPU library uses MPI calls, so
+you have to make certain to use the same MPI library (or the STUBS
+library) settings as the main LAMMPS code. That same applies to the
+-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.
+
+You can also do it in one step from the lammps/src
 dir, using a command like these, which simply invoke the
 lib/gpu/Install.py script with the specified args:
 
-make lib-gpu                                # print help message
-make lib-gpu args="-m"                      # build GPU library with default Makefile.linux
-make lib-gpu args="-i xk7 -p single -o xk7.single"      # create new Makefile.xk7.single, altered for single-precision
-make lib-gpu args="-i xk7 -p single -o xk7.single -m"   # ditto, also build GPU library
+make lib-gpu               # print help message
+make lib-gpu args="-b"     # build GPU library with default Makefile.linux
+make lib-gpu args="-m xk7 -p single -o xk7.single"  # create new Makefile.xk7.single, altered for single-precision
+make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre
 
-Note that this procedure starts with one of the existing
-Makefile.machine files in lib/gpu.  It allows you to alter 4 important
-settings in that Makefile, via the -h, -a, -p, -e switches,
-and save the new Makefile, if desired:
+Note that this procedure through the '-m machine' flag starts with one of
+the existing Makefile.machine files in lib/gpu. For your convenience,
+machine makefiles for "mpi" and "serial" are provided, which have the
+same settings as the corresponding machine makefiles in the main LAMMPS
+source folder. In addition you can alter 4 important settings in that
+Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
+new Makefile, if desired:
 
-CUDA_HOME = where NVIDIA Cuda software is installed on your system
+CUDA_HOME = where NVIDIA CUDA software is installed on your system
 CUDA_ARCH = what GPU hardware you have (see help message for details)
 CUDA_PRECISION = precision (double, mixed, single)
 EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
 
-If the library build is successful, 2 files should be created:
-lib/gpu/libgpu.a and lib/gpu/Makefile.lammps.  The latter has settings
-that enable LAMMPS to link with Cuda libraries.  If the settings in
-Makefile.lammps for your machine are not correct, the LAMMPS build
-will fail.
+If the library build is successful, at least 3 files should be created:
+lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
+The latter has settings that enable LAMMPS to link with CUDA libraries.
+If the settings in Makefile.lammps for your machine are not correct,
+the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
+be edited.
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner:
@@ -499,11 +522,13 @@ in lib/kim/README.  You can also do it in one step from the lammps/src
 dir, using a command like these, which simply invoke the
 lib/kim/Install.py script with the specified args.
 
-make lib-kim                    # print help message
-make lib-kim args="-b . none"   # install KIM API lib with only example models
-make lib-kim args="-b . Glue_Ercolessi_Adams_Al__MO_324507536345_001"  # ditto plus one model
-make lib-kim args="-b . OpenKIM"   # install KIM API lib with all models
-make lib-kim args="-a EAM_Dynamo_Ackland_W__MO_141627196590_002"       # add one model or model driver :pre
+make lib-kim              # print help message
+make lib-kim args="-b "   # (re-)install KIM API lib with only example models
+make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001"  # ditto plus one model
+make lib-kim args="-b -a everything"     # install KIM API lib with all models
+make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002"       # add one model or model driver
+make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
+make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre
 
 Note that in LAMMPS lingo, a KIM model driver is a pair style
 (e.g. EAM or Tersoff).  A KIM model is a pair style for a particular
@@ -547,7 +572,7 @@ KOKKOS package :link(KOKKOS),h4
 
 Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
 styles adapted to compile using the Kokkos library which can convert
-them to OpenMP or Cuda code so that they run efficiently on multicore
+them to OpenMP or CUDA code so that they run efficiently on multicore
 CPUs, KNLs, or GPUs.  All the styles have a "kk" as a suffix in their
 style name.  "Section 5.3.3"_accelerate_kokkos.html gives details of
 what hardware and software is required on your system, and how to
@@ -577,28 +602,28 @@ files for examples.
 For multicore CPUs using OpenMP:
 
 KOKKOS_DEVICES = OpenMP
-KOKKOS_ARCH = HSW           # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc
+KOKKOS_ARCH = HSW           # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre
 
 For Intel KNLs using OpenMP:
 
 KOKKOS_DEVICES = OpenMP
-KOKKOS_ARCH = KNL
+KOKKOS_ARCH = KNL :pre
 
-For NVIDIA GPUs using Cuda:
+For NVIDIA GPUs using CUDA:
 
 KOKKOS_DEVICES = Cuda
 KOKKOS_ARCH = Pascal60,Power8     # P100 hosted by an IBM Power8, etc
-KOKKOS_ARCH = Kepler37,Power8     # K80 hosted by an IBM Power8, etc
+KOKKOS_ARCH = Kepler37,Power8     # K80 hosted by an IBM Power8, etc :pre
 
 For GPUs, you also need these 2 lines in your Makefile.machine before
 the CC line is defined, in this case for use with OpenMPI mpicxx.  The
 2 lines define a nvcc wrapper compiler, which will use nvcc for
-compiling Cuda files or use a C++ compiler for non-Kokkos, non-Cuda
+compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
 files.
 
 KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
 export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
-CC =		mpicxx
+CC =		mpicxx :pre
 
 Once you have an appropriate Makefile.machine, you can
 install/un-install the package and build LAMMPS in the usual manner.
@@ -734,6 +759,12 @@ MEAM package :link(MEAM),h4
 
 A pair style for the modified embedded atom (MEAM) potential.
 
+Please note that the MEAM package has been superseded by the
+"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
+of the MEAM package to C++. USER-MEAMC contains additional
+optimizations making it run faster than MEAM on most machines,
+while providing the identical features and USER interface.
+
 [Author:] Greg Wagner (Northwestern U) while at Sandia.
 
 [Install or un-install:]
@@ -744,9 +775,10 @@ follow the instructions in lib/meam/README.  You can also do it in one
 step from the lammps/src dir, using a command like these, which simply
 invoke the lib/meam/Install.py script with the specified args:
 
-make lib-meam                      # print help message
-make lib-meam args="-m gfortran"   # build with GNU Fortran compiler
-make lib-meam args="-m ifort"      # build with Intel ifort compiler :pre
+make lib-meam                  # print help message
+make lib-meam args="-m mpi"    # build with default Fortran compiler compatible with your MPI library
+make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
+make lib-meam args="-m ifort"  # build with Intel Fortran compiler using Makefile.ifort :pre
 
 The build should produce two files: lib/meam/libmeam.a and
 lib/meam/Makefile.lammps.  The latter is copied from an existing
@@ -789,6 +821,9 @@ A variety of compute, fix, pair, dump styles with specialized
 capabilities that don't align with other packages.  Do a directory
 listing, "ls src/MISC", to see the list of commands.
 
+NOTE: the MISC package contains styles that require using the
+-restrict flag, when compiling with Intel compilers.
+
 [Install or un-install:]
 
 make yes-misc
@@ -902,9 +937,9 @@ University of Chicago.
 
 Before building LAMMPS with this package, you must first download and
 build the MS-CG library.  Building the MS-CG library and using it from
-LAMMPS requires a C++11 compatible compiler, and that LAPACK and GSL
-(GNU Scientific Library) libraries be installed on your machine.  See
-the lib/mscg/README and MSCG/Install files for more details.
+LAMMPS requires a C++11 compatible compiler and that the GSL
+(GNU Scientific Library) headers and libraries are installed on your
+machine.  See the lib/mscg/README and MSCG/Install files for more details.
 
 Assuming these libraries are in place, you can do the download and
 build of MS-CG manually if you prefer; follow the instructions in
@@ -912,15 +947,16 @@ lib/mscg/README.  You can also do it in one step from the lammps/src
 dir, using a command like these, which simply invoke the
 lib/mscg/Install.py script with the specified args:
 
-make lib-mscg                                # print help message
-make lib-mscg args="-g -b -l"                # download and build in default lib/mscg/MSCG-release-master
-make lib-mscg args="-h . MSCG -g -b -l"      # download and build in lib/mscg/MSCG
-make lib-mscg args="-h ~ MSCG -g -b -l"      # download and build in ~/mscg :pre
+make lib-mscg             # print help message
+make lib-mscg args="-b -m serial"   # download and build in lib/mscg/MSCG-release-master
+                                    # with the settings compatible with "make serial"
+make lib-mscg args="-b -m mpi"      # download and build in lib/mscg/MSCG-release-master
+                                    # with the settings compatible with "make mpi"
+make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre
 
-Note that the final -l switch is to create 2 symbolic (soft) links,
-"includelink" and "liblink", in lib/mscg to point to the MS-CG src
-dir.  When LAMMPS builds it will use these links.  You should not need
-to edit the lib/mscg/Makefile.lammps file.
+Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
+to point to the MS-CG src/installation dir.  When LAMMPS is built in src it will use these links.
+You should not need to edit the lib/mscg/Makefile.lammps file.
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner:
@@ -966,11 +1002,11 @@ make no-opt
 make machine :pre
 
 NOTE: The compile flag "-restrict" must be used to build LAMMPS with
-the OPT package.  It should be added to the CCFLAGS line of your
-Makefile.machine.  See Makefile.opt in src/MAKE/OPTIONS for an
-example.
+the OPT package when using Intel compilers.  It should be added to
+the CCFLAGS line of your Makefile.machine.  See Makefile.opt in
+src/MAKE/OPTIONS for an example.
 
-CCFLAGS: add -restrict :ul
+CCFLAGS: add -restrict for Intel compilers :ul
 
 [Supporting info:]
 
@@ -1039,9 +1075,10 @@ follow the instructions in lib/poems/README.  You can also do it in
 one step from the lammps/src dir, using a command like these, which
 simply invoke the lib/poems/Install.py script with the specified args:
 
-make lib-poems                      # print help message
-make lib-poems args="-m g++"        # build with GNU g++ compiler
-make lib-poems args="-m icc"        # build with Intel icc compiler :pre
+make lib-poems                   # print help message
+make lib-poems args="-m serial"  # build with GNU g++ compiler (settings as with "make serial")
+make lib-poems args="-m mpi"     # build with default MPI C++ compiler (settings as with "make mpi")
+make lib-poems args="-m icc"     # build with Intel icc compiler :pre
 
 The build should produce two files: lib/poems/libpoems.a and
 lib/poems/Makefile.lammps.  The latter is copied from an existing
@@ -1151,9 +1188,10 @@ follow the instructions in lib/reax/README.  You can also do it in one
 step from the lammps/src dir, using a command like these, which simply
 invoke the lib/reax/Install.py script with the specified args:
 
-make lib-reax                      # print help message
-make lib-reax args="-m gfortran"   # build with GNU Fortran compiler
-make lib-reax args="-m ifort"      # build with Intel ifort compiler :pre
+make lib-reax                    # print help message
+make lib-reax args="-m serial"   # build with GNU Fortran compiler (settings as with "make serial")
+make lib-reax args="-m mpi"      # build with default MPI Fortran compiler (settings as with "make mpi")
+make lib-reax args="-m ifort"    # build with Intel ifort compiler :pre
 
 The build should produce two files: lib/reax/libreax.a and
 lib/reax/Makefile.lammps.  The latter is copied from an existing
@@ -1370,15 +1408,15 @@ one step from the lammps/src dir, using a command like these, which
 simply invoke the lib/voronoi/Install.py script with the specified
 args:
 
-make lib-voronoi                                # print help message
-make lib-voronoi args="-g -b -l"                # download and build in default lib/voronoi/voro++-0.4.6
-make lib-voronoi args="-h . voro++ -g -b -l"    # download and build in lib/voronoi/voro++
-make lib-voronoi args="-h ~ voro++ -g -b -l"    # download and build in ~/voro++ :pre
+make lib-voronoi                          # print help message
+make lib-voronoi args="-b"                # download and build the default version in lib/voronoi/voro++-<version>
+make lib-voronoi args="-p $HOME/voro++"   # use existing Voro++ installation in $HOME/voro++
+make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre
 
-Note that the final -l switch is to create 2 symbolic (soft) links,
-"includelink" and "liblink", in lib/voronoi to point to the Voro++ src
-dir.  When LAMMPS builds it will use these links.  You should not need
-to edit the lib/voronoi/Makefile.lammps file.
+Note that 2 symbolic (soft) links, "includelink" and "liblink", are
+created in lib/voronoi to point to the Voro++ src dir.  When LAMMPS
+builds in src it will use these links.  You should not need to edit
+the lib/voronoi/Makefile.lammps file.
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner:
@@ -1420,7 +1458,8 @@ from the lammps/src dir, using a command like these, which simply
 invoke the lib/atc/Install.py script with the specified args:
 
 make lib-atc                      # print help message
-make lib-atc args="-m g++"        # build with GNU g++ compiler
+make lib-atc args="-m serial"     # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
+make lib-atc args="-m mpi"        # build with default MPI compiler (settings as with "make mpi")
 make lib-atc args="-m icc"        # build with Intel icc compiler :pre
 
 The build should produce two files: lib/atc/libatc.a and
@@ -1437,8 +1476,10 @@ can either exist on your system, or you can use the files provided in
 lib/linalg.  In the latter case you also need to build the library
 in lib/linalg with a command like these:
 
-make lib-linalg                      # print help message
-make lib-linalg args="-m gfortran"   # build with GNU Fortran compiler
+make lib-linalg                     # print help message
+make lib-linalg args="-m serial"    # build with GNU Fortran compiler (settings as with "make serial")
+make lib-linalg args="-m mpi"       # build with default MPI Fortran compiler (settings as with "make mpi")
+make lib-linalg args="-m gfortran"  # build with GNU Fortran compiler :pre
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner:
@@ -1478,9 +1519,10 @@ follow the instructions in lib/awpmd/README.  You can also do it in
 one step from the lammps/src dir, using a command like these, which
 simply invoke the lib/awpmd/Install.py script with the specified args:
 
-make lib-awpmd                      # print help message
-make lib-awpmd args="-m g++"        # build with GNU g++ compiler
-make lib-awpmd args="-m icc"        # build with Intel icc compiler :pre
+make lib-awpmd                   # print help message
+make lib-awpmd args="-m serial"  # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
+make lib-awpmd args="-m mpi"     # build with default MPI compiler (settings as with "make mpi")
+make lib-awpmd args="-m icc"     # build with Intel icc compiler :pre
 
 The build should produce two files: lib/awpmd/libawpmd.a and
 lib/awpmd/Makefile.lammps.  The latter is copied from an existing
@@ -1496,8 +1538,10 @@ these can either exist on your system, or you can use the files
 provided in lib/linalg.  In the latter case you also need to build the
 library in lib/linalg with a command like these:
 
-make lib-linalg                      # print help message
-make lib-atc args="-m gfortran"      # build with GNU Fortran compiler
+make lib-linalg                     # print help message
+make lib-linalg args="-m serial"    # build with GNU Fortran compiler (settings as with "make serial")
+make lib-linalg args="-m mpi"       # build with default MPI Fortran compiler (settings as with "make mpi")
+make lib-linalg args="-m gfortran"  # build with GNU Fortran compiler :pre
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner:
@@ -1590,9 +1634,11 @@ Restraints.  A "fix colvars"_fix_colvars.html command is implemented
 which wraps a COLVARS library, which implements these methods.
 simulations.
 
-[Authors:] Axel Kohlmeyer (Temple U).  The COLVARS library was written
-by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and
-Jerome Henin (LISM, CNRS, Marseille, France).
+[Authors:] The COLVARS library is written and maintained by
+Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
+and Jerome Henin (LISM, CNRS, Marseille, France), originally for
+the NAMD MD code, but with portability in mind.  Axel Kohlmeyer
+(Temple U) provided the interface to LAMMPS.
 
 [Install or un-install:]
 
@@ -1604,7 +1650,9 @@ which simply invoke the lib/colvars/Install.py script with the
 specified args:
 
 make lib-colvars                      # print help message
-make lib-colvars args="-m g++"        # build with GNU g++ compiler :pre
+make lib-colvars args="-m serial"     # build with GNU g++ compiler (settings as with "make serial")
+make lib-colvars args="-m mpi"        # build with default MPI compiler (settings as with "make mpi")
+make lib-colvars args="-m g++-debug"  # build with GNU g++ compiler and colvars debugging enabled :pre
 
 The build should produce two files: lib/colvars/libcolvars.a and
 lib/colvars/Makefile.lammps.  The latter is copied from an existing
@@ -1892,7 +1940,12 @@ Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
 packages, which have styles optimized for CPUs and KNLs.
 
 You need to have an Intel compiler, version 14 or higher to take full
-advantage of this package.
+advantage of this package. While compilation with GNU compilers is
+supported, performance will be suboptimal.
+
+NOTE: the USER-INTEL package contains styles that require using the
+-restrict flag, when compiling with Intel compilers.
+
 
 [Author:] Mike Brown (Intel).
 
@@ -1909,17 +1962,17 @@ For CPUs:
 
 OPTFLAGS =      -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
 CCFLAGS =	-g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-                -fno-alias -ansi-alias -restrict $(OPTFLAGS)
+-fno-alias -ansi-alias -restrict $(OPTFLAGS)
 LINKFLAGS =	-g -qopenmp $(OPTFLAGS)
-LIB =           -ltbbmalloc -ltbbmalloc_proxy
+LIB =           -ltbbmalloc -ltbbmalloc_proxy :pre
 
 For KNLs:
 
 OPTFLAGS =      -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
 CCFLAGS =	-g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-                -fno-alias -ansi-alias -restrict $(OPTFLAGS)
+-fno-alias -ansi-alias -restrict $(OPTFLAGS)
 LINKFLAGS =	-g -qopenmp $(OPTFLAGS)
-LIB =           -ltbbmalloc
+LIB =           -ltbbmalloc :pre
 
 Once you have an appropriate Makefile.machine, you can
 install/un-install the package and build LAMMPS in the usual manner.
@@ -2224,11 +2277,15 @@ CPUs.
 
 [Author:] Axel Kohlmeyer (Temple U).
 
-NOTE: The compile flags "-restrict" and "-fopenmp" must be used to
-build LAMMPS with the USER-OMP package, as well as the link flag
-"-fopenmp".  They should be added to the CCFLAGS and LINKFLAGS lines
-of your Makefile.machine.  See src/MAKE/OPTIONS/Makefile.omp for an
-example.
+NOTE: To enable multi-threading support the compile flag "-fopenmp"
+and the link flag "-fopenmp" (for GNU compilers, you have to look up
+the equivalent flags for other compilers) must be used to build LAMMPS.
+When using Intel compilers, also the "-restrict" flag is required.
+The USER-OMP package can be compiled without enabling OpenMP; then
+all code will be compiled as serial and the only improvement over the
+regular styles are some data access optimization. These flags should
+be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
+See src/MAKE/OPTIONS/Makefile.omp for an example.
 
 Once you have an appropriate Makefile.machine, you can
 install/un-install the package and build LAMMPS in the usual manner:
@@ -2241,7 +2298,7 @@ make machine :pre
 make no-user-omp
 make machine :pre
 
-CCFLAGS: add -fopenmp and -restrict
+CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
 LINKFLAGS: add -fopenmp :ul
 
 [Supporting info:]
@@ -2310,12 +2367,14 @@ without changes to LAMMPS itself.
 
 Before building LAMMPS with this package, you must first build the
 QMMM library in lib/qmmm.  You can do this manually if you prefer;
-follow the first two steps explained in lib/colvars/README.  You can
+follow the first two steps explained in lib/qmmm/README.  You can
 also do it in one step from the lammps/src dir, using a command like
-these, which simply invoke the lib/colvars/Install.py script with the
+these, which simply invoke the lib/qmmm/Install.py script with the
 specified args:
 
 make lib-qmmm                      # print help message
+make lib-qmmm args="-m serial"     # build with GNU Fortran compiler (settings as in "make serial")
+make lib-qmmm args="-m mpi"        # build with default MPI compiler (settings as in "make mpi")
 make lib-qmmm args="-m gfortran"   # build with GNU Fortran compiler :pre
 
 The build should produce two files: lib/qmmm/libqmmm.a and
@@ -2492,15 +2551,13 @@ follow the instructions in lib/smd/README.  You can also do it in one
 step from the lammps/src dir, using a command like these, which simply
 invoke the lib/smd/Install.py script with the specified args:
 
-make lib-smd                            # print help message
-make lib-smd args="-g -l"               # download and build in default lib/smd/eigen-eigen-*
-make lib-smd args="-h . eigen -g -l"    # download and build in lib/smd/eigen
-make lib-smd args="-h ~ eigen -g -l"    # download and build in ~/eigen :pre
+make lib-smd                         # print help message
+make lib-smd args="-b"               # download and build in default lib/smd/eigen-eigen-...
+make lib-smd args="-p /usr/include/eigen3"    # use existing Eigen installation in /usr/include/eigen3 :pre
 
-Note that the final -l switch is to create a symbolic (soft) link
-named "includelink" in lib/smd to point to the Eigen dir.  When LAMMPS
-builds it will use this link.  You should not need to edit the
-lib/smd/Makefile.lammps file.
+Note that a symbolic (soft) link named "includelink" is created in
+lib/smd to point to the Eigen dir.  When LAMMPS builds it will use
+this link.  You should not need to edit the lib/smd/Makefile.lammps file.
 
 You can then install/un-install the package and build LAMMPS in the
 usual manner: