diff --git a/Allclean b/Allclean
index b50475cfb72de9d58acc2004c19fdc87fb452d53..4a9fb4ae87b1d71c3a33cbe2e50ede97b30e9ea3 100755
--- a/Allclean
+++ b/Allclean
@@ -7,26 +7,14 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     Allclean
 #
 # Description
-#     Clean script for ThirdParty applications and libraries
+#     Clean script for ThirdParty applications/libraries
 #
 # ----------------------------------------------
 # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
@@ -94,6 +82,19 @@ do
 done
 
 
+# Clean various packages via 'wclean'
+for i in libccmio*/Make kahip*/lib/Make
+do
+    [ -d "$i" ] && (
+        echo
+        echo "${i%/Make}"
+        echo "    wclean"
+        echo
+        cd ${i%/Make} && wclean
+    )
+done
+
+
 # Clean out-of-source build directories
 if [ -d build ]
 then
diff --git a/Allwmake b/Allwmake
index 06fc4ffb5c0952de8e7865714dfaf0721292af11..1d0c9d16691b7bd46767176a15c875e92264e4da 100755
--- a/Allwmake
+++ b/Allwmake
@@ -7,26 +7,14 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     Allwmake
 #
 # Description
-#     Build script for ThirdParty
+#     Build script for ThirdParty applications/libraries
 #
 # ----------------------------------------------
 # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
@@ -65,8 +53,7 @@ warnBuildIssues()
 
 warnNotFound()
 {
-    echo "    Optional component ($1) was not found"
-    echo
+    echo "Optional component ($1) was not found"
 }
 
 #------------------------------------------------------------------------------
@@ -101,20 +88,20 @@ fi
 
 echo
 echo ========================================
-echo "Build Scotch decomposition library $SCOTCH_VERSION"
+echo "Scotch decomposition ($SCOTCH_VERSION)"
 echo "    $SCOTCH_ARCH_PATH"
 
 SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION
 
 # Needs generalizing, but works fairly well
-scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
+scotchMakefile=../../etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
 
 if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
   -a -r $FOAM_EXT_LIBBIN/libscotch.so \
   -a -r $FOAM_EXT_LIBBIN/libscotcherrexit.so ]
 then
