diff --git a/bin/foamCleanPath b/bin/foamCleanPath
index 1a812b0d1bd1529d80c659166fcd4a4e139faad2..6049fa8bfea951051d2c1a54e7a35706e46a18bd 100755
--- a/bin/foamCleanPath
+++ b/bin/foamCleanPath
@@ -7,26 +7,14 @@
 #    \\/     M anipulation  | Copyright (C) 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
 #     foamCleanPath
 #
 # Description
-#     Usage: foamCleanPath [-strip] path [wildcard] .. [wildcard]
+#     Usage: foamCleanPath [OPTION] path [wildcard] .. [wildcard]
 #
 #     Prints its argument (which should be a ':' separated path)
 #     without the following:
@@ -46,6 +34,7 @@ Usage: ${0##*/} [OPTION] path [wildcard1] .. [wildcardN]
 options:
   -debug            print debug information to stderr
   -strip            remove inaccessible directories
+  -verbose          report some progress (input, output, ...)
   -help             print the usage
 
 Prints its argument (which should be a ':' separated list) cleansed from
@@ -64,7 +53,7 @@ USAGE
 
 
 # Parse options
-unset optDebug optStrip
+unset optDebug optStrip optVerbose
 while [ "$#" -gt 0 ]
 do
     case "$1" in
@@ -77,6 +66,9 @@ do
     -strip)
         optStrip=true
         ;;
+    -verbose)
+        optVerbose=true
+        ;;
     *)
         break
         ;;
@@ -117,13 +109,17 @@ oldIFS="$IFS"   # Preserve initial IFS
 IFS=': '        # Split on colon, whitespace
 set -- $*
 
+if [ -n "$optVerbose" ]
+then
+    echo "clean: $dirList" 1>&2
+    echo "with:  $@" 1>&2
+fi
+
 printDebug "input>$dirList<"
 
 # Strip out wildcards via sed. Path and wildcard cannot contain '?'.
-while [ "$#" -ge 1 ]
+for wildcard
 do
-    wildcard="$1"
-    shift
     if [ -n "$wildcard" ]
     then
         printDebug "remove>$wildcard<"
@@ -157,6 +153,12 @@ do
 done
 
 printDebug "output>$dirList<"
+
+if [ -n "$optVerbose" ]
+then
+    echo "output: $dirList" 1>&2
+fi
+
 echo "$dirList"
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/ADIOS b/etc/config.csh/ADIOS
index 7b33f430a9c9684696bb328e0827f53238c4794b..7ef241af600ce6650556a3296ecca70bce471a7c 100644
--- a/etc/config.csh/ADIOS
+++ b/etc/config.csh/ADIOS
@@ -13,31 +13,27 @@
 #     etc/config.csh/ADIOS
 #
 # Description
-#     Setup file for ADIOS include/libraries.
+#     Setup for ADIOS include/libraries (usually ThirdParty installation).
 #     Sourced from OpenFOAM-<VERSION>/etc/cshrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:               adios_version=adios-none
+#     For system-wide installations:    adios_version=adios-system
 #
-#         adios_version=adios-system
-#
-#     If the system adios is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         adios_version=adios-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify adios-system
-#         - provide full paths for ADIOS_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use adios-system
+#       2. and provide full path for ADIOS_ARCH_PATH
 #
 # Note
-#     When building OpenFOAM, any changes made here MUST be made in the
-#     equivalent config.sh version too, since that is the one which will
-#     be used during the build process. See further notes there.
+#     Changes made here MUST be made in the equivalent config.sh version too,
+#     since that is the one used in the build process.
+#     See further notes there.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-set adios_version=ADIOS-1.12.0
+set adios_version=ADIOS-1.13.0
 setenv ADIOS_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version
 
 # END OF (NORMAL) USER EDITABLE PART
diff --git a/etc/config.csh/ADIOS2 b/etc/config.csh/ADIOS2
new file mode 100644
index 0000000000000000000000000000000000000000..a78d06a7528564afc2addee658833b15684825b2
--- /dev/null
+++ b/etc/config.csh/ADIOS2
@@ -0,0 +1,43 @@
+#----------------------------------*-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/>.
+#
+# File
+#     etc/config.csh/ADIOS2
+#
+# Description
+#     Setup for ADIOS2 include/libraries (usually ThirdParty installation).
+#     Sourced from OpenFOAM-<VERSION>/etc/cshrc
+#
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+set adios2_version=ADIOS2-git
+setenv ADIOS2_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios2_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if ($?FOAM_VERBOSE && $?prompt) then
+    echo "Using adios ($adios2_version)  ->  $ADIOS2_ARCH_PATH"
+endif
+
+# If *_ARCH_PATH does not end with '-system' or '-none',
+# it is located within ThirdParty, or a central installation
+# outside of ThirdParty and should be added to the path.
+
+set ending="${ADIOS2_ARCH_PATH:t}"
+if ( "$ending" != "adios-none" && "$ending" != "adios-system" ) then
+    # PATH was already cleaned by etc/cshrc caller
+    _foamAddPath $ADIOS2_ARCH_PATH/bin
+endif
+
+unset adios_version ending
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.csh/CGAL b/etc/config.csh/CGAL
index b45adadb519264965d4d9fe72afb058ef8fb2611..d4190c3a9749e4a6abe92ae8efd926718ece74b9 100644
--- a/etc/config.csh/CGAL
+++ b/etc/config.csh/CGAL
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -16,26 +16,24 @@
 #     Setup file for CGAL (& boost) include/libraries.
 #     Sourced from OpenFOAM-<VERSION>/etc/cshrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:
+#         boost_version=boost-none
+#         cgal_version=cgal-none
 #
+#     For system-wide installations:
 #         boost_version=boost-system
 #         cgal_version=cgal-system
 #
-#     If the system boost/cgal is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         boost_version=boost-none
-#         cgal_version=cgal-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify boost-system / cgal-system
-#         - provide full paths for BOOST_ARCH_PATH / CGAL_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use boost-system / cgal-system
+#       2. and provide full paths for BOOST_ARCH_PATH / CGAL_ARCH_PATH
 #
 # Note
-#     When building OpenFOAM, any changes made here MUST be made in the
-#     equivalent config.sh version too, since that is the one which will
-#     be used during the build process.
+#     Changes made here MUST be made in the equivalent config.sh version too,
+#     since that is the one used in the build process.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.csh/FFTW b/etc/config.csh/FFTW
index d3efa7dc70bac0d4d81e930ac1dda088625d28aa..7cb78bb9430e03b17b7a25332026de65cc732524 100644
--- a/etc/config.csh/FFTW
+++ b/etc/config.csh/FFTW
@@ -2,7 +2,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  |
 #------------------------------------------------------------------------------
 # License
@@ -13,31 +13,26 @@
 #     etc/config.csh/FFTW
 #
 # Description
-#     Setup file for FFTW include/libraries.
-#     Sourced from OpenFOAM-<VERSION>/etc/cshrc
+#     Setup for FFTW include/libraries (usually ThirdParty installation).
+#     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:               fftw_version=fftw-none
+#     For system-wide installations:    fftw_version=fftw-system
 #
-#         fftw_version=fftw-system
-#
-#     If the system fftw is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         fftw_version=fftw-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify fftw-system
-#         - provide full paths for FFTW_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use fftw-system
+#       2. and provide full path for FFTW_ARCH_PATH
 #
 # Note
-#     When building OpenFOAM, any changes made here MUST be made in the
-#     equivalent config.sh version too, since that is the one which will
-#     be used during the build process.
+#     Changes made here MUST be made in the equivalent config.sh version too,
+#     since that is the one used in the build process.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-set fftw_version=fftw-3.3.6-pl1
+set fftw_version=fftw-3.3.7
 setenv FFTW_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
 
 # END OF (NORMAL) USER EDITABLE PART