-    echo "    scotch header in $SCOTCH_ARCH_PATH/include"
-    echo "    scotch libs   in $FOAM_EXT_LIBBIN"
+    echo "    scotch include: $SCOTCH_ARCH_PATH/include"
+    echo "    scotch library: $FOAM_EXT_LIBBIN"
 elif [ -d "$SCOTCH_SOURCE_DIR" ]
 then
 (
@@ -145,6 +132,9 @@ then
     export CCS="${CC:-$WM_CC}"  # CCS (serial compiler)   default=$(CC)
     export CCP=$(whichMpicc)    # CCP (parallel compiler) default=mpicc
 
+    # Consistency for Intel-MPI and non-icc compilers
+    [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
+
     make realclean 2>/dev/null  # Extra safety
     make -j $WM_NCOMPPROCS scotch \
      && make \
@@ -173,15 +163,15 @@ if [ "${FOAM_MPI:-dummy}" != dummy ] && \
 then
     echo
     echo ========================================
-    echo "Build pt-scotch decomposition library $SCOTCH_VERSION (with $FOAM_MPI)"
+    echo "pt-scotch decomposition ($SCOTCH_VERSION with $FOAM_MPI)"
     echo "    $SCOTCH_ARCH_PATH"
 
     if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \
       -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \
       -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.so ]
     then
-        echo "    ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
-        echo "    ptscotch libs   in $FOAM_EXT_LIBBIN/$FOAM_MPI"
+        echo "    ptscotch include: $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
+        echo "    ptscotch library: $FOAM_EXT_LIBBIN/$FOAM_MPI"
     else
     (
         cd $SCOTCH_SOURCE_DIR/src || exit 1
@@ -209,6 +199,9 @@ then
         export CCS="${CC:-$WM_CC}"  # CCS (serial compiler)   default=$(CC)
         export CCP=$(whichMpicc)    # CCP (parallel compiler) default=mpicc
 
+        # Consistency for Intel-MPI and non-icc compilers
+        [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
+
         make realclean 2>/dev/null  # Extra safety
         make -j $WM_NCOMPPROCS ptscotch \
          && make \
@@ -233,55 +226,46 @@ fi
 
 #------------------------------------------------------------------------------
 
-# Metis is optional
 echo
 echo ========================================
-echo Build Metis decomposition
-
-# Get METIS_VERSION, METIS_ARCH_PATH
-if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
+# Get KAHIP_ARCH_PATH
+if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/kahip)
 then
     . $settings
 fi
+if [ -n "$KAHIP_ARCH_PATH" ]
+then
+    echo KaHIP decomposition
+    ./makeKAHIP -test "$KAHIP_ARCH_PATH" || \
+    ./makeKAHIP || warnBuildIssues KAHIP
+else
+    warnNotFound KAHIP   # METIS is optional
+fi
 
-METIS_SOURCE_DIR=$sourceBASE/$METIS_VERSION
+#------------------------------------------------------------------------------
+echo
+echo ========================================
 
-if [ -f $METIS_ARCH_PATH/include/metis.h \
-  -a -r $FOAM_EXT_LIBBIN/libmetis.so ]
+# Get METIS_ARCH_PATH
+if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
 then
-    echo "    metis header in $METIS_ARCH_PATH/include"
-    echo "    metis libs   in $FOAM_EXT_LIBBIN"
-elif [ -d "$METIS_SOURCE_DIR" ]
+    . $settings
+fi
+if [ -n "$METIS_ARCH_PATH" ]
 then
-(
-    cd $METIS_SOURCE_DIR || exit 1
-    export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
-    rm -rf $METIS_ARCH_PATH
-
-    # Adjust metis integer size to match OpenFOAM label-size
-    sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \
-        include/metis.h
-
-    # No config option for the library location.
-    # - build normally and use mv to relocate it
-
-    make config shared=1 prefix=$METIS_ARCH_PATH \
-     && make -j $WM_NCOMPPROCS install \
-     && mv $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN
-
-    rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # Failed rmdir is uncritical
-) || warnBuildIssues METIS
+    echo Metis decomposition
+    ./makeMETIS -test "$METIS_ARCH_PATH" || \
+    ./makeMETIS || warnBuildIssues METIS
 else
-    warnNotFound METIS
+    warnNotFound METIS   # METIS is optional
 fi
 
-
 #------------------------------------------------------------------------------
 echo
 echo ========================================
-echo Build CGAL
 if [ -n "$CGAL_ARCH_PATH" ]
 then
+    echo "CGAL/boost"
     ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
     ./makeCGAL || warnBuildIssues CGAL
 else
@@ -290,9 +274,9 @@ fi
 
 echo
 echo ========================================
-echo Build FFTW
 if [ -n "$FFTW_ARCH_PATH" ]
 then
+    echo FFTW
     ./makeFFTW -test "$FFTW_ARCH_PATH" || \
     ./makeFFTW || warnBuildIssues FFTW
 else
diff --git a/BUILD.md b/BUILD.md
index b66b633cabeab60484ebcb28cc7901038e578b3f..d8737eedd4b6f73fb3d3b9b901ef12b048783d2a 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -109,7 +109,7 @@ ThirdParty components prior to building OpenFOAM itself.
    - This will be automatically invoked by the top-level OpenFOAM `Allwmake`, but
      can also be invoked directly to find possible build errors.
    - Builds an mpi library (openmpi or mpich), scotch decomposition, boost, CGAL, FFTW.
-   - If the optional metis directory is found, it will also be compiled.
+   - If the optional kahip or metis  directories are found, they will also be compiled.
 4. `makeParaView`  *(optional but highly recommended)*
    - This is optional, but extremely useful for visualization and for
      run-time post-processing function objects.
@@ -122,16 +122,26 @@ ThirdParty components prior to building OpenFOAM itself.
 #### Optional Components
 
 `makeADIOS`
-- Only required for ADIOS support,
+- Only required for [ADIOS](#parallel) support,
   which is currently staged in the [add-ons repository][link AddOns].
 
 `makeCGAL`
-- Builds third-party boost and CGAL.
+- Builds [boost](#general-packages) and [CGAL](#general-packages).
   Automatically invoked from the ThirdParty `Allwmake`,
   but can be invoked directly to resolve possible build errors.
 
 `makeFFTW`
-- Builds third-party FFTW.
+- Builds [FFTW](#general-packages).
+  Automatically invoked from the ThirdParty `Allwmake`,
+  but can be invoked directly to resolve possible build errors.
+
+`makeKAHIP`
+- Builds [KaHIP](#parallel) decomposition library.
+  Automatically invoked from the ThirdParty `Allwmake`,
+  but can be invoked directly to resolve possible build errors.
+
+`makeMETIS`
+- Builds [METIS](#parallel) decomposition library.
   Automatically invoked from the ThirdParty `Allwmake`,
   but can be invoked directly to resolve possible build errors.
 
@@ -147,11 +157,11 @@ ThirdParty components prior to building OpenFOAM itself.
 `makeMesa`, `makeVTK`
 - Additional support for building offscreen rendering components.
   Useful if you want to render on computer servers without graphics cards.
-  The `makeParaView.example` and `makeVTK.example` files provide some useful
+  The `makeParaView.example` and `makeVTK.example` files offer some
   suggestions about compiling such a configuration.
 
 `makeQt`
-- Script to build a [third-party installation of Qt](#makeQt), including qmake.
+- Script to build a [Qt](#makeQt), including qmake.
 - Possibly needed for `makeParaView`.
 - The associated `etc/relocateQt` may be of independent use.
   Read the file for more details.
@@ -188,13 +198,13 @@ and save some disk space.
   sources that are bundled with ParaView.
   For example, by using a symbolic link:
 
-      ln -s ParaView-v5.4.0/VTK VTK-8.1.0
+      ln -s ParaView-v5.4.1/VTK VTK-8.1.0
 
   The appropriate VTK version number can be found from the contents of
   the `vtkVersion.cmake` file.
   For example,
 
-      $ cat ParaView-v5.4.0/VTK/CMake/vtkVersion.cmake
+      $ cat ParaView-v5.4.1/VTK/CMake/vtkVersion.cmake
 
       # VTK version number components.
       set(VTK_MAJOR_VERSION 8)
@@ -207,27 +217,12 @@ and save some disk space.
   required.
   See additional notes below about [making Qt](#makeQt) if necessary.
 
-#### 5.4.0
+#### 5.4.x
 - Compiles without patching.
   No known issues with the native OpenFOAM reader.
 
-#### 5.3.0
-- Compiles without patching.
-  The native OpenFOAM reader has a bug reading tetrahedrals.
-
-#### 5.2.0
-- Compiles without patching, but the native OpenFOAM reader is
-  broken in this version.
-
-#### 4.4.0/5.0.0/5.0.1/5.1.2
-- When using `makeParaView`, the following patches will be automatically
-  applied (see the `etc/patches` directory):
-  - Bugfix for STL reader - affects 4.4.0 only.
-  - Broken installation (ui_pqExportStateWizard.h) - affects 4.4.0/5.0.0/5.0.1/5.1.x
-  - Building with gcc-6.1.0 - affects 4.4.0/5.0.0/5.0.1 (patch applied for 5.0.1)
-  - The SciberQuestToolKit plugin fails to compile with gcc-6.1.0 and causes
-    the compilation of ParaView to halt. The easiest solution is to delete
-    the ParaView-5.0.1/Plugins/SciberQuestToolKit directory.
+#### 5.3.0 and older are neither recommended nor supported
+- Various compilation issues and known bugs.
 
 ### ADIOS
 - The github release currently requires GNU autoconf tools (eg,
@@ -250,7 +245,7 @@ and save some disk space.
 
 3. Build ParaView using this third-party QT. For example,
 
-       ./makeParaView -qt-4.8.7 5.0.1
+       ./makeParaView -qt-4.8.7 5.4.1
 
 - ParaView versions prior to 5.3.0 do not properly support QT5.
 
@@ -302,23 +297,19 @@ install the 32-bit development libraries by default.
 The minimum version of clang required is 3.3.
 
 *Attention*: If you are building a newer version of clang, you may need to
-update your CMake beforehand.
-GNU *configure* can only be used prior to clang version 3.9.
+update your CMake beforehand since GNU *configure* can only be used prior
+to clang version 3.9.
 
+If your system gcc is particularly old
+(see [minimum gcc requirements for clang](#min-gcc))
+you may have additional hurdles to using the newest versions of clang.
 
-| Name                  | Location
-|-----------------------|------------------------
-| [clang][page clang]   | [download][link clang]
-| [llvm][page llvm]     | [download][link llvm]
-
-
-### Parallel Processing <a name="parallel"></a>
 
 | Name                  | Location
 |-----------------------|------------------------
-| [adios][page adios]   | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios]
-| [scotch, ptscotch][page scotch] | [download][link scotch]
-| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues.
+| [clang][page clang]   | [download][link clang] or [newer][newer clang]
+| [llvm][page llvm]     | [download][link llvm] or [newer][newer llvm]
+| [openmp][page omp]    | [download][link omp] or [newer][newer omp]
 
 
 ### General <a name="general-packages"></a>
@@ -334,13 +325,24 @@ GNU *configure* can only be used prior to clang version 3.9.
 | gperftools            | [repo][repo gperftools] or [download][link gperftools]
 
 
+### Parallel Processing <a name="parallel"></a>
+
+| Name                  | Location
+|-----------------------|------------------------
+| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues.
+| [adios][page adios]   | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios]
+| [scotch, ptscotch][page scotch] | [download][link scotch]
+| [kahip][page kahip] | [download][link kahip]
+| [metis][page metis] | [download][link metis]
+
+
 ### Visualization <a name="viz-version"></a>
 
 | Name                  | Location
 |-----------------------|------------------------
 | [MESA][page mesa]     | [download][link mesa] or [older 13][older13 mesa], [older 11][older11 mesa]
 | [ParaView][page ParaView] | [download][link ParaView]
-| [Qt][page Qt]         | [repo][repo Qt] or [download][link Qt]. The newer [Qt5][newer Qt5] only works with ParaView-5.3.0 and later.
+| [Qt][page Qt]         | Either the [older QT4][link Qt4] or the [newer QT5][link Qt5], which only works with ParaView-5.3.0 and later.
 
 
 ### CMake Minimum Requirements <a name="min-cmake"></a>
@@ -348,18 +350,14 @@ GNU *configure* can only be used prior to clang version 3.9.
 The minimum CMake requirements for building various components.
 
     2.8         llvm-3.4.2
-    2.8.8       ParaView-5.0.1
     2.8.11      CGAL-4.9
+    2.8.11      CGAL-4.11
     2.8.12.2    llvm-3.7.0
     2.8.12.2    llvm-3.8.0
     2.8.4       cmake-3.6.0
-    3.3         ParaView-5.1.2
-    3.3         ParaView-5.2.0
-    3.3         ParaView-5.3.0
-    3.3         ParaView-5.4.0
+    3.3         ParaView-5.4.1
     3.4.3       llvm-3.9.1
     3.4.3       llvm-4.0.0
-    3.5         ParaView-5.1.0
 
 
 ### GCC Minimum Requirements <a name="min-gcc"></a>
@@ -371,6 +369,10 @@ The minimum gcc/g++ requirements for building various components.
     4.7         llvm-3.5.2
     4.4         llvm-3.4.2
 
+If your system gcc/g++ is too old to build the desired llvm/clang
+version, you may need to build a lower llvm/clang version and then use
+that clang compiler for building the newer llvm/clang version.
+
 
 <!-- gcc-related -->
 [page gcc]:       http://gcc.gnu.org/releases.html
@@ -385,26 +387,35 @@ The minimum gcc/g++ requirements for building various components.
 
 
 <!-- clang-related -->
-[page clang]:     http://llvm.org/
 [page llvm]:      http://llvm.org/
+[page clang]:     http://clang.llvm.org/
+[page omp]:       http://openmp.llvm.org/
 
 [link clang]:     http://llvm.org/releases/3.7.1/cfe-3.7.1.src.tar.xz
 [link llvm]:      http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz
+[link omp]:       http://llvm.org/releases/3.7.1/openmp-3.7.1.src.tar.xz
 
-[newer clang]:    http://llvm.org/releases/4.0.0/cfe-4.0.0.src.tar.xz
-[newer llvm]:     http://llvm.org/releases/4.0.0/llvm-4.0.0.src.tar.xz
+[newer clang]:    http://llvm.org/releases/4.0.1/cfe-4.0.1.src.tar.xz
+[newer llvm]:     http://llvm.org/releases/4.0.1/llvm-4.0.1.src.tar.xz
+[newer omp]:      http://llvm.org/releases/4.0.1/openmp-4.0.1.src.tar.xz
 
 
 <!-- parallel -->
 [page adios]:     https://www.olcf.ornl.gov/center-projects/adios/
 [repo adios]:     https://github.com/ornladios/ADIOS
-[link adios]:     https://github.com/ornladios/ADIOS/archive/v1.11.1.tar.gz
-[altlink adios]:  http://users.nccs.gov/%7Epnorbert/adios-1.11.1.tar.gz
+[link adios]:     https://github.com/ornladios/ADIOS/archive/v1.13.0.tar.gz
+[altlink adios]:  http://users.nccs.gov/%7Epnorbert/adios-1.13.0.tar.gz
 [page zfp]:       http://computation.llnl.gov/projects/floating-point-compression/zfp-versions
 
 [page scotch]:    https://www.labri.fr/perso/pelegrin/scotch/
 [link scotch]:    https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
 
+[page kahip]:     http://algo2.iti.kit.edu/documents/kahip/
+[link kahip]:     http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz
+
+[page metis]:     http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
+[link metis]:     http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
+
 [page openmpi]:   http://www.open-mpi.org/
 [link openmpi]:   https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.4.tar.bz2
 [newer openmpi]:  https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2
@@ -421,7 +432,7 @@ The minimum gcc/g++ requirements for building various components.
 [link CGAL]:      https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9.1/CGAL-4.9.1.tar.xz
 
 [page FFTW]:      http://www.fftw.org/
-[link FFTW]:      http://www.fftw.org/fftw-3.3.6-pl1.tar.gz
+[link FFTW]:      http://www.fftw.org/fftw-3.3.7.tar.gz
 
 [page cgns]:      http://cgns.github.io/
 [link ccmio]:     http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
@@ -437,7 +448,7 @@ The minimum gcc/g++ requirements for building various components.
 <!-- Visualization -->
 
 [page ParaView]:  http://www.paraview.org/
-[link ParaView]:  http://www.paraview.org/files/v5.4/ParaView-v5.4.0.tar.gz
+[link ParaView]:  http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz
 
 [page mesa]:  http://mesa3d.org/
 [link mesa]:  ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz
@@ -446,25 +457,27 @@ The minimum gcc/g++ requirements for building various components.
 
 [page Qt]: https://www.qt.io/download-open-source/
 [repo Qt]: http://code.qt.io/cgit/qt-creator/qt-creator.git
-[link Qt]: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
-[newer Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.0/single/qt-everywhere-opensource-src-5.9.0.tar.xz
+[link Qt4]: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
+[link Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz
 
 <!-- OpenFOAM -->
 
 [link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
-[link community-projects]: http://www.openfoam.com/services/community-projects.php
+[link community-projects]: http://www.openfoam.com/community/projects.php
 
+---
 
 <!-- Standard Footer -->
 ## Additional OpenFOAM Links
 
 - [Community AddOns][link AddOns] repository
 - [Collaborative and Community-based Developments][link community-projects]
-- [Download](http://www.openfoam.com/releases) and
-  [installation instructions](http://www.openfoam.com/download/installation.php)
+- [Download](http://www.openfoam.com/download) and
+  [installation instructions](http://www.openfoam.com/code/build-guide.php)
 - [Documentation](http://www.openfoam.com/documentation)
-- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM+
+- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM
 - [Contacting OpenCFD](http://www.openfoam.com/contact)
+
 ---
 
 Copyright 2016-2017 OpenCFD Ltd
diff --git a/README.md b/README.md
index 975a68dd549bf6c7ded623850d0a7061fda81a41..e8571a5da5b607eb8341eefdc397eaea7cc1170a 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
    | =========                 |                                              |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox        |
    |  \\    /   O peration     |                                              |
-   |   \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.              |
+   |   \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.         |
    |    \\/     M anipulation  |                                              |
    |--------------------------------------------------------------------------|
   -->
@@ -65,19 +65,26 @@ ThirdParty components prior to building OpenFOAM itself.
 
 ### Build Details
 
-More details can be found the ThirdParty ./BUILD.md information.
+More details can be found the ThirdParty BUILD.md information.
 
+<!-- OpenFOAM -->
+
+[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
+[link community-projects]: http://www.openfoam.com/community/projects.php
+
+---
 
 <!-- Standard Footer -->
 ## Additional OpenFOAM Links
 
-- [Download](http://www.openfoam.com/releases) and
-  [installation instructions](http://www.openfoam.com/download/installation.php)
+- [Community AddOns][link AddOns] repository
+- [Collaborative and Community-based Developments][link community-projects]
+- [Download](http://www.openfoam.com/download) and
+  [installation instructions](http://www.openfoam.com/code/build-guide.php)
 - [Documentation](http://www.openfoam.com/documentation)
-- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php)
-- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php)
+- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM
 - [Contacting OpenCFD](http://www.openfoam.com/contact)
 
 ---
 
-Copyright 2016 OpenCFD Ltd
+Copyright 2016-2017 OpenCFD Ltd
diff --git a/SOURCES.txt b/SOURCES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0d8c44f414fb8b0e03c39dccfd683e9fef56461c
--- /dev/null
+++ b/SOURCES.txt
@@ -0,0 +1,69 @@
+Short summary of third-party software versions for recent OpenFOAM versions.
+
+OpenFOAM-1712
+---------------
+CGAL-4.9.1
+ParaView-5.4.1      *minor*
+boost_1_64_0
+fftw-3.3.7          *minor*
+openmpi-1.10.4
+scotch_6.0.3
+kahip-2.00d         *new*
+
+
+OpenFOAM-1706
+---------------
+CGAL-4.9.1          *minor*
+ParaView-5.4.0      *update*
+boost_1_64_0        *update*
+fftw-3.3.6-pl1      *minor*
+openmpi-1.10.4
+scotch_6.0.3
+
+
+OpenFOAM-1612
+---------------
+CGAL-4.9            *update*
+ParaView-5.0.1      *update*
+boost_1_62_0        *update*
+fftw-3.3.5          *minor*
+openmpi-1.10.4      *minor*
+scotch_6.0.3
+
+
+OpenFOAM-1606
+---------------
+CGAL-4.8            *update*
+ParaView-5.0.1      *update*
+boost_1_61_0        *new*
+fftw-3.3.4          *new*
+openmpi-1.10.2      *minor*
+scotch_6.0.3
+
+
+OpenFOAM-v3.0+
+---------------
+CGAL-4.7            *update*
+ParaView-4.4.0      *update*
+openmpi-1.10.0      *update*
+scotch_6.0.3
+
+
+OpenFOAM-v2.4
+---------------
+CGAL-4.6            *update*
+ParaView-4.1.0
+openmpi-1.8.5       *update*
+scotch_6.0.3        *update*
+
+
+---------------
+OpenFOAM-v2.3
+---------------
+CGAL-4.3
+ParaView-4.1.0
+openmpi-1.6.5
+scotch_6.0.0
+
+
+---------------
diff --git a/etc/makeFiles/kahip/files b/etc/makeFiles/kahip/files
new file mode 100644
index 0000000000000000000000000000000000000000..9ecb867e855333076d5750e19c0d4209580bc6e1
--- /dev/null
+++ b/etc/makeFiles/kahip/files
@@ -0,0 +1,70 @@
+/* NOTE: make any changes to this file in etc/wmakeFiles/ */
+
+interface/kaHIP_interface.cpp
+
+/* List obtained from SConscript, libkaffpa_files = [ ... ] entry */
+
+data_structure/graph_hierarchy.cpp
+algorithms/strongly_connected_components.cpp
+algorithms/topological_sort.cpp
+algorithms/push_relabel.cpp
+io/graph_io.cpp
+tools/quality_metrics.cpp
+tools/random_functions.cpp
+tools/graph_extractor.cpp
+tools/misc.cpp
+tools/partition_snapshooter.cpp
+partition/graph_partitioner.cpp
+partition/w_cycles/wcycle_partitioner.cpp
+partition/coarsening/coarsening.cpp
+partition/coarsening/contraction.cpp
+partition/coarsening/edge_rating/edge_ratings.cpp
+partition/coarsening/matching/matching.cpp
+partition/coarsening/matching/random_matching.cpp
+partition/coarsening/matching/gpa/path.cpp
+partition/coarsening/matching/gpa/gpa_matching.cpp
+partition/coarsening/matching/gpa/path_set.cpp
+partition/coarsening/clustering/node_ordering.cpp
+partition/coarsening/clustering/size_constraint_label_propagation.cpp
+partition/initial_partitioning/initial_partitioning.cpp
+partition/initial_partitioning/initial_partitioner.cpp
+partition/initial_partitioning/initial_partition_bipartition.cpp
+partition/initial_partitioning/initial_refinement/initial_refinement.cpp
+partition/initial_partitioning/bipartition.cpp
+partition/initial_partitioning/initial_node_separator.cpp
+partition/uncoarsening/uncoarsening.cpp
+partition/uncoarsening/separator/area_bfs.cpp
+partition/uncoarsening/separator/vertex_separator_algorithm.cpp
+partition/uncoarsening/separator/vertex_separator_flow_solver.cpp
+partition/uncoarsening/refinement/cycle_improvements/greedy_neg_cycle.cpp
+partition/uncoarsening/refinement/cycle_improvements/problem_factory.cpp
+partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph.cpp
+partition/uncoarsening/refinement/mixed_refinement.cpp
+partition/uncoarsening/refinement/label_propagation_refinement/label_propagation_refinement.cpp
+partition/uncoarsening/refinement/refinement.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/2way_fm_refinement/two_way_fm.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/two_way_flow_refinement.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/boundary_bfs.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/flow_solving_kernel/cut_flow_problem_solver.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/most_balanced_minimum_cuts/most_balanced_minimum_cuts.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_refinement.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/complete_boundary.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/partial_boundary.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/quotient_graph_scheduling.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/simple_quotient_graph_scheduler.cpp
+partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/active_block_quotient_graph_scheduler.cpp
+partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement.cpp
+partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_core.cpp
+partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_commons.cpp
+partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph_fabric.cpp
+partition/uncoarsening/refinement/cycle_improvements/advanced_models.cpp
+partition/uncoarsening/refinement/kway_graph_refinement/multitry_kway_fm.cpp
+partition/uncoarsening/refinement/node_separators/greedy_ns_local_search.cpp
+partition/uncoarsening/refinement/node_separators/fm_ns_local_search.cpp
+partition/uncoarsening/refinement/node_separators/localized_fm_ns_local_search.cpp
+algorithms/cycle_search.cpp
+partition/uncoarsening/refinement/cycle_improvements/cycle_refinement.cpp
+partition/uncoarsening/refinement/tabu_search/tabu_search.cpp
+
+
+LIB = $(FOAM_EXT_LIBBIN)/libkahip
diff --git a/etc/makeFiles/kahip/options b/etc/makeFiles/kahip/options
new file mode 100644
index 0000000000000000000000000000000000000000..b13ca4a71c970e1e449e1bb5eb5f570e860831dd
--- /dev/null
+++ b/etc/makeFiles/kahip/options
@@ -0,0 +1,15 @@
+/*
+ * NOTE: make any changes to this file in etc/wmakeFiles/
+ * Must use -DNDEBUG to disable kahip debug mode.
+ * Using -DMODE_NODESEP is not strictly required for building the library.
+*/
+
+EXE_INC = \
+    ${c++LESSWARN} \
+    ${COMP_OPENMP} \
+    -DNDEBUG -DMODE_NODESEP \
+    -I$(KAHIP_LIB_SRC) \
+    -I$(KAHIP_LIB_SRC)/partition \
+    -I$(KAHIP_LIB_SRC)/partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement
+
+LIB_LIBS =
diff --git a/etc/wmakeFiles/libccmio/files b/etc/makeFiles/libccmio/files
similarity index 86%
rename from etc/wmakeFiles/libccmio/files
rename to etc/makeFiles/libccmio/files
index 9949c7617fcece09df88b45fc39d253b2cbd8ace..57e04e32c4d673267720a5283413a4cb414c9162 100644
--- a/etc/wmakeFiles/libccmio/files
+++ b/etc/makeFiles/libccmio/files
@@ -1,4 +1,4 @@
-/* NOTE: make any changes to this file in etc/wmakeFiles/ */
+/* NOTE: make any changes to this file in etc/makeFiles/ */
 
 libadf/ADF_interface.c
 libadf/ADF_internals.c
diff --git a/etc/makeFiles/libccmio/options b/etc/makeFiles/libccmio/options
new file mode 100644
index 0000000000000000000000000000000000000000..267c5865a4beb0d3af6725491c4ba24538d8be91
--- /dev/null
+++ b/etc/makeFiles/libccmio/options
@@ -0,0 +1,3 @@
+/* NOTE: make any changes to this file in etc/makeFiles/ */
+
+/* EXE_INC = */
diff --git a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM b/etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
similarity index 97%
rename from etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
rename to etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
index c6f1bce3faa2edcc6a64836202a63a44a4f6a21c..1733136f505f922ba5faa6ac7f3ac10aaa126b1a 100644
--- a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
+++ b/etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM
@@ -20,6 +20,7 @@ CCD         = $(CCP)
 CFLAGS      = $(WM_CFLAGS) -O3 \
     -DCOMMON_FILE_COMPRESS_GZ \
     -DCOMMON_RANDOM_FIXED_SEED \
+    -DSCOTCH_DETERMINISTIC \
     -DSCOTCH_RENAME \
     -Drestrict=__restrict
 
diff --git a/etc/patches/ADIOS-1.11.0 b/etc/patches/ADIOS-1.11.0
deleted file mode 100644
index 60ca0dde9fb225f4e43a76f609bb99c39edac5ae..0000000000000000000000000000000000000000
--- a/etc/patches/ADIOS-1.11.0
+++ /dev/null
@@ -1,12 +0,0 @@
---- ADIOS-1.11.0/src/core/adios_transform_methods.c.orig	2016-11-17 19:46:11.000000000 +0100
-+++ ADIOS-1.11.0/src/core/adios_transform_methods.c	2016-12-14 15:19:39.870832445 +0100
-@@ -7,6 +7,9 @@
-
- ADIOS_AVAILABLE_TRANSFORM_METHODS * adios_available_transform_methods()
- {
-+    /* Ensure the transforms are initialized before accessing */
-+    adios_transform_read_init();
-+
-     int i, n;
-     n = 0;
-     for (i = (int)adios_transform_none; i < num_adios_transform_types; i++) {
diff --git a/etc/patches/adios-1.11.0 b/etc/patches/adios-1.11.0
deleted file mode 120000
index ab6c15d82a0249fd67775d3b893bfa5296a81b88..0000000000000000000000000000000000000000
--- a/etc/patches/adios-1.11.0
+++ /dev/null
@@ -1 +0,0 @@
-ADIOS-1.11.0
\ No newline at end of file
diff --git a/etc/patches/mkdiff-paraview-5.0.1 b/etc/patches/mkdiff-paraview-5.0.1
deleted file mode 100644
index b727ef9f4653e9daf37cd755648c8a77ca775130..0000000000000000000000000000000000000000
--- a/etc/patches/mkdiff-paraview-5.0.1
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-# simple script to generate patches
-paraview=ParaView-5.0.1
-if [ "$#" -gt 0 ]
-then
-    paraview="${1%%/}"
-fi
-
-[ -d "$paraview" ] || {
-    echo "No directory '$paraview'" 1>&2
-    exit 2
-}
-
-for i in \
-    $paraview/VTK/CMake/vtkCompilerExtras.cmake \
-    $paraview/VTK/CMake/GenerateExportHeader.cmake \
-    $paraview/Qt/Components/CMakeLists.txt \
-    $paraview/CMake/generate_qhp.cmake \
-    $paraview/CMake/ParaViewMacros.cmake \
-    $paraview/CMake/generate_proxydocumentation.cmake \
-    ;
-do
-    diff -uw $i.orig $i
-done
-
-# -----------------------------------------------------------------------------
diff --git a/etc/patches/paraview-4.4.0 b/etc/patches/paraview-4.4.0
deleted file mode 100644
index 92ff39ba0020db81b8315572d36e00ae12cfa920..0000000000000000000000000000000000000000
--- a/etc/patches/paraview-4.4.0
+++ /dev/null
@@ -1,44 +0,0 @@
---- ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx.orig	2015-09-11 19:59:24.000000000 +0200
-+++ ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx	2016-06-19 12:59:50.769770143 +0200
-@@ -448,7 +448,7 @@
-           done = done || (fscanf(fp,"%s", line)==EOF);
-           }
-         }
--      if (!done)
-+      else if (!done)
-         {
-         done = (fgets(line, 255, fp) == 0);
-         lineCount++;
---- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake	2016-06-11 15:10:14.820958942 +0200
-@@ -32,7 +32,7 @@
-     OUTPUT_VARIABLE _gcc_version_info
-     ERROR_VARIABLE _gcc_version_info)
-
--  string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
-+  string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
-     _gcc_version "${_gcc_version_info}")
-   if(NOT _gcc_version)
-     string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
---- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake	2016-06-11 15:12:16.344357746 +0200
-@@ -166,7 +166,7 @@
-     execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
-       OUTPUT_VARIABLE _gcc_version_info
-       ERROR_VARIABLE _gcc_version_info)
--    string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
-+    string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
-       _gcc_version "${_gcc_version_info}")
-     # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
-     # patch level, handle this here:
---- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig	2016-06-13 09:27:27.827849525 +0200
-+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt	2016-06-13 09:29:28.599318445 +0200
-@@ -640,7 +640,7 @@
- #the pqSGExportStateWizard has subclasses that directly access
- #the UI file, and currently we don't have a clean way to break this hard
- #dependency, so for no we install this ui file.
--if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
-+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON)
-   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
-           DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
- endif()
diff --git a/etc/patches/paraview-5.0.0 b/etc/patches/paraview-5.0.0
deleted file mode 120000
index 1f0fde93583019682b97c6e9a81280220825e6c1..0000000000000000000000000000000000000000
--- a/etc/patches/paraview-5.0.0
+++ /dev/null
@@ -1 +0,0 @@
-paraview-5.0.1
\ No newline at end of file
diff --git a/etc/patches/paraview-5.0.1 b/etc/patches/paraview-5.0.1
deleted file mode 100644
index c4126f9464e43193ad125a0b92ffb5a14d91567f..0000000000000000000000000000000000000000
--- a/etc/patches/paraview-5.0.1
+++ /dev/null
@@ -1,221 +0,0 @@
---- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -32,7 +32,7 @@
-     OUTPUT_VARIABLE _gcc_version_info
-     ERROR_VARIABLE _gcc_version_info)
-
--  string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
-+  string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
-     _gcc_version "${_gcc_version_info}")
-   if(NOT _gcc_version)
-     string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
---- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -166,7 +166,7 @@
-     execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
-       OUTPUT_VARIABLE _gcc_version_info
-       ERROR_VARIABLE _gcc_version_info)
--    string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
-+    string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
-       _gcc_version "${_gcc_version_info}")
-     # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
-     # patch level, handle this here:
---- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig	2016-03-28 17:07:03.000000000 +0200
-+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt	2016-12-13 17:38:42.713553032 +0100
-@@ -656,7 +656,7 @@
- #the pqSGExportStateWizard has subclasses that directly access
- #the UI file, and currently we don't have a clean way to break this hard
- #dependency, so for no we install this ui file.
--if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
-+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON)
-   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
-           DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
- endif()
---- ParaView-5.0.1/CMake/generate_qhp.cmake.orig	2016-03-28 17:06:22.000000000 +0200
-+++ ParaView-5.0.1/CMake/generate_qhp.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -44,7 +48,9 @@
-   message(FATAL_ERROR "Missing one of the required arguments!!")
- endif ()
-
--string (REPLACE "+" ";" file_patterns "${file_patterns}")
-+# Recover original ';' separated list.
-+string(REPLACE "_s" ";"  file_patterns "${file_patterns}")
-+string(REPLACE "_u" "_"  file_patterns "${file_patterns}")
-
- get_filename_component(working_dir "${output_file}" PATH)
-
---- ParaView-5.0.1/CMake/ParaViewMacros.cmake.orig	2016-03-28 17:07:03.000000000 +0200
-+++ ParaView-5.0.1/CMake/ParaViewMacros.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -219,15 +226,21 @@
-   set (xmls_string "")
-   foreach (xml ${xmls})
-     get_filename_component(xml "${xml}" ABSOLUTE)
--    set (xmls_string "${xmls_string}${xml}+")
-+    set (xmls_string "${xmls_string}${xml};")
-   endforeach()
-
-   set (gui_xmls_string "")
-   foreach (gui_xml ${gui_xmls})
-     get_filename_component(gui_xml "${gui_xml}" ABSOLUTE)
--    set (gui_xmls_string "${gui_xmls_string}${gui_xml}+")
-+    set (gui_xmls_string "${gui_xmls_string}${gui_xml};")
-   endforeach()
-
-+  # Escape ';' in lists
-+  string(REPLACE "_" "_u"  xmls_string "${xmls_string}")
-+  string(REPLACE ";" "_s"  xmls_string "${xmls_string}")
-+  string(REPLACE "_" "_u"  gui_xmls_string "${gui_xmls_string}")
-+  string(REPLACE ";" "_s"  gui_xmls_string "${gui_xmls_string}")
-+
-   set (all_xmls ${xmls} ${gui_xmls})
-   list (GET all_xmls 0 first_xml)
-   if (NOT first_xml)
---- ParaView-5.0.1/CMake/generate_proxydocumentation.cmake.orig	2016-03-28 17:06:22.000000000 +0200
-+++ ParaView-5.0.1/CMake/generate_proxydocumentation.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -21,8 +21,10 @@
- endif()
-
- # input_xmls is a pseudo-list. Convert it to a real CMake list.
--string(REPLACE "+" ";" input_xmls "${input_xmls}")
--string(REPLACE "+" ";" input_gui_xmls "${input_gui_xmls}")
-+string(REPLACE "_s" ";"  input_xmls "${input_xmls}")
-+string(REPLACE "_u" "_"  input_xmls "${input_xmls}")
-+string(REPLACE "_s" ";"  input_gui_xmls "${input_gui_xmls}")
-+string(REPLACE "_u" "_"  input_gui_xmls "${input_gui_xmls}")
-
- set (xslt_xml)
-
---- ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake	2017-01-19 10:23:19.170743269 +0100
-@@ -19,9 +19,11 @@
- # OSMesa logic for offscreen mesa rendering.
- option(VTK_OPENGL_HAS_OSMESA
-   "The OpenGL library being used supports off screen Mesa calls" OFF)
-+
- # EGL offscreen rendering
- option(VTK_USE_OFFSCREEN_EGL
-   "Use EGL for OpenGL client API for offscreen rendering." OFF)
-+
- set(VTK_EGL_DEVICE_INDEX 0 CACHE STRING
-   "Index of the EGL device (graphics card) to use.")
-
-@@ -33,21 +35,26 @@
- endif()
-
- option(VTK_USE_OFFSCREEN "Use off screen calls by default" OFF)
-+
- unset(VTK_CAN_DO_OFFSCREEN)
-+unset(VTK_CAN_DO_ONSCREEN)
-+
- if(VTK_OPENGL_HAS_OSMESA OR WIN32 OR VTK_USE_OFFSCREEN_EGL)
-   set(VTK_CAN_DO_OFFSCREEN 1)
- endif()
-+
- if(VTK_USE_X OR VTK_USE_COCOA OR WIN32 OR ANDROID OR APPLE_IOS)
--  set(VTK_USE_OSMESA FALSE)
-+  set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
-   if (VTK_USE_OFFSCREEN_EGL)
-     message(FATAL_ERROR "VTK_USE_OFFSCREEN_EGL set together with one of ("
-       "VTK_USE_X, VTK_USE_COCOA, WIN32, ANDROID OR APPLE_IOS). "
-       "You cannot use both offscreen and one of the listed windowing systems.")
-   endif()
-+  set(VTK_CAN_DO_ONSCREEN 1)
- elseif(VTK_USE_OFFSCREEN_EGL)
-   set(VTK_USE_OSMESA FALSE)
- else()
--  set(VTK_USE_OSMESA TRUE)
-+  set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
- endif()
-
- mark_as_advanced(VTK_USE_X VTK_OPENGL_HAS_OSMESA VTK_USE_OFFSCREEN_EGL
-@@ -56,10 +63,17 @@
- if(VTK_USE_OSMESA)
-   find_package(OSMesa REQUIRED)
-   include_directories(SYSTEM ${OSMESA_INCLUDE_DIR})
--elseif(VTK_USE_OFFSCREEN_EGL)
-+endif()
-+
-+if(VTK_USE_OFFSCREEN_EGL)
-     find_package(EGL REQUIRED)
-     include_directories(SYSTEM ${EGL_INCLUDE_DIR})
--else()
-+endif()
-+
-+if(VTK_CAN_DO_ONSCREEN)
-+  # OpenGL libraries are explicity needed if windowing system-based API is being
-+  # used. Otherwise, if only doing OFFSCREEN, the GL API is provided by the
-+  # offscreen library be it EGL or OSMESA.
-   find_package(OpenGL REQUIRED)
-   include_directories(SYSTEM ${OPENGL_INCLUDE_DIR})
-   if(APPLE)
-@@ -83,9 +97,11 @@
- function(vtk_opengl_link target)
-   if(VTK_USE_OSMESA)
-     vtk_module_link_libraries(${target} LINK_PRIVATE ${OSMESA_LIBRARY})
--  elseif(VTK_USE_OFFSCREEN_EGL)
-+  endif()
-+  if(VTK_USE_OFFSCREEN_EGL)
-     vtk_module_link_libraries(${target} LINK_PRIVATE ${EGL_LIBRARIES})
--  else()
-+  endif()
-+  if(VTK_CAN_DO_ONSCREEN)
-     vtk_module_link_libraries(${target} LINK_PRIVATE ${OPENGL_LIBRARIES})
-   endif()
- endfunction()
---- ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx.orig	2016-03-28 17:07:10.000000000 +0200
-+++ ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx	2017-01-19 15:24:21.783214877 +0100
-@@ -30,10 +30,25 @@
- typedef ptrdiff_t GLsizeiptr;
- #include "GL/glx.h"
-
-+
-+#ifndef GLAPI
-+#define GLAPI extern
-+#endif
-+
-+#ifndef GLAPIENTRY
-+#define GLAPIENTRY
-+#endif
-+
-+#ifndef APIENTRY
-+#define APIENTRY GLAPIENTRY
-+#endif
-+
- #include "vtkToolkits.h"
-
- #ifdef VTK_USE_OSMESA
- #include <GL/osmesa.h>
-+
-+typedef OSMesaContext GLAPIENTRY (*OSMesaCreateContextAttribs_func)( const int *attribList, OSMesaContext sharelist );
- #endif
-
- #include "vtkCommand.h"
-@@ -757,6 +772,28 @@
-       this->Size[1] = height;
-       this->OwnWindow = 1;
-       }
-+
-+#if (OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 1102) && defined(OSMESA_CONTEXT_MAJOR_VERSION)
-+    static const int attribs[] = {
-+       OSMESA_FORMAT, OSMESA_RGBA,
-+       OSMESA_DEPTH_BITS, 32,
-+       OSMESA_STENCIL_BITS, 0,
-+       OSMESA_ACCUM_BITS, 0,
-+       OSMESA_PROFILE, OSMESA_CORE_PROFILE,
-+       OSMESA_CONTEXT_MAJOR_VERSION, 3,
-+       OSMESA_CONTEXT_MINOR_VERSION, 2,
-+       0 };
-+
-+    OSMesaCreateContextAttribs_func OSMesaCreateContextAttribs =
-+       (OSMesaCreateContextAttribs_func)
-+       OSMesaGetProcAddress("OSMesaCreateContextAttribs");
-+
-+    if (OSMesaCreateContextAttribs != NULL)
-+    {
-+      this->Internal->OffScreenContextId = OSMesaCreateContextAttribs(attribs, NULL);
-+    }
-+#endif
-+    // if we still have no context fall back to the generic signature
-     if (!this->Internal->OffScreenContextId)
-       {
-       this->Internal->OffScreenContextId = OSMesaCreateContext(GL_RGBA, NULL);
diff --git a/etc/patches/paraview-5.1.0 b/etc/patches/paraview-5.1.0
deleted file mode 120000
index 36a4164f0a04e0524b0d54971344fe407c71b6f2..0000000000000000000000000000000000000000
--- a/etc/patches/paraview-5.1.0
+++ /dev/null
@@ -1 +0,0 @@
-paraview-5.1.2
\ No newline at end of file
diff --git a/etc/patches/paraview-5.1.2 b/etc/patches/paraview-5.1.2
deleted file mode 100644
index ccfc7c125d8f3116fb0f26cf99c6d0034d89a4ed..0000000000000000000000000000000000000000
--- a/etc/patches/paraview-5.1.2
+++ /dev/null
@@ -1,65 +0,0 @@
---- ParaView-5.1.2/Qt/Components/CMakeLists.txt.orig	2016-07-26 21:52:16.000000000 +0200
-+++ ParaView-5.1.2/Qt/Components/CMakeLists.txt	2016-12-13 17:38:42.713553032 +0100
-@@ -591,7 +591,7 @@
- #the pqSGExportStateWizard has subclasses that directly access
- #the UI file, and currently we don't have a clean way to break this hard
- #dependency, so for no we install this ui file.
--if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
-+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON)
-   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
-           DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
- endif()
---- ParaView-5.1.2/CMake/generate_qhp.cmake.orig	2016-03-28 17:06:22.000000000 +0200
-+++ ParaView-5.1.2/CMake/generate_qhp.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -44,7 +48,9 @@
-   message(FATAL_ERROR "Missing one of the required arguments!!")
- endif ()
-
--string (REPLACE "+" ";" file_patterns "${file_patterns}")
-+# Recover original ';' separated list.
-+string(REPLACE "_s" ";"  file_patterns "${file_patterns}")
-+string(REPLACE "_u" "_"  file_patterns "${file_patterns}")
-
- get_filename_component(working_dir "${output_file}" PATH)
-
---- ParaView-5.1.2/CMake/ParaViewMacros.cmake.orig	2016-03-28 17:07:03.000000000 +0200
-+++ ParaView-5.1.2/CMake/ParaViewMacros.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -219,15 +226,21 @@
-   set (xmls_string "")
-   foreach (xml ${xmls})
-     get_filename_component(xml "${xml}" ABSOLUTE)
--    set (xmls_string "${xmls_string}${xml}+")
-+    set (xmls_string "${xmls_string}${xml};")
-   endforeach()
-
-   set (gui_xmls_string "")
-   foreach (gui_xml ${gui_xmls})
-     get_filename_component(gui_xml "${gui_xml}" ABSOLUTE)
--    set (gui_xmls_string "${gui_xmls_string}${gui_xml}+")
-+    set (gui_xmls_string "${gui_xmls_string}${gui_xml};")
-   endforeach()
-
-+  # Escape ';' in lists
-+  string(REPLACE "_" "_u"  xmls_string "${xmls_string}")
-+  string(REPLACE ";" "_s"  xmls_string "${xmls_string}")
-+  string(REPLACE "_" "_u"  gui_xmls_string "${gui_xmls_string}")
-+  string(REPLACE ";" "_s"  gui_xmls_string "${gui_xmls_string}")
-+
-   set (all_xmls ${xmls} ${gui_xmls})
-   list (GET all_xmls 0 first_xml)
-   if (NOT first_xml)
---- ParaView-5.1.2/CMake/generate_proxydocumentation.cmake.orig	2016-03-28 17:06:22.000000000 +0200
-+++ ParaView-5.1.2/CMake/generate_proxydocumentation.cmake	2016-12-13 17:21:25.382720945 +0100
-@@ -21,8 +21,10 @@
- endif()
-
- # input_xmls is a pseudo-list. Convert it to a real CMake list.
--string(REPLACE "+" ";" input_xmls "${input_xmls}")
--string(REPLACE "+" ";" input_gui_xmls "${input_gui_xmls}")
-+string(REPLACE "_s" ";"  input_xmls "${input_xmls}")
-+string(REPLACE "_u" "_"  input_xmls "${input_xmls}")
-+string(REPLACE "_s" ";"  input_gui_xmls "${input_gui_xmls}")
-+string(REPLACE "_u" "_"  input_gui_xmls "${input_gui_xmls}")
-
- set (xslt_xml)
-
diff --git a/etc/pkgconfigAdjust b/etc/pkgconfigAdjust
index 26932a1327b913385f05ad8a923be9c1f7fe9e50..b8f47fdef73535d999d115549d0b8a28aaea4448 100755
--- a/etc/pkgconfigAdjust
+++ b/etc/pkgconfigAdjust
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     etc/pkgconfigAdjust
diff --git a/etc/pkgconfigPrefix b/etc/pkgconfigPrefix
index 469de6d8ceea87a8a69a47944e4d99f10ce22ba1..17c1f61520fd38904d0ad58f5e9e55c6f2b8b6f7 100755
--- a/etc/pkgconfigPrefix
+++ b/etc/pkgconfigPrefix
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     etc/pkgconfigPrefix
diff --git a/etc/relocateQt b/etc/relocateQt
index 4b2045426607fd5cf06b65a607f03eae9492b456..bfbff2621665da1773155ea990507d4060bef844 100755
--- a/etc/relocateQt
+++ b/etc/relocateQt
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     etc/relocateQt
diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions
index a53bddac4b0d33e9eebf698fa5c47b6837846528..b5330c95ff417bc047c1369f92734be75c1c49ad 100644
--- a/etc/tools/ParaViewFunctions
+++ b/etc/tools/ParaViewFunctions
@@ -6,20 +6,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # File
 #     etc/tools/ParaViewFunctions
@@ -27,6 +15,18 @@
 # Description
 #     ParaView make/install helper functions
 #
+# Note
+#     Obtaining paths via 'python-config' is possible, but may not always
+#     resolve properly:
+#
+#         python-config --includes
+#         >>
+#             -I/usr/include/python2.7 -I/usr/include/python2.7
+#
+#         python-config --libs
+#         >>
+#             -lpython2.7 -lpthread -ldl -lutil -lm
+#
 #------------------------------------------------------------------------------
 
 # Variables referenced by the functions. Initialization at the end of the file.
@@ -116,10 +116,10 @@ setParaViewVersion()
 #
 addCMakeVariable()
 {
-    while [ -n "$1" ]
+    local i
+    for i
     do
-        CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
-        shift
+        [ -n "$i" ] && CMAKE_VARIABLES="$CMAKE_VARIABLES -D$i"
     done
 }
 
@@ -146,7 +146,7 @@ addMpiSupport()
         return
     fi
 
-    addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
+    addCMakeVariable "PARAVIEW_USE_MPI=ON" "VTK_USE_MPI=ON"
     if [ "${MPI_MAX_PROCS:=0}" -gt 1 ]
     then
         addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
@@ -159,68 +159,91 @@ addMpiSupport()
 #
 addPythonSupport()
 {
-    if [ "${withPYTHON:=false}" != true ]
+    if [ "${withPYTHON:-false}" != true ]
     then
         return
     fi
 
-    if pythonBin=$(which python 2>/dev/null)
+    local pythonBin pythonConfig pythonMajor
+
+    pythonBin=$(which python 2>/dev/null) || {
+        echo "*** Error: python not found"
+        echo "***        Deactivate python support by not using the -python "
+        echo "***        option"
+        exit 1
+    }
+
+    if [ -n "$PYTHON_LIBRARY" ]
     then
-        if [ -n "$PYTHON_LIBRARY" ]
-        then
-            # Check $PYTHON_LIBRARY if it has been set
-            if [ ! -e "$PYTHON_LIBRARY" ]
-            then
-                echo "*** Error: libpython not found at location specified " \
-                     "by -pythnon-lib input: PYTHON_LIBRARY=$PYTHON_LIBRARY"
-            fi
-        else
-            # Try to get $PYTHON_LIBRARY from dynamically linked binary
-            PYTHON_LIBRARY=$(ldd $pythonBin | \
-                sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
 
-            [ -e "$PYTHON_LIBRARY" ] || {
-                echo "*** Error: Unable to determine path to python library."
-            }
-        fi
+        # PYTHON_LIBRARY set:
+        [ -e "$PYTHON_LIBRARY" ] || \
+            echo "*** Error: libpython not found at location specified " \
+                 "by -python-lib : PYTHON_LIBRARY=$PYTHON_LIBRARY"
+
+    else
+
+        # Fallback: get PYTHON_LIBRARY from dynamically linked binary
+
+        PYTHON_LIBRARY=$(ldd $pythonBin | \
+            sed -ne '/libpython/s/^.* => \(.*\) (.*/\1/p')
 
         [ -e "$PYTHON_LIBRARY" ] || {
-            echo "    Please set the full path to the python library "
-            echo "    (including libpython) using the -python-lib option, "
-            echo "    or deactivate python support by not using the -python "
-            echo "    option"
-            exit 1
+            echo "*** Error: Unable to determine path to python library."
         }
 
-        pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
-        pythonInclude=/usr/include/python$pythonMajor
+    fi
 
-        # Note - we could also allow for a PYTHON_INCLUDE variable ...
-        [ -d "$pythonInclude" -a -f "$pythonInclude/Python.h" ] || {
-            echo "    No python headers found in $pythonInclude/"
-            echo "    Please install python headers or deactivate "
-            echo "    python support by not using the -python option"
-            exit 1
-        }
+    [ -e "$PYTHON_LIBRARY" ] || {
+        echo "    Please set the full path to the python library "
+        echo "    (including libpython) using the -python-lib option, "
+        echo "    or deactivate python support by not using the -python "
+        echo "    option"
+        exit 1
+    }
 
-        addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
-        addCMakeVariable "PYTHON_INCLUDE_DIRS=$pythonInclude"
-        addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
+    # Guess major from library
+    pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
 
-        echo "----"
-        echo "Python information:"
-        echo "    executable     : $pythonBin"
-        echo "    version        : $pythonMajor"
-        echo "    include path   : $pythonInclude"
-        echo "    library        : $PYTHON_LIBRARY"
+    if [ -n "$PYTHON_INCLUDE" ]
+    then
+
+        # PYTHON_INCLUDE set:
+        [ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || \
+            echo "*** Error: Python.h not found at location specified " \
+                 "by -python-include : PYTHON_INCLUDE=$PYTHON_INCLUDE"
+
+    elif pythonConfig=$(which python-config 2>/dev/null)
+    then
+        # Guess from python-config
+        # parse '-I/usr/include/python2.7 -I/usr/include/python2.7'
+        # -> '/usr/include/python2.7'
+        PYTHON_INCLUDE=$(python-config --includes | sed -ne 's/^-I\([^ ][^ ]*\).*$/\1/p')
 
-        unset pythonBin pythonInclude pythonMajor
     else
-        echo "*** Error: python not found"
-        echo "***        Deactivate python support by not using the -python "
-        echo "***        option"
-        exit 1
+
+        # Fallback to system headers
+        PYTHON_INCLUDE=/usr/include/python$pythonMajor
+
     fi
+
+    [ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || {
+        echo "    No python headers found in $PYTHON_INCLUDE/"
+        echo "    Please install python headers or deactivate "
+        echo "    python support by not using the -python option"
+        exit 1
+    }
+
+    addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
+    addCMakeVariable "PYTHON_INCLUDE_DIRS=$PYTHON_INCLUDE"
+    addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
+
+    echo "----"
+    echo "Python information:"
+    echo "    executable     : $pythonBin"
+    echo "    version        : $pythonMajor"
+    echo "    include path   : $PYTHON_INCLUDE"
+    echo "    library        : $PYTHON_LIBRARY"
 }
 
 
diff --git a/etc/tools/QtFunctions b/etc/tools/QtFunctions
index 6a6556fdcb490a35611c3a9c34b9ad459c2dba77..c67f533c9dd3d1c63f4fb68ae8caa7e903413fcf 100644
--- a/etc/tools/QtFunctions
+++ b/etc/tools/QtFunctions
@@ -6,20 +6,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # File
 #     etc/tools/QtFunction
diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions
index 6c5c6a73b9e028bf70be3d7bbbf20d252be68ba6..8ac3ef7b1b6dfec38292a16f23075b4c91b558bb 100644
--- a/etc/tools/ThirdPartyFunctions
+++ b/etc/tools/ThirdPartyFunctions
@@ -6,26 +6,14 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # File
 #     etc/tools/ThirdPartyFunctions
 #
 # Description
-#     Functions for managing the third-party packages
+#     Various functions used in building ThirdParty packages
 #
 #     Define the standard buildBASE and installBASE for the platform
 #     Define WM_NCOMPPROCS always.
@@ -58,16 +46,21 @@ useGccFlag()
     done
 }
 
-# Return mpiicc (for INTELMPI) or mpicc etc.
+# Return <mpicc> by default or <mpiicc> if possible for INTELMPI.
+# Cray doesn't have <mpicc>, but its <cc> manages mpi paths directly.
+# NOTE: could further refine based on $CC or $WM_CC, but not yet needed
 whichMpicc()
 {
-    local mpicc
+    local mpicc=$(command -v mpicc)
     case "$WM_MPLIB" in
     (INTELMPI)
-        mpicc=$(command -v mpiicc)      # Try using intel 'mpiicc'
+        mpicc=$(command -v mpiicc)  # Intel <mpiicc> available?
+        ;;
+    (CRAY-MPI*)
+        : ${mpicc:=cc}              # Cray <cc> if there is no <mpicc>
         ;;
     esac
-    echo "${mpicc:-mpicc}"              # mpiicc | mpicc
+    echo "${mpicc:-mpicc}"
 }
 
 #------------------------------------------------------------------------------
@@ -117,7 +110,6 @@ else
     WM_NCOMPPROCS=1
 fi
 export WM_NCOMPPROCS
-# echo "Building on $WM_NCOMPPROCS cores"
 
 
 #
@@ -417,7 +409,7 @@ downloadFile()
 
 
 #
-# Copy Make/{files,options} from etc/wmakeFiles/PACKAGE
+# Copy Make/{files,options} from etc/makeFiles/PACKAGE
 #
 # $1 = PACKAGE
 # $2 = TARGET DIRECTORY (optional)
@@ -432,7 +424,7 @@ cpMakeFiles()
     local dst="${2:-.}"
     echo "cpMakeFiles" $pkg $dst
 
-    wmakeFiles=$WM_THIRD_PARTY_DIR/etc/wmakeFiles/$pkg
+    wmakeFiles=$WM_THIRD_PARTY_DIR/etc/makeFiles/$pkg
 
     for i in $(cd $wmakeFiles && find . -type f)
     do
diff --git a/etc/tools/vtkFunctions b/etc/tools/vtkFunctions
index eece891a18d0f7adeb32670af07d616d3ec59453..c0b4d9842fd9ade34a6da3630de6ba660b365f53 100644
--- a/etc/tools/vtkFunctions
+++ b/etc/tools/vtkFunctions
@@ -6,20 +6,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # File
 #     etc/tools/vtkFunctions
@@ -169,11 +157,12 @@ makeVTK()
     cd $VTK_BUILD_DIR || exit 1  # Change to build folder
     echo "    Starting make"
     time make -j $WM_NCOMPPROCS
-    echo "    Done make"
 
     # Remove lib if it is a link
     # (how this was previously handled before 'make install' worked)
     [ -L lib ] && rm -f lib 2>/dev/null
+
+    echo "    Done make"         # Last statement for clean return code
 }
 
 
diff --git a/etc/wmakeFiles/libccmio/options b/etc/wmakeFiles/libccmio/options
deleted file mode 100644
index 5f4fb605cbeec08ffbca0c5be452eb6e4e5c50d9..0000000000000000000000000000000000000000
--- a/etc/wmakeFiles/libccmio/options
+++ /dev/null
@@ -1,3 +0,0 @@
-/* NOTE: make any changes to this file in etc/wmakeFiles/ */
-
-/* EXE_INC = */
diff --git a/makeADIOS b/makeADIOS
index f558be3339c66dd5e88adea8cbbd16c2a49f71ce..ed5775874c1d6b5ad6d2b722c954bb2928b9695d 100755
--- a/makeADIOS
+++ b/makeADIOS
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeADIOS
@@ -51,7 +39,7 @@ usage() {
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
     cat<<USAGE
 
-usage: ${0##*/} [OPTION] [adios-VERSION]
+usage: ${0##*/} [OPTION] [adios-VERSION] [-- configure-options]
 options:
   -cmake PATH       With cmake from the path given
   -gcc              Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
@@ -75,6 +63,7 @@ while [ "$#" -gt 0 ]
 do
     case "$1" in
     '') ;;      # Ignore empty
+    --) break;; # Extra configure options (leave on $@ for later detection)
     -h | -help) usage   ;;
     -gcc)       useGcc  ;;
 
@@ -86,6 +75,7 @@ do
     ADIOS-[1-9]* | adios-[1-9]* | ADIOS-git* | adios-git*)
         adiosPACKAGE="${1%%/}"
         ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
@@ -95,7 +85,7 @@ done
 
 [ -n "$adiosPACKAGE" ] || die "The adios-VERSION was not specified"
 
-# nothing to build
+# Nothing to build
 if _foamIsNone "$adiosPACKAGE"
 then
     echo "Using adios-none (skip ThirdParty build of ADIOS)"
@@ -246,7 +236,7 @@ then
     echo "Starting build: $adiosPACKAGE (using configure)"
     echo
     (
-        # configuration options:
+        # Configuration options:
         unset configOpt
 
         # Add InfiniBand support
@@ -257,22 +247,29 @@ then
         fi
 
         # Transport layers
-        if [ -f "/usr/include/bzlib.h" ]
+        if [ -f /usr/include/bzlib.h ]
         then
             configOpt="$configOpt --with-bzip2"
         fi
 
-        if [ -f "/usr/include/zlib.h" ]
+        if [ -f /usr/include/zlib.h ]
         then
             configOpt="$configOpt --with-zlib"
         fi
 
         # Other types of support
-        ## $configOpt="$configOpt --with-hdf5=..."
-        ## $configOpt="$configOpt --with-lustre=..."
+        ## configOpt="$configOpt --with-hdf5=..."
+        ## configOpt="$configOpt --with-lustre=..."
         ## configOpt="$configOpt --enable-research-transports"
 
-        # end of configuration options
+        # Additional configure options
+        if [ "$1" = "--" ]
+        then
+            shift
+            configOpt="$configOpt $@"
+        fi
+
+        # End of configuration options
         # ----------------------------
         buildDIR=$buildBASE/$adiosPACKAGE
 
diff --git a/makeCCMIO b/makeCCMIO
index 2e1b976f41d5a50364b8f908f4de2a95b6b97786..539111d593cff8eb44c3f47529c5f0a5bf3edb28 100755
--- a/makeCCMIO
+++ b/makeCCMIO
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeCCMIO
@@ -111,29 +99,48 @@ CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
 # Sources must be available
 [ -d "$CCMIO_SOURCE_DIR" ] || die "Missing sources: '$ccmioPACKAGE'"
 
+#
+# Manual installation
+#
+install()
+{
+    # Ensure a clean build next time
+    wclean
+
+    local incdir=$CCMIO_ARCH_PATH/include/libccmio
+
+    # Make headers available:
+    mkdir -m 0755 -p $incdir
+
+    /bin/cp -pv libccmio/ccmio*.h $incdir
+}
+
+echo "Starting build: $ccmioPACKAGE ($targetType)"
+echo
 (
     cd $CCMIO_SOURCE_DIR || exit 1
     export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
 
-    incDIR=$CCMIO_ARCH_PATH/include/libccmio
-    libDIR=$CCMIO_ARCH_PATH/lib
+    rm -rf $CCMIO_ARCH_PATH
+    rm -f $FOAM_EXT_LIBBIN/libccmio.so
 
-    mkdir -p $incDIR 2>/dev/null
-    mkdir -p $libDIR 2>/dev/null
+    libdir=$CCMIO_ARCH_PATH/lib
 
     cpMakeFiles libccmio 2>/dev/null
 
     # Place static libraries in sub-directory:
     if [ "$targetType" = lib ]
     then
-        export FOAM_EXT_LIBBIN=$libDIR
+        mkdir -m 0755 -p $libdir 2>/dev/null
+        export FOAM_EXT_LIBBIN=$libdir
     fi
 
-    if wmake $targetType
-    then
-        # Make headers available:
-        /bin/cp -pv libccmio/ccmio*.h $incDIR
-    fi
-)
+    wmake -j $WM_NCOMPPROCS -s $targetType \
+    && echo "Built: ccmio" \
+    && install
+) || {
+    echo "Error building: ccmio"
+    exit 1
+}
 
 #------------------------------------------------------------------------------
diff --git a/makeCGAL b/makeCGAL
index 7c27be622dd7e36cb6028dcabef35ecdf2c78eb1..5b13fb1d37cf1f64cc9624a6685e2335ce614e72 100755
--- a/makeCGAL
+++ b/makeCGAL
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeCGAL
@@ -44,8 +32,8 @@ then
     dir="$2" # <- CGAL_ARCH_PATH
     if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libCGAL.so" ]
     then
-        echo "    CGAL  headers in $dir/include"
-        echo "    CGAL  libs    in $dir/lib$WM_COMPILER_LIB_ARCH"
+        echo "    CGAL  include: $dir/include"
+        echo "    CGAL  library: $dir/lib$WM_COMPILER_LIB_ARCH"
         # Additional information about boost
         dir="$3" # <- BOOST_ARCH_PATH
         for root in "$dir" /usr
@@ -53,8 +41,8 @@ then
             if [ -d "$root/include/boost" \
               -a -r "$root/lib$WM_COMPILER_LIB_ARCH/libboost_system.so" ]
             then
-                echo "    BOOST headers in $root/include"
-                echo "    BOOST libs    in $root/lib$WM_COMPILER_LIB_ARCH"
+                echo "    boost include: $root/include"
+                echo "    boost library: $root/lib$WM_COMPILER_LIB_ARCH"
                 break
             fi
         done
diff --git a/makeCmake b/makeCmake
index f8d0cdbd14513295704e88d4599f6a5198654a73..96b3c245409931b4a4e33a91b03faff38a546a00 100755
--- a/makeCmake
+++ b/makeCmake
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeCmake
diff --git a/makeFFTW b/makeFFTW
index dd8ea35acf84dec46675138afb0591759bca6567..d5ae7a9fedf31cc0275b0e5c159b7b48560fe110 100755
--- a/makeFFTW
+++ b/makeFFTW
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeFFTW
@@ -38,8 +26,8 @@ then
     dir="$2" # <- FFTW_ARCH_PATH
     if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
     then
-        echo "    FFTW headers in $dir/include"
-        echo "    FFTW libs    in $dir/lib$WM_COMPILER_LIB_ARCH"
+        echo "    fftw include: $dir/include"
+        echo "    fftw library: $dir/lib$WM_COMPILER_LIB_ARCH"
         exit 0
     else
         exit 2
diff --git a/makeGcc b/makeGcc
index cfe9c085dcb3a054bf6f3aa6c2f194eec9af32ca..90192e1fe06cae56852130a87d65d151370345dd 100755
--- a/makeGcc
+++ b/makeGcc
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeGcc
diff --git a/makeGperftools b/makeGperftools
index 4ad0f949b241397925a4a62a5de1005ff0f69c56..47c2d03c861e879c43ee0f1a806de1c21e4fa8eb 100755
--- a/makeGperftools
+++ b/makeGperftools
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeGperftools
diff --git a/makeKAHIP b/makeKAHIP
new file mode 100755
index 0000000000000000000000000000000000000000..a17b14be8ad0ff96e7ffa6551eacbe59d199abb5
--- /dev/null
+++ b/makeKAHIP
@@ -0,0 +1,193 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+#    \\/     M anipulation  |
+#------------------------------------------------------------------------------
+# License
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
+#
+# Script
+#     makeKAHIP
+#
+# Description
+#     Build the KaHIP library (int32 only).
+#
+# ----------------------------------------------
+# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
+#------------------------------------------------------------------------------
+# Short-circuit test for an installation
+if [ "$1" = "-test" ]
+then
+    [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
+    dir="$2" # <- KAHIP_ARCH_PATH
+    if [ -d "$dir/include" ]
+    then
+        for lib in \
+            $FOAM_EXT_LIBBIN/libkahip.so \
+            $dir/lib/libkahip.a \
+            $dir/lib/libkahip.so \
+            $dir/lib$WM_COMPILER_LIB_ARCH/libkahip.a \
+            $dir/lib$WM_COMPILER_LIB_ARCH/libkahip.so \
+            ;
+        do
+            if [ -r "$lib" ]
+            then
+                echo "    kahip include: $dir/include"
+                echo "    kahip library: ${lib%/*}"
+                exit 0
+            fi
+        done
+    fi
+    exit 2
+fi
+#------------------------------------------------------------------------------
+# Run from third-party directory only
+cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
+    echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
+    echo "    Check your OpenFOAM environment and installation"
+    exit 1
+}
+[ -n "$FOAM_EXT_LIBBIN" ] || {
+    echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
+    echo "    Check your OpenFOAM environment and installation"
+    exit 1
+}
+. etc/tools/ThirdPartyFunctions
+#------------------------------------------------------------------------------
+_foamEtc config.sh/kahip
+
+kahipPACKAGE=${KAHIP_VERSION:-kahip-system}
+targetType=libso
+
+#------------------------------------------------------------------------------
+usage()
+{
+    exec 1>&2
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    /bin/cat<<USAGE
+
+Usage: ${0##*/} [OPTION] [lib|libso] [kahip-VERSION]
+options:
+  -gcc              Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
+  -help
+
+* Compile KaHIP
+      $kahipPACKAGE
+
+USAGE
+    exit 1
+}
+#------------------------------------------------------------------------------
+
+# Parse options
+while [ "$#" -gt 0 ]
+do
+    case "$1" in
+    '') ;;      # Ignore empty
+    -h | -help) usage   ;;
+    -gcc)       useGcc  ;;
+
+    lib|libso)
+        targetType="$1"
+        ;;
+
+    kahip-[1-9]* | kahip-git)
+        kahipPACKAGE="${1%%/}"
+        unset KAHIP_ARCH_PATH  # Avoid inconsistency
+        ;;
+    *)
+        die "unknown option/argument: '$1'"
+        ;;
+    esac
+    shift
+done
+
+[ -n "$kahipPACKAGE" ] || die "The kahip-VERSION was not specified"
+
+# Nothing to build
+if _foamIsNone $kahipPACKAGE
+then
+    echo "Using kahip-none (skip ThirdParty build of KAHIP)"
+    exit 0
+elif _foamIsSystem $kahipPACKAGE
+then
+    echo "Using kahip-system"
+    exit 0
+fi
+
+#------------------------------------------------------------------------------
+#
+# Build KaHIP
+#
+#   KAHIP_ARCH_PATH  : installation directory
+#   KAHIP_SOURCE_DIR : location of the original sources
+
+KAHIP_SOURCE_DIR=$sourceBASE/$kahipPACKAGE
+KAHIP_ARCH_PATH=$installBASE/$kahipPACKAGE
+
+[ -d "$KAHIP_SOURCE_DIR" ] || {
+    echo "Missing sources: '$kahipPACKAGE'"
+    exit 1
+}
+
+#
+# Manual installation
+#
+install()
+{
+    # Ensure a clean build next time
+    wclean
+
+    local bindir=$KAHIP_ARCH_PATH/bin
+    local incdir=$KAHIP_ARCH_PATH/include
+    local libdir=$KAHIP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+
+    mkdir -m 0755 -p $incdir
+
+    /bin/cp -pv \
+        $KAHIP_SOURCE_DIR/interface/kaHIP_interface.h \
+        $incdir
+}
+
+echo "Starting build: $kahipPACKAGE ($targetType)"
+echo
+(
+    cd $KAHIP_SOURCE_DIR/lib || exit 1
+    export GIT_DIR=$KAHIP_SOURCE_DIR/.git # Mask seeing our own git-repo
+
+    rm -rf $KAHIP_ARCH_PATH
+    rm -f $FOAM_EXT_LIBBIN/libkahip.so
+
+    libdir=$KAHIP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+
+    cpMakeFiles kahip 2>/dev/null
+
+    if [ -e ../interface -a ! -e interface ]
+    then
+        ln -s ../interface interface
+    fi
+
+    # Place static libraries in sub-directory:
+    if [ "$targetType" = lib ]
+    then
+        mkdir -m 0755 -p $libdir 2>/dev/null
+        export FOAM_EXT_LIBBIN=$libdir
+    fi
+
+    # Location of lib sources for wmake
+    export KAHIP_LIB_SRC=$PWD
+
+    wmake -j $WM_NCOMPPROCS -s $targetType \
+    && echo "Built: kahip" \
+    && install
+) || {
+    echo "Error building: kahip"
+    exit 1
+}
+
+
+#------------------------------------------------------------------------------
diff --git a/makeLLVM b/makeLLVM
index 102cce3c028aaabd7118fe811399e73302549245..b5141a2147eb8cad9353d569e693a0ac085b183b 100755
--- a/makeLLVM
+++ b/makeLLVM
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeLLVM
@@ -35,12 +23,16 @@
 #    For example, when building from tar files (version 4.0.0)
 #
 #    1) Unpack LLVM:
-#        tar -xJf llvm-4.0.0.src.tar.xz
-#        mv llvm-4.0.0.src  llvm-4.0.0
+#        tar -xJf llvm-4.0.1.src.tar.xz
+#        mv llvm-4.0.1.src  llvm-4.0.1
 #
 #    2) Unpack Clang (also know as cfe):
-#        tar -xJf cfe-4.0.0.src.tar.xz
-#        mv cfe-4.0.0.src  llvm-4.0.0/tools/clang
+#        tar -xJf cfe-4.0.1.src.tar.xz
+#        mv cfe-4.0.1.src  llvm-4.0.1/tools/clang
+#
+#    3) Unpack openmp (optional):
+#        tar -xJf openmp-4.0.1.src.tar.xz
+#        mv openmp-4.0.1.src  llvm-4.0.1/tools/openmp
 #
 # ----------------------------------------------
 # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
diff --git a/makeMETIS b/makeMETIS
new file mode 100755
index 0000000000000000000000000000000000000000..cdcff2ea38f11aefde5c94db8898460eb7b20d37
--- /dev/null
+++ b/makeMETIS
@@ -0,0 +1,189 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+#    \\/     M anipulation  |
+#------------------------------------------------------------------------------
+# License
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
+#
+# Script
+#     makeMETIS
+#
+# Description
+#     Build script for METIS
+#
+# ----------------------------------------------
+# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
+#------------------------------------------------------------------------------
+# Short-circuit test for an installation
+if [ "$1" = "-test" ]
+then
+    [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
+    dir="$2" # <- METIS_ARCH_PATH
+    if [ -d "$dir/include" ]
+    then
+        for lib in \
+            $FOAM_EXT_LIBBIN/libmetis.so \
+            $dir/lib/libmetis.a \
+            $dir/lib/libmetis.so \
+            $dir/lib$WM_COMPILER_LIB_ARCH/libmetis.a \
+            $dir/lib$WM_COMPILER_LIB_ARCH/libmetis.so \
+            ;
+        do
+            if [ -r "$lib" ]
+            then
+                echo "    metis include: $dir/include"
+                echo "    metis library: ${lib%/*}"
+                exit 0
+            fi
+        done
+    fi
+    exit 2
+fi
+#------------------------------------------------------------------------------
+# Run from third-party directory only
+cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
+    echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
+    echo "    Check your OpenFOAM environment and installation"
+    exit 1
+}
+[ -n "$FOAM_EXT_LIBBIN" ] || {
+    echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
+    echo "    Check your OpenFOAM environment and installation"
+    exit 1
+}
+. etc/tools/ThirdPartyFunctions
+#------------------------------------------------------------------------------
+_foamEtc config.sh/metis
+
+metisPACKAGE=${METIS_VERSION:-metis-system}
+targetType=libso
+
+#------------------------------------------------------------------------------
+usage() {
+    exec 1>&2
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
+
+usage: ${0##*/} [OPTION] [lib|libso] [METIS-VERSION]
+options:
+  -gcc              Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
+  -help
+
+* build METIS with
+      ${metisPACKAGE:-'unspecified metis version'}
+
+USAGE
+    exit 1
+}
+#------------------------------------------------------------------------------
+# Compiler settings for CMake/configure
+[ -n "$WM_CC" ]  && export CC="$WM_CC"
+[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
+
+# Parse options
+while [ "$#" -gt 0 ]
+do
+    case "$1" in
+    '') ;;      # Ignore empty
+    -h | -help) usage   ;;
+    -gcc)       useGcc  ;;
+
+    lib|libso)
+        targetType="$1"
+        ;;
+
+    metis-[0-9]*)
+        metisPACKAGE="${1%%/}"
+        unset METIS_ARCH_PATH  # Avoid inconsistency
+        ;;
+    *)
+        die "unknown option/argument: '$1'"
+        ;;
+    esac
+    shift
+done
+
+[ -n "$metisPACKAGE" ] || die "The metis-VERSION was not specified"
+
+# Nothing to build
+if _foamIsNone $metisPACKAGE
+then
+    echo "Using metis-none (skip ThirdParty build of METIS)"
+    exit 0
+elif _foamIsSystem $metisPACKAGE
+then
+    echo "Using metis-system"
+    exit 0
+fi
+
+#------------------------------------------------------------------------------
+#
+# Build METIS
+#
+#   METIS_ARCH_PATH  : installation directory
+#   METIS_SOURCE_DIR : location of the original sources
+
+METIS_SOURCE_DIR=$sourceBASE/$metisPACKAGE
+: ${METIS_ARCH_PATH:=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$metisPACKAGE}
+
+[ -d "$METIS_SOURCE_DIR" ] || {
+    echo "Missing sources: '$metisPACKAGE'"
+    exit 1
+}
+
+#
+# Manual installation (of library)
+#
+install()
+{
+    local libdir=$METIS_ARCH_PATH/lib
+
+    if [ "$targetType" = libso ]
+    then
+        \mv $libdir/libmetis.so $FOAM_EXT_LIBBIN
+        rmdir $libdir 2>/dev/null # Failed rmdir is uncritical
+
+        echo "Installing: $FOAM_EXT_LIBBIN/libmetis.so"
+    fi
+    return 0
+}
+
+echo "Starting build: $metisPACKAGE ($targetType)"
+echo
+(
+    # Configuration options:
+    unset configOpt
+    if [ "$targetType" = libso ]
+    then
+        configOpt="shared=1"
+    fi
+
+    cd $METIS_SOURCE_DIR || exit 1
+    export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
+
+    rm -rf $METIS_ARCH_PATH
+    rm -f $FOAM_EXT_LIBBIN/libmetis.so
+
+    # Adjust metis integer size to match OpenFOAM label-size
+    sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \
+        include/metis.h
+
+    # No config option for the library location.
+    # - build normally and use mv to relocate it
+
+    make config $configOpt prefix=$METIS_ARCH_PATH \
+    && make -j $WM_NCOMPPROCS install \
+    && echo "Built: metis" \
+    && install
+) || {
+    echo "Error building: metis"
+    exit 1
+}
+
+
+#------------------------------------------------------------------------------
diff --git a/makeMGridGen b/makeMGridGen
index fdf395fa74e9ad5d2bf822f08492cd4a94382d73..72d8f5555f1f8b72e5b73fd226e3aa818e1f8b39 100755
--- a/makeMGridGen
+++ b/makeMGridGen
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeMGridGen
@@ -91,7 +79,7 @@ done
 
 [ -n "$mgridgenPACKAGE" ] || die "The mgridgen-VERSION was not specified"
 
-# nothing to build
+# Nothing to build
 if _foamIsNone "$mgridgenPACKAGE"
 then
     echo "Using mgridgen-none (skip ThirdParty build of MGridGen)"
@@ -124,23 +112,23 @@ echo
 #
 install()
 {
-   echo "Install into $MGRIDGEN_ARCH_PATH"
+    echo "Install into $MGRIDGEN_ARCH_PATH"
 
-   local bindir=$MGRIDGEN_ARCH_PATH/bin
-   local incdir=$MGRIDGEN_ARCH_PATH/include
-   local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+    local bindir=$MGRIDGEN_ARCH_PATH/bin
+    local incdir=$MGRIDGEN_ARCH_PATH/include
+    local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
 
-   for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir
-   do
-       mkdir -m 0755 -p $dir
-   done
+    for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir
+    do
+        mkdir -m 0755 -p $dir
+    done
 
-   cp -vf mgridgen.h   $incdir
-   cp -vf libmgrid.a   $libdir
-   cp -vf mgridgen     $bindir
+    cp -vf mgridgen.h   $incdir
+    cp -vf libmgrid.a   $libdir
+    cp -vf mgridgen     $bindir
 
-   chmod -R 0644 $incdir/* $libdir/*
-   chmod -R 0755 $bindir/*
+    chmod -R 0644 $incdir/* $libdir/*
+    chmod -R 0755 $bindir/*
 }
 
 
diff --git a/makeMPICH b/makeMPICH
index 2332153e60786697a462ff1050dbd69c71e5ad33..d361caac8165053b0423fe26dac24b9186d9a45c 100755
--- a/makeMPICH
+++ b/makeMPICH
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeMPICH
@@ -77,7 +65,7 @@ usage() {
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
     cat<<USAGE
 
-usage: ${0##*/} [OPTION] [mpich-VERSION]
+usage: ${0##*/} [OPTION] [mpich-VERSION] [-- configure-options]
 options:
   -gcc              force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
   -help
@@ -98,12 +86,14 @@ while [ "$#" -gt 0 ]
 do
     case "$1" in
     '') ;;      # Ignore empty
+    --) break;; # Extra configure options (leave on $@ for later detection)
     -h | -help) usage   ;;
     -gcc)       useGcc  ;;
 
     mpich*)
         mpiPACKAGE="${1%%/}"
         ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
@@ -145,9 +135,17 @@ else
     echo
 
     (
-        # configuration options:
+        # Configuration options:
         unset configOpt
-        # end of configuration options
+
+        # Additional configure options
+        if [ "$1" = "--" ]
+        then
+            shift
+            configOpt="$configOpt $@"
+        fi
+
+        # End of configuration options
         # ----------------------------
 
         cd $MPI_SOURCE_DIR || exit 1
diff --git a/makeMesa b/makeMesa
index 4ab89a55a6da99e2a9da2c05ce032d991fd84578..3534dff9fa97069c5752500156d355d60f9c1e6c 100755
--- a/makeMesa
+++ b/makeMesa
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeMesa
@@ -59,7 +47,7 @@ usage() {
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
     cat<<USAGE
 
-usage: ${0##*/} [OPTION] mesa-VERSION
+usage: ${0##*/} [OPTION] mesa-VERSION [-- configure-options]
 options:
   -gcc              Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
   -help
@@ -90,6 +78,7 @@ while [ "$#" -gt 0 ]
 do
     case "$1" in
     '') ;;      # Ignore empty
+    --) break;; # Extra configure options (leave on $@ for later detection)
     -h | -help) usage   ;;
     -gcc)
         useGcc
@@ -98,6 +87,7 @@ do
     mesa-*)
         mesaPACKAGE="${1%%/}"
         ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
@@ -127,7 +117,7 @@ then
         exit 2
     }
 
-    # root installation directory
+    # Root installation directory
     thirdPartyClang=${thirdPartyClang%/bin/clang}
 
     [ -d "$thirdPartyClang" ] || {
@@ -160,7 +150,7 @@ adjustMESA()
 }
 
 (
-    # configuration options:
+    # Configuration options:
     unset configOpt
 
     if [ -d "$thirdPartyClang" ]
@@ -168,14 +158,21 @@ adjustMESA()
         configOpt="$configOpt --with-llvm-prefix=$thirdPartyClang"
     fi
 
-    # end of configuration options
+    # Additional configure options
+    if [ "$1" = "--" ]
+    then
+        shift
+        configOpt="$configOpt $@"
+    fi
+
+    # End of configuration options
     # ----------------------------
     buildDIR=$buildBASE/$mesaPACKAGE
 
     cd $MESA_SOURCE_DIR || exit 1
     export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
 
-    # remove any existing build
+    # Remove any existing build
     rm -rf $MESA_ARCH_PATH
     rm -rf $buildDIR
     mkdir -p $buildDIR
@@ -191,7 +188,7 @@ adjustMESA()
     fi
     echo "----"
 
-    # possibly for older mesa versions (see paraview wiki)
+    # Possibly for older mesa versions (see paraview wiki)
     # CXXFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
     # CFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
 
diff --git a/makeOPENMPI b/makeOPENMPI
index e5efc2b38033a391e9731967cb252628fc151aa3..3831548fe28efbb3e6ad6b5ac2b9b4cff4829575 100755
--- a/makeOPENMPI
+++ b/makeOPENMPI
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeOPENMPI
@@ -77,9 +65,12 @@ usage() {
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
     cat<<USAGE
 
-usage: ${0##*/} [OPTION] [openmpi-VERSION]
+usage: ${0##*/} [OPTION] [openmpi-VERSION] [-- configure-options]
 options:
-  -gcc              force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
+  -gcc          Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
+  -memcheck     Configure with --enable-memcheck (requires valgrind.h)
+  -threaded     Configure with --enable-mpi-thread-multiple
+  -no-threaded  Configure with --disable-mpi-thread-multiple
   -help
 
 * build openmpi with
@@ -93,17 +84,24 @@ USAGE
 [ -n "$WM_CC" ]  && export CC="$WM_CC"
 [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
 
+unset optMemchecker optThreaded
+
 # Parse options
 while [ "$#" -gt 0 ]
 do
     case "$1" in
     '') ;;      # Ignore empty
+    --) break;; # Extra configure options (leave on $@ for later detection)
     -h | -help) usage   ;;
     -gcc)       useGcc  ;;
+    -memcheck*) optMemchecker=true ;;
+    -thread*)   optThreaded=enable ;;
+    -no-thread*) optThreaded=disable ;;
 
     openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system )
         mpiPACKAGE="${1%%/}"
         ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