diff --git a/etc/config.csh/aliases b/etc/config.csh/aliases
index a2651043d0dea2380375b2474a3559b73699c553..31afd9850eb0edcbc507a334fa923e77fe053ad5 100644
--- a/etc/config.csh/aliases
+++ b/etc/config.csh/aliases
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
diff --git a/etc/config.csh/compiler b/etc/config.csh/compiler
index 8db05c34fec16439808311623843042a25d52447..e0fd81d075203468e6fb0abed29024f88322265f 100644
--- a/etc/config.csh/compiler
+++ b/etc/config.csh/compiler
@@ -13,7 +13,7 @@
 #     etc/config.csh/compiler
 #
 # Description
-#     Setup file for custom compiler versions for OpenFOAM
+#     Setup for custom compiler versions for OpenFOAM
 #     Sourced from OpenFOAM-<VERSION>/etc/config.csh/settings
 #
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/ensight b/etc/config.csh/ensight
index 0212bb6e4f58ee767582a438017b574cb712e7b7..b294eeade3a58c93cbc6f8bd7408645ab5f2a499 100644
--- a/etc/config.csh/ensight
+++ b/etc/config.csh/ensight
@@ -10,10 +10,10 @@
 #     <http://www.gnu.org/licenses/>.
 #
 # File
-#     config.csh/ensight
+#     etc/config.csh/ensight
 #
 # Description
-#     Setup file for Ensight
+#     Setup for ENSIGHT
 #     Sourced from OpenFOAM-*/etc/cshrc
 #
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi
index a12e9397571a7ea4a0bb44bf889a9b655a07b56e..581bf0274bf9f1b31969f78828973c8edb43594f 100644
--- a/etc/config.csh/mpi
+++ b/etc/config.csh/mpi
@@ -13,7 +13,7 @@
 #     etc/config.csh/mpi
 #
 # Description
-#     Setup file for communications library (MPI) for OpenFOAM
+#     Setup for MPI communications library for OpenFOAM
 #     Sourced from OpenFOAM-<VERSION>/etc/cshrc
 #
 #     For USERMPI, the user is responsible for supplying an appropriate
diff --git a/etc/config.csh/paraview b/etc/config.csh/paraview
index b4e65fbf0c638ce6c32ac7f085b2df4871db26c0..42a8f9a5884a58e465cbb31436bf1101b1b6667b 100644
--- a/etc/config.csh/paraview
+++ b/etc/config.csh/paraview
@@ -13,12 +13,11 @@
 #     config.csh/paraview
 #
 # Description
-#     Setup file for paraview (and cmake)
+#     Setup for PARAVIEW (partially cmake, qt too)
 #     Sourced from OpenFOAM-<VERSION>/etc/cshrc or from foamPV alias
 #
-#     If using system-wide installation for cmake, use the following settings:
-#
-#         cmake_version=cmake-system
+#     For system-wide cmake:            cmake_version=cmake-system
+#     For system-wide qt:               ParaView_QT=qt-system
 #
 # Note
 #     The following env. variables are required for building plugins:
@@ -26,40 +25,45 @@
 #         ParaView_INCLUDE_DIR
 #         PV_PLUGIN_PATH
 #
-#     If using a central installation not located under ThirdParty, you will
-#     need to set some environment values directly. For example,
+#     For central installations not located under ThirdParty, the environment
+#     values must be set manually. For example,
 #
-#         setenv ParaView_DIR /opt/paraview/paraview-5.0.1
-#         setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/paraview-5.0
-#         setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-5.0
+#         setenv ParaView_DIR /opt/paraview/paraview-5.4.1
+#         setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/paraview-5.4
+#         setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-5.4
 #
 #         setenv PATH ${ParaView_DIR}/bin:${PATH}
-#         setenv LD_LIBRARY_PATH ${ParaView_DIR}/lib/paraview-5.0:${LD_LIBRARY_PATH}
+#         setenv LD_LIBRARY_PATH ${ParaView_DIR}/lib/paraview-5.4:${LD_LIBRARY_PATH}
 #         unsetenv ParaView_VERSION     # avoid using ThirdParty settings
 #
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-setenv ParaView_VERSION 5.4.0
-setenv ParaView_MAJOR detect            # Automatically determine major version
+setenv ParaView_VERSION 5.4.1
+set    ParaView_QT=qt-system
 set cmake_version=cmake-system
 
 # END OF (NORMAL) USER EDITABLE PART
 #------------------------------------------------------------------------------
+set pv_api=auto         # Normally auto or pair of digits (eg, '5.4' etc)
 
 if (! $?ParaView_DIR ) setenv ParaView_DIR
+if (! $?WM_COMPILER_LIB_ARCH ) setenv WM_COMPILER_LIB_ARCH
+
+# Compiler-specific location for ThirdParty installations
+set archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
 
 # Clean PATH and LD_LIBRARY_PATH
-set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$PATH" "$ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake- $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-"`
+set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$PATH" "$ParaView_DIR $archDir/cmake- $archDir/qt- $archDir/ParaView-"`
 if ( $status == 0 ) setenv PATH $cleaned
 
 if ( $?LD_LIBRARY_PATH ) then
-    set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$LD_LIBRARY_PATH" "$ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-"`
+    set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$LD_LIBRARY_PATH" "$ParaView_DIR $archDir/qt- $archDir/ParaView-"`
     if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned
 endif
 
 # ThirdParty cmake
-set cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
+set cmake=$archDir/$cmake_version
 if ( -r $cmake/bin/cmake ) then
     # _foamAddPath not available when foamPV alias is used
     setenv PATH $cmake/bin:${PATH}
@@ -81,34 +85,43 @@ end
 # Avoids conflict with an alternative (non-ThirdParty) installation.
 if ( $?ParaView_VERSION ) then
 
-    # Set MAJOR version to correspond to VERSION
-    # ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
+    # Set API to correspond to VERSION
+    # pv_api is <digits>.<digits> from ParaView_VERSION
+    if (! $?pv_api ) set pv_api=auto
     switch ("$ParaView_VERSION")
-    case "$ParaView_MAJOR".*:
-        # Version and major appear to correspond
+    case "$pv_api".*:
+        # API and VERSION appear to correspond
         breaksw
 
     case [0-9]*:
-        # Extract major from the version
-        setenv ParaView_MAJOR `echo ${ParaView_VERSION} | \
+        # Extract API from VERSION
+        set pv_api=`echo ${ParaView_VERSION} | \
             sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`
         breaksw
     endsw
 
-    set pvName=ParaView-$ParaView_VERSION
-    set pvMajor=paraview-$ParaView_MAJOR
-
-    setenv ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$pvName
+    setenv ParaView_DIR $archDir/ParaView-$ParaView_VERSION
+    set pvSubDir=paraview-$pv_api
 
     # Set paths if binaries are present
     if ( -r $ParaView_DIR ) then
-        set pvLibDir=${ParaView_DIR}/lib/$pvMajor
+        set pvLibDir=${ParaView_DIR}/lib/$pvSubDir
         set pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
 
         setenv PATH ${ParaView_DIR}/bin:${PATH}
-        setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/$pvMajor
-        setenv PV_PLUGIN_PATH $FOAM_LIBBIN/$pvMajor
-        setenv LD_LIBRARY_PATH "${pvLibDir}:${LD_LIBRARY_PATH}"
+        setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/$pvSubDir
+        setenv PV_PLUGIN_PATH $FOAM_LIBBIN/$pvSubDir
+
+        # Add in qt libraries as required
+        set qtDir="$archDir/$ParaView_QT"
+        if ( -d "$qtDir" ) then
+            foreach qtLibDir ("$qtDir/lib$WM_COMPILER_LIB_ARCH" "$qtDir/lib")
+                if ( -d "$qtLibDir" ) then
+                    setenv LD_LIBRARY_PATH "${qtLibDir}:${LD_LIBRARY_PATH}"
+                    break
+                endif
+            end
+        endif
 
         # Add in python libraries if required
         if ( -r $pvPython ) then
@@ -119,6 +132,9 @@ if ( $?ParaView_VERSION ) then
             endif
         endif
 
+        # Prepend paraview libraries
+        setenv LD_LIBRARY_PATH "${pvLibDir}:${LD_LIBRARY_PATH}"
+
         if ($?FOAM_VERBOSE && $?prompt) then
             echo "Using paraview"
             echo "    ParaView_DIR         : $ParaView_DIR"
@@ -138,7 +154,9 @@ if ( $?ParaView_VERSION ) then
 
 endif
 
-unset cleaned cmake cmake_version pvName pvMajor pvLibDir pvPython
-unsetenv ParaView_MAJOR ParaView_VERSION
+unset cleaned archDir
+unset cmake cmake_version
+unset pv_api pvSubDir pvLibDir pvPython qtDir qtLibDir
+unsetenv ParaView_VERSION ParaView_QT
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/settings b/etc/config.csh/settings
index 05ed6eba4b6a73e67a810f021ea7008240892aa3..4c88b294b839bfb3125a2fee651e780af2924ad6 100644
--- a/etc/config.csh/settings
+++ b/etc/config.csh/settings
@@ -13,8 +13,7 @@
 #     etc/config.csh/settings
 #
 # Description
-#     Setup file for OpenFOAM
-#     Sourced from OpenFOAM-<VERSION>/etc/cshrc
+#     Settings for OpenFOAM, sourced from OpenFOAM-<VERSION>/etc/cshrc
 #
 #------------------------------------------------------------------------------
 
diff --git a/etc/config.csh/unset b/etc/config.csh/unset
index daed3469e25de0a8e6739390d2c1a37d66cd7530..9d62c3ac3873166b6503578dc61139754d20de53 100644
--- a/etc/config.csh/unset
+++ b/etc/config.csh/unset
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -109,7 +109,6 @@ unsetenv OPAL_PREFIX
 unsetenv ENSIGHT9_READER
 unsetenv ParaView_DIR
 unsetenv ParaView_INCLUDE_DIR
-unsetenv ParaView_MAJOR
 unsetenv ParaView_VERSION
 unsetenv PV_PLUGIN_PATH
 unsetenv VTK_DIR
@@ -118,6 +117,8 @@ unsetenv VTK_DIR
 # unset other ThirdParty environment variables
 
 unsetenv ADIOS_ARCH_PATH
+unsetenv ADIOS1_ARCH_PATH
+unsetenv ADIOS2_ARCH_PATH
 unsetenv BOOST_ARCH_PATH
 unsetenv CCMIO_ARCH_PATH
 unsetenv CGAL_ARCH_PATH
@@ -141,14 +142,12 @@ if ( $?foamClean ) then
     if ($?LD_LIBRARY_PATH) then
         set cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"`
         if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned
-
         if ( ${%LD_LIBRARY_PATH} == 0 ) unsetenv LD_LIBRARY_PATH
     endif
 
     if ($?MANPATH) then
         set cleaned=`$foamClean "$MANPATH" "$foamOldDirs"`
         if ( $status == 0 ) setenv MANPATH $cleaned
-
         if ( ${%MANPATH} == 0 ) unsetenv MANPATH
     endif
 
diff --git a/etc/config.csh/vtk b/etc/config.csh/vtk
index 00927aae541f69ed9876b46a4453f6e8ec5b7eb2..1c660cfbd6603ff4532dc4209b21f5c24f639437 100644
--- a/etc/config.csh/vtk
+++ b/etc/config.csh/vtk
@@ -2,7 +2,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  |
 #------------------------------------------------------------------------------
 # License
@@ -20,9 +20,8 @@
 #     actually exist at the time of sourcing.
 #
 # Note
-#     When building OpenFOAM, any changes made here MUST be made in the
-#     equivalent config.sh version too, since that is the one which will
-#     be used during the build process.
+#     Changes made here MUST be made in the equivalent config.sh version too,
+#     since that is the one used in the build process.
 #
 # It is recommended to use VTK sources from ParaView (5.0.1 or later)
 #
diff --git a/etc/config.sh/ADIOS b/etc/config.sh/ADIOS
index f27da809738024612b504639ad60979281c0e808..92d58a02e6d8ec795c794cbf58c0f30e7ee1ecd6 100644
--- a/etc/config.sh/ADIOS
+++ b/etc/config.sh/ADIOS
@@ -13,30 +13,26 @@
 #     etc/config.sh/ADIOS
 #
 # Description
-#     Setup file for ADIOS include/libraries.
+#     Setup for ADIOS include/libraries (usually ThirdParty installation).
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:               adios_version=adios-none
+#     For system-wide installations:    adios_version=adios-system
 #
-#         adios_version=adios-system
-#
-#     If the system adios is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         adios_version=adios-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify adios-system
-#         - provide full paths for ADIOS_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use adios-system
+#       2. and provide full path for ADIOS_ARCH_PATH
 #
 # Note
 #     Since ADIOS is a static library build, the libraries are renamed
 #     for the appropriate MPI. Eg, libadios_openmpi-system
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-adios_version=ADIOS-1.12.0
+adios_version=ADIOS-1.13.0
 export ADIOS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version
 
 # END OF (NORMAL) USER EDITABLE PART
diff --git a/etc/config.sh/ADIOS2 b/etc/config.sh/ADIOS2
new file mode 100644
index 0000000000000000000000000000000000000000..30677cf644fe474081ada9e7048433f0b0d00c1c
--- /dev/null
+++ b/etc/config.sh/ADIOS2
@@ -0,0 +1,49 @@
+#----------------------------------*-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/>.
+#
+# File
+#     etc/config.sh/ADIOS2
+#
+# Description
+#     Setup for ADIOS2 include/libraries (usually ThirdParty installation).
+#     Sourced from OpenFOAM-<VERSION>/etc/bashrc
+#
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+adios2_version=ADIOS2-git
+export ADIOS2_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios2_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if [ "$FOAM_VERBOSE" -a "$PS1" ]
+then
+    echo "Using adios ($adios2_version)  ->  $ADIOS2_ARCH_PATH" 1>&2
+fi
+
+if command -v _foamAddPath >/dev/null 2>&1  # normal sourcing
+then
+    # If *_ARCH_PATH does not end with '-system' or '-none',
+    # it is located within ThirdParty, or a central installation
+    # outside of ThirdParty and should be added to the path.
+
+    ending="${ADIOS2_ARCH_PATH##*-}"
+    if [ "$ending" != none -a "$ending" != system ]
+    then
+        # PATH was already cleaned by etc/bashrc caller
+        _foamAddPath $ADIOS2_ARCH_PATH/bin
+    fi
+
+    unset adios2_version ending
+
+fi
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.sh/CGAL b/etc/config.sh/CGAL
index 08d0c7ee75d26880928a9f314e54b9a96d4664c9..abec7c04b3bcb55c821f4e2feb8f88d560e6c752 100644
--- a/etc/config.sh/CGAL
+++ b/etc/config.sh/CGAL
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -16,25 +16,25 @@
 #     Setup file for CGAL (& boost) include/libraries.
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:
+#         boost_version=boost-none
+#         cgal_version=cgal-none
 #
+#     For system-wide installations:
 #         boost_version=boost-system
 #         cgal_version=cgal-system
 #