@@ -136,31 +134,38 @@ MPI_ARCH_PATH=$installBASE/$mpiPACKAGE
 
 if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.so" ]
 then
-    echo "Already has shared library"
+    echo "Already has shared library: $MPI_ARCH_PATH"
 elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
 then
-    echo "Already has static library"
+    echo "Already has static library: $MPI_ARCH_PATH"
 else
     echo "Starting build: $WM_MPLIB ($mpiPACKAGE)"
     echo
 
     (
-        # configuration options:
+        # Configuration options:
         # Start with GridEngine support - builds without external libraries
         configOpt="--with-sge"
 
-        # Add InfiniBand support
-        ibDir=/usr/local/ofed
-        for libdir in lib$WM_COMPILER_LIB_ARCH lib
-        do
-            if [ -d "$ibDir/$libdir" ]
-            then
-                configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibDir/$libdir"
-                break
-            fi
-        done
-
-        # end of configuration options
+        if [ -n "$optMemchecker" ]
+        then
+            configOpt="$configOpt --enable-memchecker --with-valgrind"
+        fi
+
+        # --enable-mpi-thread-multiple / --disable-mpi-thread-multiple
+        if [ -n "$optThreaded" ]
+        then
+            configOpt="$configOpt --${optThreaded}-mpi-thread-multiple"
+        fi
+
+        # Additional configure options
+        if [ "$1" = "--" ]
+        then
+            shift
+            configOpt="$configOpt $@"
+        fi
+
+        # End of configuration options
         # ----------------------------
 
         buildDIR=$buildBASE/$mpiPACKAGE
@@ -181,7 +186,6 @@ else
             --disable-orterun-prefix-by-default \
             --enable-shared --disable-static \
             --enable-mpi-fortran=none \
-            --disable-mpi-profile \
             $configOpt \
         && set +x \
         && make -j $WM_NCOMPPROCS \
diff --git a/makeOPENMPI.example b/makeOPENMPI.example
new file mode 100755
index 0000000000000000000000000000000000000000..af458957d235679c3b242a0215832c7655a52b2b
--- /dev/null
+++ b/makeOPENMPI.example
@@ -0,0 +1,14 @@
+#!/bin/sh
+# An example for building OPENMPI with particular settings
+
+openmpi=openmpi-1.10.6
+
+# InfiniBand support
+verbs="--with-verbs=/usr/local/ofed --with-verbs-lib=/usr/local/ofed/lib64"
+# unset verbs
+
+./makeOPENMPI $openmpi -- \
+    $verbs \
+    "$@"
+
+#------------------------------------------------------------------------------
diff --git a/makeParaView b/makeParaView
index 666e5e0fea61e6535cc26a11d75ff833a0ce181b..402e5eeddec37e70e1786109bcba2a1ba5667969 100755
--- a/makeParaView
+++ b/makeParaView
@@ -7,26 +7,14 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeParaView
 #
 # Description
-#     Make and install ParaView 4 or 5.
+#     Make and install ParaView.
 #     The ParaView sources should be located under one of these locations:
 #       - $WM_THIRD_PARTY_DIR/ParaView-VERSION
 #       - $WM_THIRD_PARTY_DIR/ParaView-vVERSION
@@ -78,6 +66,8 @@ options:
   -mpi              with mpi
   -mpi=N            with max 'N' mpi processes. N=0 for no upper-limit.
   -python           with python
+  -python-include DIR
+                    location of python headers (current: ${PYTHON_INCLUDE:-none})
   -python-lib PATH  path to python library (current: ${PYTHON_LIBRARY:-none})
   -cmake PATH       with cmake from the path given
   -qmake PATH       with the Qt version corresponding to the qmake path given
@@ -113,7 +103,7 @@ For finer control, the build stages can be selected or deselected individually:
 To make a different paraview version, simply specify on the command-line.
 For example,
 
-    ./makeParaview 5.0.1
+    ./makeParaview 5.4.1
 
 Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings.
 
@@ -233,6 +223,12 @@ do
     -no-python)
         withPYTHON=false
         ;;
+    -python-include)
+        [ "$#" -ge 2 ] || die "'$1' option requires an argument"
+        withPYTHON=true
+        PYTHON_INCLUDE="${2%%/}"
+        shift
+        ;;
     -python-lib)
         [ "$#" -ge 2 ] || die "'$1' option requires an argument"
         withPYTHON=true
@@ -291,7 +287,7 @@ done
 
 [ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified"
 
-# nothing to build
+# Nothing to build
 if _foamIsNone "$ParaView_VERSION"
 then
     echo "Using paraview-none (skip ThirdParty build of ParaView)"
diff --git a/makeQt b/makeQt
index e50bcb568480e50a3a0a5b8fedb7dec11df186b9..44e691e862cf6c14f8a8ff0995cfa6811034f490 100755
--- a/makeQt
+++ b/makeQt
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeQt
@@ -45,7 +33,7 @@ usage() {
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
     cat<<USAGE
 
-usage: ${0##*/} [OPTION] [qt-VERSION]
+usage: ${0##*/} [OPTION] [qt-VERSION] [-- configure-options]
 options:
   -gcc              Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
   -help
@@ -67,6 +55,7 @@ while [ "$#" -gt 0 ]
 do
     case "$1" in
     '') ;;      # Ignore empty
+    --) break;; # Extra configure options (leave on $@ for later detection)
     -h | -help) usage   ;;
     -gcc)       useGcc  ;;
 