-#     If the system boost/cgal is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         boost_version=boost-none
-#         cgal_version=cgal-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify boost-system / cgal-system
-#         - provide full paths for BOOST_ARCH_PATH / CGAL_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use boost-system / cgal-system
+#       2. and provide full paths for BOOST_ARCH_PATH / CGAL_ARCH_PATH
 #
 # Note
 #     When _foamAddLib is unset (eg, called from makeCGAL):
-#         - boost_version / cgal_version variables are retained.
-#         - the LD_LIBRARY_PATH is not adjusted.
+#       - boost_version / cgal_version variables are retained.
+#       - the LD_LIBRARY_PATH is not adjusted.
+#
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/FFTW b/etc/config.sh/FFTW
index 2d9b59c2540fded80ac11a47c70316b7bc9d775b..ce961f544af19079657bd3090bab160fcd2754e6 100644
--- a/etc/config.sh/FFTW
+++ b/etc/config.sh/FFTW
@@ -2,7 +2,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  |
 #------------------------------------------------------------------------------
 # License
@@ -13,30 +13,27 @@
 #     etc/config.sh/FFTW
 #
 # Description
-#     Setup file for FFTW include/libraries.
+#     Setup for FFTW include/libraries (usually ThirdParty installation).
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:               fftw_version=fftw-none
+#     For system-wide installations:    fftw_version=fftw-system
 #
-#         fftw_version=fftw-system
-#
-#     If the system fftw is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         fftw_version=fftw-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify fftw-system
-#         - provide full paths for FFTW_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use fftw-system
+#       2. and provide full path for FFTW_ARCH_PATH
 #
 # Note
 #     When _foamAddLib is unset (eg, called from makeFFTW):
-#         - fftw_version variable is retained.
-#         - the LD_LIBRARY_PATH is not adjusted.
+#       - fftw_version variable is retained.
+#       - LD_LIBRARY_PATH is not adjusted.
+#
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-fftw_version=fftw-3.3.6-pl1
+fftw_version=fftw-3.3.7
 export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
 
 # END OF (NORMAL) USER EDITABLE PART
diff --git a/etc/config.sh/aliases b/etc/config.sh/aliases
index 9f189d5cf13b44f532e18bffc5a408164b83130a..81b9196b88441bfe02b409fca5cc7c14d4dde29d 100644
--- a/etc/config.sh/aliases
+++ b/etc/config.sh/aliases
@@ -92,10 +92,15 @@ foamVersion()
 
 # Change ParaView version
 # ~~~~~~~~~~~~~~~~~~~~~~~
+# pass in first value directly (eg, 5.4.1) and transform to
+# ParaView_VERSION=...
+# Any additional arguments must be fully specified and start with "ParaView".
+# Eg,
+# ParaView_QT=...
 unset -f foamPV 2>/dev/null
 foamPV()
 {
-    . $WM_PROJECT_DIR/etc/config.sh/paraview "${@+ParaView_VERSION=$1}"
+    . $WM_PROJECT_DIR/etc/config.sh/paraview "${@+ParaView_VERSION=$@}"
     local pvdir="${ParaView_DIR##*/}"
     echo "${pvdir:-ParaView_DIR not set}" 1>&2
 }
diff --git a/etc/config.sh/ccmio b/etc/config.sh/ccmio
index 88c0dd68d02299bb3f80bba900d79cfd15228a08..e58250dd0cf6243ea653c7a723fb7abcb66056be 100644
--- a/etc/config.sh/ccmio
+++ b/etc/config.sh/ccmio
@@ -13,15 +13,15 @@
 #     etc/config.sh/ccmio
 #
 # Description
-#     Setup file for libccmio include/libraries.
+#     Setup for LIBCCMIO include/libraries.
 #     Sourced during wmake process only.
 #
 #     Static libraries (recommended) are found under CCMIO_ARCH_PATH/lib.
 #     Dynamic libraries are found under FOAM_EXT_LIBBIN path.
 #
 # Note
-#     A csh version is not needed, since the values here are only sourced
-#     during the wmake process
+#     No csh version. This file is only used by wmake.
+#
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/compiler b/etc/config.sh/compiler
index 4f00fa46f43967396aae46e8a4bf8d95069fab56..84de0e9aac2ef48cc6a7d98a9150da797004d41a 100644
--- a/etc/config.sh/compiler
+++ b/etc/config.sh/compiler
@@ -13,7 +13,7 @@
 #     etc/config.sh/compiler
 #
 # Description
-#     Setup file for custom compiler versions for OpenFOAM
+#     Setup for custom compiler versions for OpenFOAM
 #     Sourced from OpenFOAM-<VERSION>/etc/config.sh/settings
 #
 #------------------------------------------------------------------------------
diff --git a/etc/config.sh/ensight b/etc/config.sh/ensight
index 9b0ab5423628e684ee299f796185ef4acf27a83f..6c06f4fa306e8128b1939d61b6b0b1b3fe9d9c6e 100644
--- a/etc/config.sh/ensight
+++ b/etc/config.sh/ensight
@@ -13,7 +13,7 @@
 #     etc/config.sh/ensight
 #
 # Description
-#     Setup file for Ensight
+#     Setup for ENSIGHT
 #     Sourced from OpenFOAM-*/etc/bashrc
 #
 #------------------------------------------------------------------------------
diff --git a/etc/config.sh/gperftools b/etc/config.sh/gperftools
index 0bb46c32eaf187e796f36d0388019027d7d3d980..a4b13ec44bc184966bea029fb45f62efbe8df302 100644
--- a/etc/config.sh/gperftools
+++ b/etc/config.sh/gperftools
@@ -13,26 +13,25 @@
 #     etc/config.sh/gperftools
 #
 # Description
-#     Setup file for gperftools binaries and libraries.
+#     Setup file for GPERFTOOLS binaries/libraries.
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
-#     If using system-wide installations, use the following settings:
+#     To disable its use:               gperftools_version=gperftools-none
+#     For system-wide installations:    gperftools_version=gperftools-system
 #
-#         gperftools_version=gperftools-system
-#
-#     If the system gperftools is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         gperftools_version=gperftools-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify gperftools-system
-#         - provide full paths for GPERFTOOLS_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use gperftools-system
+#       2. and provide full path for GPERFTOOLS_ARCH_PATH
 #
 # Note
 #     When _foamAddLib is unset (eg, called from makeGperftools):
-#         - gperftools_version variable are retained.
-#         - the LD_LIBRARY_PATH and PATH are not adjusted.
+#       - gperftools_version variable are retained.
+#       - the LD_LIBRARY_PATH and PATH are not adjusted.
+#
+#     No csh version, This file is only used by wmake.
+#
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/kahip b/etc/config.sh/kahip
index e6b51c0291b9fff5554b755060f84d66779d5119..0c764bdc29cc1c496b8c46daae7806c0fa126af0 100644
--- a/etc/config.sh/kahip
+++ b/etc/config.sh/kahip
@@ -13,36 +13,25 @@
 #     etc/config.sh/kahip
 #
 # Description
-#     Setup for kahip include/libraries.
+#     Setup for KAHIP include/libraries (usually ThirdParty installation).
 #     Sourced during wmake process only.
 #
-#     Normally used to specify the kahip version and location for a
-#     ThirdParty installation.
+#     To disable its use:               KAHIP_VERSION=kahip-none
+#     For system-wide installations:    KAHIP_VERSION=kahip-system
 #
-#     If using system-wide installations, use the following setting:
-#
-#         KAHIP_VERSION=kahip-system
-#
-#     If the system kahip is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         KAHIP_VERSION=kahip-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify kahip-system
-#         - provide full path for KAHIP_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use kahip-system
+#       2. and provide full path for KAHIP_ARCH_PATH
 #
 # Note
-#     A csh version is not needed, since the values here are only sourced
-#     during the wmake process.
-#
-#     KaHIP can also be entirely disabled, by either renaming this file or
-#     by creating an empty one with the same name at a user or site location.
-#
 #     KaHIP is 32-bit precision only.
 #     An Int64 OpenFOAM version can use it, but the mesh size is limited
 #     accordingly.
 #
+#     No csh version, This file is only used by wmake.
+#
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/metis b/etc/config.sh/metis
index 59cfe40827cfa9a2ecf84721cbd5adf51f61ef0f..cedca16b2aad9a1837ac683b7773d92646bd9bfa 100644
--- a/etc/config.sh/metis
+++ b/etc/config.sh/metis
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -13,32 +13,21 @@
 #     etc/config.sh/metis
 #
 # Description
-#     Setup file for metis include/libraries.
+#     Setup for METIS include/libraries (usually ThirdParty installation).
 #     Sourced during wmake process only.
 #
-#     Normally used to specify the metis version and location for a
-#     ThirdParty installation.
+#     To disable its use:               METIS_VERSION=metis-none
+#     For system-wide installations:    METIS_VERSION=metis-system
 #
-#     If using system-wide installations, use the following setting:
-#
-#         METIS_VERSION=metis-system
-#
-#     If the system metis is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         METIS_VERSION=metis-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify metis-system
-#         - provide full path for METIS_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use metis-system
+#       2. and provide full path for METIS_ARCH_PATH
 #
 # Note
-#     A csh version is not needed, since the values here are only sourced
-#     during the wmake process.
-#
-#     Metis can also be entirely disabled, by either renaming this file or
-#     by creating an empty one with the same name at a user or site location.
+#     No csh version. This file is only used by wmake.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/mgridgen b/etc/config.sh/mgridgen
index 8fc237e3d9b8c3ab9561004b327ddd7f5ca9a859..dfa06d066634aaccecab41fcd744e9b3546d702b 100644
--- a/etc/config.sh/mgridgen
+++ b/etc/config.sh/mgridgen
@@ -13,32 +13,24 @@
 #     etc/config.sh/mgridgen
 #
 # Description
-#     Setup file for MGridGen include/libraries.
+#     Setup for MGRIDGEN include/libraries (usually ThirdParty installation).
 #     Sourced during wmake process only.
 #
 #     Normally used to specify the MGridGen version and location for a
 #     ThirdParty installation.
 #
-#     If using system-wide installations, use the following setting:
+#     To disable its use:               MGRIDGEN_VERSION=mgridgen-none
+#     For system-wide installations:    MGRIDGEN_VERSION=mgridgen-system
 #
-#         MGRIDGEN_VERSION=mgridgen-system
-#
-#     If the system mgridgen is unusable and you don't have or want
-#     a ThirdParty installation:
-#
-#         MGRIDGEN_VERSION=mgridgen-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify mgridgen-system
-#         - provide full path for MGRIDGEN_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use mgridgen-system
+#       2. and provide full path for MGRIDGEN_ARCH_PATH
 #
 # Note
-#     A csh version is not needed, since the values here are only sourced
-#     during the wmake process.
-#
-#     MGridGen can be entirely disabled, by either renaming this file or
-#     by creating an empty one with the same name at a user or site location.
+#     No csh version. This file is only used by wmake.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi
index 2ee7b51898ece63a0087cb483b538ca8016e86c4..a0f48693e47f747f3671aa53a381ffdeb3ef1a7b 100644
--- a/etc/config.sh/mpi
+++ b/etc/config.sh/mpi
@@ -13,7 +13,7 @@
 #     etc/config.sh/mpi
 #
 # Description
-#     Setup file for communications library (MPI) for OpenFOAM
+#     Setup for MPI communications library for OpenFOAM
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
 #     For USERMPI, the user is responsible for supplying an appropriate
diff --git a/etc/config.sh/paraview b/etc/config.sh/paraview
index 47e61b95f410fd012da02db284db962d498e9505..1ccd7e1e13216b75ea02009a805ba13a86c7557e 100644
--- a/etc/config.sh/paraview
+++ b/etc/config.sh/paraview
@@ -13,12 +13,11 @@
 #     etc/config.sh/paraview
 #
 # Description
-#     Setup file for paraview (& cmake)
+#     Setup for PARAVIEW (partially cmake, qt too)
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc or from foamPV alias
 #
-#     If using system-wide installation for cmake, use the following settings:
-#
-#         cmake_version=cmake-system
+#     For system-wide cmake:            cmake_version=cmake-system
+#     For system-wide qt:               ParaView_QT=qt-system
 #
 # Note
 #     The following env. variables are required for building plugins:
@@ -26,47 +25,48 @@
 #         ParaView_INCLUDE_DIR
 #         PV_PLUGIN_PATH
 #
-#     If using a central installation not located under ThirdParty, you will
-#     need to set some environment values directly. For example,
+#     For central installations not located under ThirdParty, the environment
+#     values must be set manually. For example,
 #
-#         export ParaView_DIR=/opt/paraview/paraview-5.0.1
-#         export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-5.0
-#         export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-5.0
+#         export ParaView_DIR=/opt/paraview/paraview-5.4.1
+#         export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-5.4
+#         export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-5.4
 #
 #         export PATH=$ParaView_DIR/bin:$PATH
-#         export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-5.0:$LD_LIBRARY_PATH
+#         export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-5.4:$LD_LIBRARY_PATH
 #         unset ParaView_VERSION        # avoid using ThirdParty settings
 #
 # Note
 #     When _foamAddLib is unset (eg, called from makeParaView or from foamPV):
-#         - the ParaView_VERSION variable is retained.
+#       - the ParaView_VERSION variable is retained.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-ParaView_VERSION=5.4.0
-ParaView_MAJOR=detect                   # Automatically determine major version
+ParaView_VERSION=5.4.1
+ParaView_QT=qt-system
 cmake_version=cmake-system
 
 # END OF (NORMAL) USER EDITABLE PART
 #------------------------------------------------------------------------------
+pv_api=auto             # Normally auto or pair of digits (eg, '5.4' etc)
+
+# Compiler-specific location for ThirdParty installations
+archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
 
 # Clean PATH and LD_LIBRARY_PATH
 cleaned=$($WM_PROJECT_DIR/bin/foamCleanPath "$PATH" \
-    "$ParaView_DIR \
-    $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake- \
-    $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-" \
+    "$ParaView_DIR $archDir/cmake- $archDir/qt- $archDir/ParaView-" \
 ) && PATH="$cleaned"
 
 if [ -n "$LD_LIBRARY_PATH" ]
 then
     cleaned=$($WM_PROJECT_DIR/bin/foamCleanPath "$LD_LIBRARY_PATH" \
-        "$ParaView_DIR \
-        $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-" \
+        "$ParaView_DIR $archDir/qt- $archDir/ParaView-" \
     ) && LD_LIBRARY_PATH="$cleaned"
 fi
 
 # ThirdParty cmake
-cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
+cmake=$archDir/$cmake_version
 if [ -r $cmake/bin/cmake ]
 then
     # _foamAddPath not available when foamPV function is used
@@ -96,34 +96,48 @@ _foamParaviewEval $@
 if [ -n "$ParaView_VERSION" ]
 then
 
-    # Set MAJOR version to correspond to VERSION
-    # ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
+    # Set API to correspond to VERSION
+    # pv_api is <digits>.<digits> from ParaView_VERSION
     case "$ParaView_VERSION" in
-    "$ParaView_MAJOR".* )
-        # Version and major appear to correspond
+    "$pv_api".* )
+        # API and VERSION appear to correspond
         ;;
 
     [0-9]*)