@@ -75,6 +64,7 @@ do
         qtVERSION="${1%%/}";
         qtVERSION="${qtVERSION##*-}"
         ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
@@ -83,7 +73,7 @@ do
 done
 qtPACKAGE=$qtTYPE-$qtVERSION
 
-# nothing to build
+# Nothing to build
 if _foamIsNone "$qtPACKAGE"
 then
     echo "Using qt-none (skip ThirdParty build of QT)"
@@ -134,7 +124,14 @@ else
             ;;
         esac
 
-        # end of configuration options
+        # Additional configure options
+        if [ "$1" = "--" ]
+        then
+            shift
+            configOpt="$configOpt $@"
+        fi
+
+        # End of configuration options
         # ----------------------------
         buildDIR=$buildBASE/$qtPACKAGE
 
diff --git a/makeTecio b/makeTecio
index 21a807685415a94310f5b00d0e945d8f43e0ee94..b34bd310eb8a9c00cea535c03025876ff1df96bb 100755
--- a/makeTecio
+++ b/makeTecio
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeTecio
diff --git a/makeVTK b/makeVTK
index 99ead3dcecc1ede7ee9da667ad32da4522c84bed..670fcadea5a221fab545ae5cb288252e57c1141c 100755
--- a/makeVTK
+++ b/makeVTK
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     makeVTK
@@ -54,7 +42,7 @@ unset vtk_version mesa_version                           # Purge current values
 # vtk version from OpenFOAM etc/config.sh file:
 _foamEtc config.sh/vtk
 
-VTK_VERSION=$vtk_version
+VTK_VERSION="${vtk_version##*-}"               # Without prefix
 
 # New rendering backend (starting with vtk 7?).
 withGL2=auto # auto-config based on version
diff --git a/minCmake b/minCmake
index 66693fe69716371df9d1cdcb3331ece0d2bd642c..bf749d6e423f9354eb58f65a10adebea74c4e673 100755
--- a/minCmake
+++ b/minCmake
@@ -7,20 +7,8 @@
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#     This file is part of OpenFOAM, licensed under GNU General Public License
+#     <http://www.gnu.org/licenses/>.
 #
 # Script
 #     minCmake
diff --git a/sources.txt b/sources.txt
deleted file mode 100644
index 5518442d4e11e0fa5052ab23a2285eae28de102e..0000000000000000000000000000000000000000
--- a/sources.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-Third-Party Sources
-===================
-
-OpenFOAM-1706
----------------
-CGAL-4.9.1
-ParaView-5.4.0
-boost_1_64_0
-fftw-3.3.6-pl1
-openmpi-1.10.4
-scotch_6.0.3
-
-
-OpenFOAM-1612
----------------
-CGAL-4.9
-ParaView-5.0.1
-boost_1_62_0
-fftw-3.3.5
-openmpi-1.10.4
-scotch_6.0.3
-
-
-OpenFOAM-1606
----------------
-CGAL-4.8
-ParaView-5.0.1
-boost_1_61_0
-fftw-3.3.4
-openmpi-1.10.2
-scotch_6.0.3
-
-
-OpenFOAM v3.0+
----------------
-CGAL-4.7
-ParaView-4.4.0
-openmpi-1.10.0
-scotch_6.0.3
-
-
-OpenFOAM+ 2.4
----------------
-CGAL-4.6
-ParaView-4.1.0
-cmake-2.8.12.1
-openmpi-1.8.5
-scotch_6.0.3