-        # Extract major from the version
-        ParaView_MAJOR=$(echo $ParaView_VERSION | \
-                       sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
+        # Extract API from VERSION
+        pv_api=$(echo $ParaView_VERSION | \
+            sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
         ;;
     esac
 
-    pvName=ParaView-$ParaView_VERSION
-    pvMajor=paraview-$ParaView_MAJOR
-
-    export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$pvName
+    export ParaView_DIR=$archDir/ParaView-$ParaView_VERSION
+    pvSubDir=paraview-$pv_api
 
     # Set paths if binaries are present
     if [ -r $ParaView_DIR ]
     then
-        pvLibDir=$ParaView_DIR/lib/$pvMajor
+        pvLibDir=$ParaView_DIR/lib/$pvSubDir
         pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
 
         export PATH=$ParaView_DIR/bin:$PATH
-        export ParaView_INCLUDE_DIR=$ParaView_DIR/include/$pvMajor
-        export PV_PLUGIN_PATH=$FOAM_LIBBIN/$pvMajor
+        export ParaView_INCLUDE_DIR=$ParaView_DIR/include/$pvSubDir
+        export PV_PLUGIN_PATH=$FOAM_LIBBIN/$pvSubDir
+
+        # Add in qt libraries as required
+        qtDir="$archDir/$ParaView_QT"
+        if [ -d "$qtDir" ]
+        then
+            for qtLibDir in $qtDir/lib$WM_COMPILER_LIB_ARCH $qtDir/lib
+            do
+                if [ -d "$qtLibDir" ]
+                then
+                    export LD_LIBRARY_PATH=$qtLibDir:$LD_LIBRARY_PATH
+                    break
+                fi
+            done
+        fi
+
+        # Prepend paraview libraries
         export LD_LIBRARY_PATH=$pvLibDir:$LD_LIBRARY_PATH
 
         # Add in python libraries if required
@@ -158,12 +172,13 @@ then
 fi
 
 unset -f _foamParaviewEval 2> /dev/null
-unset cleaned cmake cmake_version pvName pvMajor pvLibDir pvPython
-unset ParaView_MAJOR
+unset cleaned archDir
+unset cmake cmake_version
+unset pv_api pvSubDir pvLibDir pvPython qtDir qtLibDir
 
 if command -v _foamAddLib > /dev/null 2>&1  # normal sourcing
 then
-    unset ParaView_VERSION
+    unset ParaView_VERSION ParaView_QT
 fi
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.sh/scotch b/etc/config.sh/scotch
index c8402ffdff9ad8d69080d18b85e07a150443a5d8..00302dfd35400cb7d846d449bc2836d91ef4db31 100644
--- a/etc/config.sh/scotch
+++ b/etc/config.sh/scotch
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -13,32 +13,21 @@
 #     etc/config.sh/scotch
 #
 # Description
-#     Setup file for scotch include/libraries.
+#     Setup for SCOTCH include/libraries (usually ThirdParty installation).
 #     Sourced during wmake process only.
 #
-#     Normally used to specify the scotch version and location for a
-#     ThirdParty installation.
+#     To disable its use:               SCOTCH_VERSION=scotch-none
+#     For system-wide installations:    SCOTCH_VERSION=scotch-system
 #
-#     If using system-wide installations, use the following setting:
-#
-#         SCOTCH_VERSION=scotch-system
-#
-#     If the system scotch is unusable (eg, too old) and you don't
-#     have or want a ThirdParty installation:
-#
-#         SCOTCH_VERSION=scotch-none
-#
-#     If using a central installation, but not located under ThirdParty:
-#         - specify scotch-system
-#         - provide full path for SCOTCH_ARCH_PATH
+#     For central installations not located under ThirdParty:
+#       1. use scotch-system
+#       2. and provide full path for SCOTCH_ARCH_PATH
 #
 # Note
-#     A csh version is not needed, since the values here are only sourced
-#     during the wmake process.
-#
-#     Scotch can also be entirely disabled, by either renaming this file or
-#     by creating an empty one with the same name at a user or site location.
+#     No csh version. This file is only used by wmake.
 #
+#     Can also disable by renaming/removing this file or by creating an empty
+#     file with the same name at a user or site location.
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
diff --git a/etc/config.sh/settings b/etc/config.sh/settings
index 6d0285c8764fe4cc2c9f61983e08457af6035633..286339aa5364583b965046ab0c1dbaf38ad762e3 100644
--- a/etc/config.sh/settings
+++ b/etc/config.sh/settings
@@ -13,8 +13,7 @@
 #     etc/config.sh/settings
 #
 # Description
-#     Setup file for OpenFOAM
-#     Sourced from OpenFOAM-<VERSION>/etc/bashrc
+#     Settings for OpenFOAM, sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
 #------------------------------------------------------------------------------
 export WM_ARCH=$(uname -s)                  # System name
diff --git a/etc/config.sh/unset b/etc/config.sh/unset
index 04b16eb5f6a1564b61f5687ab7585b4b74754314..d5d4a8530e33649679fe4278d26e50ecc1b5b0b4 100644
--- a/etc/config.sh/unset
+++ b/etc/config.sh/unset
@@ -105,7 +105,6 @@ fi
 unset ENSIGHT9_READER
 unset ParaView_DIR
 unset ParaView_INCLUDE_DIR
-unset ParaView_MAJOR
 unset ParaView_VERSION
 unset PV_PLUGIN_PATH
 unset VTK_DIR
@@ -114,6 +113,8 @@ unset VTK_DIR
 # unset other ThirdParty environment variables
 
 unset ADIOS_ARCH_PATH
+unset ADIOS1_ARCH_PATH
+unset ADIOS2_ARCH_PATH
 unset BOOST_ARCH_PATH
 unset CCMIO_ARCH_PATH
 unset CGAL_ARCH_PATH
diff --git a/etc/config.sh/vtk b/etc/config.sh/vtk
index 0142c42eb5a53c257bd65b93d8f200c5d9074f83..3e73ce564dba0ca4273f4ce9218af16be17f09ce 100644
--- a/etc/config.sh/vtk
+++ b/etc/config.sh/vtk
@@ -2,7 +2,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  |
 #------------------------------------------------------------------------------
 # License
@@ -21,8 +21,8 @@
 #
 # Note
 #     When _foamAddLib is unset
-#         - the vtk_version, mesa_version variables are retained.
-#           (for future integration into ThirdParty build)
+#       - vtk_version, mesa_version variables are retained.
+#         (for future integration into ThirdParty build)
 #
 # It is recommended to use VTK sources from ParaView (5.0.1 or later)
 #
diff --git a/wmake/rules/General/ADIOS2 b/wmake/rules/General/ADIOS2
new file mode 100644
index 0000000000000000000000000000000000000000..f158236942ce7a3883a793b4b94c33143bf26726
--- /dev/null
+++ b/wmake/rules/General/ADIOS2
@@ -0,0 +1,13 @@
+#-------------------------------*- makefile -*---------------------------------
+# ADIOS2 includes/libraries
+
+sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
+sinclude $(RULES)/mplib$(WM_MPLIB)
+
+# Obtain prefix and library information via adios2-config
+ADIOS_PREFIX := $(shell $(ADIOS2_ARCH_PATH)/bin/adios2-config --prefix)
+ADIOS_LIBS   := $(shell $(ADIOS2_ARCH_PATH)/bin/adios2-config --libs)
+
+ADIOS_INC    = -I${ADIOS_PREFIX}/include
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Clang/c b/wmake/rules/linux64Clang/c
index b743e3f68cb8b11a294c84d4b9c4334d093d3e39..36f40bc36402ec824abe58ea59d26f882dca26ef 100644
--- a/wmake/rules/linux64Clang/c
+++ b/wmake/rules/linux64Clang/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = clang -m64
 
diff --git a/wmake/rules/linux64Clang/c++Debug b/wmake/rules/linux64Clang/c++Debug
index 1c63335a3f175dc5d51a04af7c160c06853cebf4..48f0b6643e18406a22b768923aa876a312269ea1 100644
--- a/wmake/rules/linux64Clang/c++Debug
+++ b/wmake/rules/linux64Clang/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -g -DFULLDEBUG
+c++DBUG     = -g -DFULLDEBUG
 c++OPT      = -O0
diff --git a/wmake/rules/linux64Cray/c b/wmake/rules/linux64Cray/c
index d08f44144037dd10701b5adfe4f357fc4c83054f..a3e304ed804fdb11e3ea73ab4177f33f128ce971 100644
--- a/wmake/rules/linux64Cray/c
+++ b/wmake/rules/linux64Cray/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = cc -m64
 
diff --git a/wmake/rules/linux64Cray/c++Debug b/wmake/rules/linux64Cray/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linux64Cray/c++Debug
+++ b/wmake/rules/linux64Cray/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Gcc/c b/wmake/rules/linux64Gcc/c
index 1097b3a594ca9284537cc5af2b8248bb8bac4486..56b9e8ff72a582d8ef75649d772362f2c5200bca 100644
--- a/wmake/rules/linux64Gcc/c
+++ b/wmake/rules/linux64Gcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc -m64
 
diff --git a/wmake/rules/linux64Gcc/c++Debug b/wmake/rules/linux64Gcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linux64Gcc/c++Debug
+++ b/wmake/rules/linux64Gcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64GccKNL/c b/wmake/rules/linux64GccKNL/c
index d0eb3eab5709d94f814ba8f71aba33eab0757700..db0bbc58f915e631763905f588975649a21bbc56 100644
--- a/wmake/rules/linux64GccKNL/c
+++ b/wmake/rules/linux64GccKNL/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc -m64 -march=knl
 
diff --git a/wmake/rules/linux64GccKNL/c++Debug b/wmake/rules/linux64GccKNL/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linux64GccKNL/c++Debug
+++ b/wmake/rules/linux64GccKNL/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Icc/c b/wmake/rules/linux64Icc/c
index 14a3a231d549dd4902dc5360f4566e0b8d14aa87..c405b37e24e12fb6bcc44dc0d5004ba1427f2c5e 100644
--- a/wmake/rules/linux64Icc/c
+++ b/wmake/rules/linux64Icc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        =
+cWARN       =
 
 cc          = icc
 
diff --git a/wmake/rules/linux64IccKNL/c b/wmake/rules/linux64IccKNL/c
index 14a3a231d549dd4902dc5360f4566e0b8d14aa87..c405b37e24e12fb6bcc44dc0d5004ba1427f2c5e 100644
--- a/wmake/rules/linux64IccKNL/c
+++ b/wmake/rules/linux64IccKNL/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        =
+cWARN       =
 
 cc          = icc
 
diff --git a/wmake/rules/linuxARM64Clang/c b/wmake/rules/linuxARM64Clang/c
new file mode 100644
index 0000000000000000000000000000000000000000..7a1e43e3779042cd6c3b66b0e7276ca84a0a7124
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/c
@@ -0,0 +1,17 @@
+SUFFIXES += .c
+
+cWARN       = -Wall
+
+## cc          = clang -m64
+cc          = clang
+
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linuxARM64Clang/c++ b/wmake/rules/linuxARM64Clang/c++
new file mode 100644
index 0000000000000000000000000000000000000000..2bf2892754a3b0666b5292de8dc04528801e084d
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/c++
@@ -0,0 +1,25 @@
+SUFFIXES += .C .cc .cpp .cxx
+
+c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-undefined-var-template
+
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-tautological-undefined-compare -Wno-shift-negative-value
+
+## CC          = clang++ -std=c++11 -m64
+CC          = clang++ -std=c++11
+
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-100
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared
+LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed
diff --git a/wmake/rules/linuxARM64Clang/c++Debug b/wmake/rules/linuxARM64Clang/c++Debug
new file mode 100644
index 0000000000000000000000000000000000000000..48f0b6643e18406a22b768923aa876a312269ea1
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG     = -g -DFULLDEBUG
+c++OPT      = -O0
diff --git a/wmake/rules/linuxARM64Clang/c++Opt b/wmake/rules/linuxARM64Clang/c++Opt
new file mode 100644
index 0000000000000000000000000000000000000000..2aedabd6280a3476bc58db13139a0a3aa579502b
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     =
+c++OPT      = -O3
diff --git a/wmake/rules/linuxARM64Clang/c++Prof b/wmake/rules/linuxARM64Clang/c++Prof
new file mode 100644
index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linuxARM64Clang/cDebug b/wmake/rules/linuxARM64Clang/cDebug
new file mode 100644
index 0000000000000000000000000000000000000000..7b7adf10deade9c64833672b98de8ace4fb61a0e
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -g -DFULLDEBUG
+cOPT        = -O0
diff --git a/wmake/rules/linuxARM64Clang/cOpt b/wmake/rules/linuxARM64Clang/cOpt
new file mode 100644
index 0000000000000000000000000000000000000000..17318709f1fa39e6bf89cbe87778bc6fa459de17
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linuxARM64Clang/cProf b/wmake/rules/linuxARM64Clang/cProf
new file mode 100644
index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxARM64Clang/general b/wmake/rules/linuxARM64Clang/general
new file mode 100644
index 0000000000000000000000000000000000000000..d83a18b000b3bb3e663ccee8efa77439d863c39d
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/general
@@ -0,0 +1,9 @@
+CPP        = cpp -traditional-cpp $(GFLAGS)
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(DEFAULT_RULES)/openmp
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxARM64Clang/openmp b/wmake/rules/linuxARM64Clang/openmp
new file mode 100644
index 0000000000000000000000000000000000000000..bcb805f57c6240bc577b1f04208ac09706d0846a
--- /dev/null
+++ b/wmake/rules/linuxARM64Clang/openmp
@@ -0,0 +1,4 @@
+# Flags for compiling/linking openmp
+
+COMP_OPENMP = -DUSE_OMP -fopenmp
+LINK_OPENMP = -lgomp
diff --git a/wmake/rules/linuxARM64Gcc/c b/wmake/rules/linuxARM64Gcc/c
new file mode 100644
index 0000000000000000000000000000000000000000..3ee7538cbb1808ebc79ed2f5dfa61e82354c8024
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/c
@@ -0,0 +1,16 @@
+SUFFIXES += .c
+
+cWARN       = -Wall
+
+cc          = gcc
+
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linuxARM64Gcc/c++ b/wmake/rules/linuxARM64Gcc/c++
new file mode 100644
index 0000000000000000000000000000000000000000..3985f54a9be5b7b40efcf55194780fefbf7a33f8
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/c++
@@ -0,0 +1,25 @@
+SUFFIXES += .C .cc .cpp .cxx
+
+c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter \
+              -Wno-invalid-offsetof -Wno-attributes
+
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+
+CC          = g++ -std=c++11
+
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-100
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
+LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed
diff --git a/wmake/rules/linuxARM64Gcc/c++Debug b/wmake/rules/linuxARM64Gcc/c++Debug
new file mode 100644
index 0000000000000000000000000000000000000000..08680a0e4aa011a94ce3318e5c869f3db9de286d
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG     = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxARM64Gcc/c++Opt b/wmake/rules/linuxARM64Gcc/c++Opt
new file mode 100644
index 0000000000000000000000000000000000000000..2e3e8c3bb197f54f6dd30cf18da6e656878dd3da
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/c++Opt
@@ -0,0 +1,4 @@
+c++DBUG     =
+c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps
+
+ROUNDING_MATH = -frounding-math
diff --git a/wmake/rules/linuxARM64Gcc/c++Prof b/wmake/rules/linuxARM64Gcc/c++Prof
new file mode 100644
index 0000000000000000000000000000000000000000..858dde1ed2354f0aa37db6bb53f7950b4e7af7a9
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG     = -pg
+c++OPT      = -O2
diff --git a/wmake/rules/linuxARM64Gcc/cDebug b/wmake/rules/linuxARM64Gcc/cDebug
new file mode 100644
index 0000000000000000000000000000000000000000..72b638f458220e329d52b59e3566a3c807101f9d
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linuxARM64Gcc/cOpt b/wmake/rules/linuxARM64Gcc/cOpt
new file mode 100644
index 0000000000000000000000000000000000000000..643c990ebda63b7dfb8134f76d7fa7f3f4a7add9
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps
diff --git a/wmake/rules/linuxARM64Gcc/cProf b/wmake/rules/linuxARM64Gcc/cProf
new file mode 100644
index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxARM64Gcc/general b/wmake/rules/linuxARM64Gcc/general
new file mode 100644
index 0000000000000000000000000000000000000000..86f567e61d83637e3688f49bd486ed0a31495802
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/general
@@ -0,0 +1,10 @@
+CPP         = cpp -traditional-cpp $(GFLAGS)
+LD          = ld
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(DEFAULT_RULES)/openmp
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxARM64Gcc/openmp b/wmake/rules/linuxARM64Gcc/openmp
new file mode 100644
index 0000000000000000000000000000000000000000..bcb805f57c6240bc577b1f04208ac09706d0846a
--- /dev/null
+++ b/wmake/rules/linuxARM64Gcc/openmp
@@ -0,0 +1,4 @@
+# Flags for compiling/linking openmp
+
+COMP_OPENMP = -DUSE_OMP -fopenmp
+LINK_OPENMP = -lgomp
diff --git a/wmake/rules/linuxARM7Gcc/c b/wmake/rules/linuxARM7Gcc/c
index dfae4adda0547faeae8333ed5e2660a3bacd7be7..3ee7538cbb1808ebc79ed2f5dfa61e82354c8024 100644
--- a/wmake/rules/linuxARM7Gcc/c
+++ b/wmake/rules/linuxARM7Gcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc
 
diff --git a/wmake/rules/linuxARM7Gcc/c++Debug b/wmake/rules/linuxARM7Gcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linuxARM7Gcc/c++Debug
+++ b/wmake/rules/linuxARM7Gcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxARM7Gcc/c++Opt b/wmake/rules/linuxARM7Gcc/c++Opt
index 4b21a7609dc47b8416a7f007fa59b5825acb4f09..fe7b457de7b83c21a980701a223eb319e4ca3112 100644
--- a/wmake/rules/linuxARM7Gcc/c++Opt
+++ b/wmake/rules/linuxARM7Gcc/c++Opt
@@ -1,5 +1,5 @@
 c++DBUG     =
-#c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
+#c++OPT     = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
 c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=softfp
 
 ROUNDING_MATH = -frounding-math
diff --git a/wmake/rules/linuxARM7Gcc/cOpt b/wmake/rules/linuxARM7Gcc/cOpt
index 0ee3f66355fb70a364604d1bc8794d319f7700fd..c80aa2b5c137b05847b4cb684b3bf4c70cb68550 100644
--- a/wmake/rules/linuxARM7Gcc/cOpt
+++ b/wmake/rules/linuxARM7Gcc/cOpt
@@ -1,3 +1,3 @@
 cDBUG       =
-#cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
+#cOPT       = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
 cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=softfp
diff --git a/wmake/rules/linuxClang/c b/wmake/rules/linuxClang/c
index 2c8e8a7f9c2dfae3ebf21b0e71bdd30e5b8458dc..59cf476f0ee15861fe244bb18a647bf67b3fc03f 100644
--- a/wmake/rules/linuxClang/c
+++ b/wmake/rules/linuxClang/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = clang -m32
 
diff --git a/wmake/rules/linuxClang/c++Debug b/wmake/rules/linuxClang/c++Debug
index 1c63335a3f175dc5d51a04af7c160c06853cebf4..48f0b6643e18406a22b768923aa876a312269ea1 100644
--- a/wmake/rules/linuxClang/c++Debug
+++ b/wmake/rules/linuxClang/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -g -DFULLDEBUG
+c++DBUG     = -g -DFULLDEBUG
 c++OPT      = -O0
diff --git a/wmake/rules/linuxGcc/c b/wmake/rules/linuxGcc/c
index 8eddde0490ddf8ce5858efefc26278625b87d217..5450517cee44c2932a8e7b6ac5fae25a43f37c1e 100644
--- a/wmake/rules/linuxGcc/c
+++ b/wmake/rules/linuxGcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc -m32
 
diff --git a/wmake/rules/linuxGcc/c++Debug b/wmake/rules/linuxGcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linuxGcc/c++Debug
+++ b/wmake/rules/linuxGcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxIA64Gcc/c b/wmake/rules/linuxIA64Gcc/c
index dfae4adda0547faeae8333ed5e2660a3bacd7be7..3ee7538cbb1808ebc79ed2f5dfa61e82354c8024 100644
--- a/wmake/rules/linuxIA64Gcc/c
+++ b/wmake/rules/linuxIA64Gcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc
 
diff --git a/wmake/rules/linuxIA64Gcc/c++Debug b/wmake/rules/linuxIA64Gcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linuxIA64Gcc/c++Debug
+++ b/wmake/rules/linuxIA64Gcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxIA64Icc/c b/wmake/rules/linuxIA64Icc/c
index 2b19596b1a05d2f80010512e60b8941915752fe1..2d8cda5910817d3311d5e1fd8440a926d6f99772 100644
--- a/wmake/rules/linuxIA64Icc/c
+++ b/wmake/rules/linuxIA64Icc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        =
+cWARN       =
 
 cc          = icc
 
diff --git a/wmake/rules/linuxIcc/c b/wmake/rules/linuxIcc/c
index c9f75c90217057b1d520a7e7b66681b18862421f..e3c578ae159d78bdf1ea1ccf0fa1d3ad23126017 100644
--- a/wmake/rules/linuxIcc/c
+++ b/wmake/rules/linuxIcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        =
+cWARN       =
 
 cc          = icc -gcc-version=400
 
diff --git a/wmake/rules/linuxPPC64Gcc/c b/wmake/rules/linuxPPC64Gcc/c
index f973417062ea07758ca2d147fdd4f43c708866ab..dce6cc7466d3db282227acf5b7536bcc51e25c43 100644
--- a/wmake/rules/linuxPPC64Gcc/c
+++ b/wmake/rules/linuxPPC64Gcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc -m64 -mcpu=power5+
 
diff --git a/wmake/rules/linuxPPC64Gcc/c++Debug b/wmake/rules/linuxPPC64Gcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linuxPPC64Gcc/c++Debug
+++ b/wmake/rules/linuxPPC64Gcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxPPC64leGcc/c b/wmake/rules/linuxPPC64leGcc/c
index c5e3c73ebab1b532aa85bc50aac9bb1b56c68a4e..ec88f476277ecf29be4d96041334b46727771a93 100644
--- a/wmake/rules/linuxPPC64leGcc/c
+++ b/wmake/rules/linuxPPC64leGcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cWARN        = -Wall
+cWARN       = -Wall
 
 cc          = gcc -m64 -mcpu=power8
 
diff --git a/wmake/rules/linuxPPC64leGcc/c++Debug b/wmake/rules/linuxPPC64leGcc/c++Debug
index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644
--- a/wmake/rules/linuxPPC64leGcc/c++Debug
+++ b/wmake/rules/linuxPPC64leGcc/c++Debug
@@ -1,2 +1,2 @@
-c++DBUG    = -ggdb3 -DFULLDEBUG
+c++DBUG     = -ggdb3 -DFULLDEBUG
 c++OPT      = -O0 -fdefault-inline