diff --git a/Allwmake b/Allwmake
index e21941f..066fc48 100755
--- a/Allwmake
+++ b/Allwmake
@@ -74,140 +74,19 @@ echo
echo ========================================
echo Start ThirdParty Allwmake
echo ========================================
-
-
echo
echo ========================================
echo Build MPI libraries if required
echo " $MPI_ARCH_PATH"
case "$WM_MPLIB" in
-OPENMPI)
- if [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.so ]
- then
- echo " have $WM_MPLIB shared library ($FOAM_MPI)"
- echo
- elif [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.a ]
- then
- echo " have $WM_MPLIB static library ($FOAM_MPI)"
- echo
- else
- (
- # configuration options:
- # Start with GridEngine support - builds without external libraries
- configOpt="--with-sge"
-
- # Add InfiniBand support
- ibDir=/usr/local/ofed
- ibLib=$infbDIR/lib${WM_COMPILER_LIB_ARCH}
- if [ -d "$ibDir" -a -d "$ibLib" ]
- then
- configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibLib"
- fi
-
- # end of configuration options
- # ----------------------------
- mpiPACKAGE="${MPI_ARCH_PATH##*/}"
- sourceDIR=$sourceBASE/$mpiPACKAGE
- buildDIR=$buildBASE/$mpiPACKAGE
-
- cd $sourceDIR || exit 1
- [ -e Makefile ] && make distclean 2>/dev/null
-
- rm -rf $MPI_ARCH_PATH
- rm -rf $buildDIR
- mkdir -p $buildDIR
- cd $buildDIR
-
- set -x
- $sourceDIR/configure \
- --prefix=$MPI_ARCH_PATH \
- --disable-orterun-prefix-by-default \
- --enable-shared --disable-static \
- --libdir=$MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH} \
- --enable-mpi-fortran=none \
- --disable-mpi-profile \
- $configOpt \
- && set +x \
- && make -j $WM_NCOMPPROCS \
- && make install \
- && echo "Built: $mpiPACKAGE" \
- && pkgconfigAdjust $MPI_ARCH_PATH
- ) || {
- echo "Error building: $mpiPACKAGE"
- exit 1
- }
- fi
- ;;
-
-MPICH)
- if [ -r $MPI_ARCH_PATH/lib/libmpich.so ]
- then
- echo " have $WM_MPLIB shared library ($FOAM_MPI)"
- echo
- elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ]
- then
- echo " have $WM_MPLIB static library ($FOAM_MPI)"
- echo
- else
- (
- # WARNING: unmaintained build code:
- # ---------------------------------
- mpiPACKAGE="${MPI_ARCH_PATH##*/}"
- sourceDIR=$sourceBASE/$mpiPACKAGE
- cd $sourceDIR || exit 1
-
- set -x
- [ -e Makefile ] && make distclean 2>/dev/null
- rm -rf $MPI_ARCH_PATH
- rm -rf util/machines/machines.*
-
- ./configure \
- --prefix=$MPI_ARCH_PATH \
- --without-mpe \
- --disable-f77 \
- --disable-f90 \
- --disable-f90modules \
- --disable-mpedbg \
- --disable-devdebug \
- --disable-debug \
- --enable-sharedlib=$MPI_ARCH_PATH/lib \
- --with-device=ch_p4 \
- ;
-
- # For MPICH2 below 1.5a1 uncomment this line and comment next
- # make && make install
-
- # For MPICH2 1.5a1 or above
- make -j $WM_NCOMPPROCS && make install
-
- make distclean
-
- if [ -r $MPI_ARCH_PATH ]
- then
- cd $MPI_ARCH_PATH/bin
- for file in *
- do
- sed s%$MPI_ARCH_PATH%'$MPI_ARCH_PATH'%g $file > temp.$$
- mv temp.$$ $file
- chmod 0755 $file
- done
-
- cd $MPI_ARCH_PATH/lib
-
- if [ -r libmpich.so.1.0 ]
- then
- rm *.so
- ln -s libmpich.so.1.0 libmpich.so
- fi
- fi
- )
- fi
+(OPENMPI | MPICH)
+ ./make$WM_MPLIB -test "$MPI_ARCH_PATH" || ./make$WM_MPLIB
;;
esac
#------------------------------------------------------------------------------
-# Building scotch is still a bit of a pain
+# Building scotch on different platforms is still a bit of a pain
# Get SCOTCH_VERSION, SCOTCH_ARCH_PATH
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
@@ -367,7 +246,6 @@ if [ -f $METIS_ARCH_PATH/include/metis.h \
then
echo " metis header in $METIS_ARCH_PATH/include"
echo " metis libs in $FOAM_EXT_LIBBIN"
- echo
elif [ -d "$METIS_SOURCE_DIR" ]
then
(
@@ -393,54 +271,28 @@ fi
#------------------------------------------------------------------------------
-
-# CGAL is optional
echo
echo ========================================
echo Build CGAL
-if [ -d "$CGAL_ARCH_PATH/include" \
- -a -r "$CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libCGAL.so" ]
-then
- # first some information about boost
- for root in "$BOOST_ARCH_PATH" /usr
- do
- 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"
- break
- fi
- done
- echo " CGAL headers in $CGAL_ARCH_PATH/include"
- echo " CGAL libs in $CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
-elif [ -n "$CGAL_ARCH_PATH" ]
+if [ -n "$CGAL_ARCH_PATH" ]
then
+ ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
./makeCGAL || warnBuildIssues CGAL
else
- warnNotFound CGAL
+ warnNotFound CGAL # CGAL is optional
fi
-
-# FFTW is optional
echo
echo ========================================
echo Build FFTW
-if [ -d "$FFTW_ARCH_PATH/include" \
- -a -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
-then
- echo " FFTW headers in $FFTW_ARCH_PATH/include"
- echo " FFTW libs in $FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
-elif [ -n "$FFTW_ARCH_PATH" ]
+if [ -n "$FFTW_ARCH_PATH" ]
then
+ ./makeFFTW -test "$FFTW_ARCH_PATH" || \
./makeFFTW || warnBuildIssues FFTW
else
- warnNotFound FFTW
+ warnNotFound FFTW # FFTW is optional
fi
-
-#------------------------------------------------------------------------------
-
echo
echo ========================================
echo Done ThirdParty Allwmake
diff --git a/makeCGAL b/makeCGAL
index a3db8aa..60d15e2 100755
--- a/makeCGAL
+++ b/makeCGAL
@@ -37,6 +37,33 @@
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
+# Short-circuit test for an installation
+if [ "$1" = "-test" ]
+then
+ [ "$#" -eq 3 ] || { echo "${0##*/} -test : needs 2 argument"; exit 1; }
+ 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"
+ # Additional information about boost
+ dir="$3" # <- BOOST_ARCH_PATH
+ for root in "$dir" /usr
+ do
+ 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"
+ break
+ fi
+ done
+ exit 0
+ else
+ exit 2
+ fi
+fi
+#------------------------------------------------------------------------------
# Run from third-party directory only
cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
diff --git a/makeFFTW b/makeFFTW
index fc8a10e..437efab 100755
--- a/makeFFTW
+++ b/makeFFTW
@@ -31,6 +31,21 @@
# ----------------------------------------------
# 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" # <- 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"
+ exit 0
+ else
+ exit 2
+ fi
+fi
+#------------------------------------------------------------------------------
# Run from third-party directory only
cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
diff --git a/makeMPICH b/makeMPICH
new file mode 100755
index 0000000..9514c85
--- /dev/null
+++ b/makeMPICH
@@ -0,0 +1,195 @@
+#!/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.
+#
+# 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 .
+#
+# Script
+# makeMPICH
+#
+# Description
+# Build script for mpich - legacy (unmaintained) build code!
+#
+# ----------------------------------------------
+# 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" # <- MPI_ARCH_PATH
+ if [ -r "$dir/lib/libmpich.so" ]
+ then
+ echo "Have mpich shared library"
+ exit 0
+ elif [ -r "$dir/lib/libmpich.a" ]
+ then
+ echo "Have mpich static library"
+ exit 0
+ else
+ echo "No mpich libraries found: ${dir:-not-specified}"
+ exit 2
+ fi
+fi
+#------------------------------------------------------------------------------
+# Run from third-party directory only
+cd ${0%/*} && wmakeCheckPwd -q "$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
+}
+. etc/tools/ThirdPartyFunctions
+#------------------------------------------------------------------------------
+# get mpich version
+WM_MPLIB=MPICH # ensure we get the third-party settings
+
+. $WM_PROJECT_DIR/etc/config.sh/functions
+_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi)
+
+mpiPACKAGE=${FOAM_MPI:-mpich-system}
+#------------------------------------------------------------------------------
+usage() {
+ exec 1>&2
+ while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+ cat</dev/null
+ rm -rf $MPI_ARCH_PATH
+ rm -rf util/machines/machines.*
+
+ ./configure \
+ --prefix=$MPI_ARCH_PATH \
+ --without-mpe \
+ --disable-f77 --disable-f90 --disable-f90modules \
+ --disable-debug --disable-mpedbg --disable-devdebug \
+ --enable-sharedlib=$MPI_ARCH_PATH/lib \
+ --with-device=ch_p4 \
+ ;
+
+ # For MPICH2 below 1.5a1 uncomment this line and comment next
+ # make && make install
+
+ # For MPICH2 1.5a1 or above
+ make -j $WM_NCOMPPROCS && make install
+
+ make distclean
+
+ if [ -r $MPI_ARCH_PATH ]
+ then
+ cd $MPI_ARCH_PATH/bin
+ for file in *
+ do
+ sed s%$MPI_ARCH_PATH%'$MPI_ARCH_PATH'%g $file > temp.$$
+ mv temp.$$ $file
+ chmod 0755 $file
+ done
+
+ cd $MPI_ARCH_PATH/lib
+
+ if [ -r libmpich.so.1.0 ]
+ then
+ rm *.so
+ ln -s libmpich.so.1.0 libmpich.so
+ fi
+ fi
+ )
+fi
+
+#------------------------------------------------------------------------------
diff --git a/makeOPENMPI b/makeOPENMPI
new file mode 100755
index 0000000..a3a03ff
--- /dev/null
+++ b/makeOPENMPI
@@ -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.
+#
+# 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 .
+#
+# Script
+# makeOPENMPI
+#
+# Description
+# Build script for openmpi
+#
+# ----------------------------------------------
+# 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" # <- MPI_ARCH_PATH
+ if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.so" ]
+ then
+ echo " Have openmpi shared library (${dir##*/})"
+ exit 0
+ elif [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
+ then
+ echo " Have openmpi static library (${dir##*/})"
+ exit 0
+ else
+ echo "No openmpi libraries found: ${dir:-not-specified}"
+ exit 2
+ fi
+fi
+#------------------------------------------------------------------------------
+# Run from third-party directory only
+cd ${0%/*} && wmakeCheckPwd -q "$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
+}
+. etc/tools/ThirdPartyFunctions
+#------------------------------------------------------------------------------
+# get openmpi version
+WM_MPLIB=OPENMPI # ensure we get the third-party settings
+
+. $WM_PROJECT_DIR/etc/config.sh/functions
+_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi)
+
+mpiPACKAGE=${FOAM_MPI:-openmpi-system}
+#------------------------------------------------------------------------------
+usage() {
+ exec 1>&2
+ while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+ cat</dev/null
+
+ rm -rf $MPI_ARCH_PATH
+ rm -rf $buildDIR
+ mkdir -p $buildDIR
+ cd $buildDIR
+
+ set -x
+ $MPI_SOURCE_DIR/configure \
+ --prefix=$MPI_ARCH_PATH \
+ --disable-orterun-prefix-by-default \
+ --enable-shared --disable-static \
+ --libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
+ --enable-mpi-fortran=none \
+ --disable-mpi-profile \
+ $configOpt \
+ && set +x \
+ && make -j $WM_NCOMPPROCS \
+ && make install \
+ && echo "Built: $mpiPACKAGE" \
+ && pkgconfigAdjust $MPI_ARCH_PATH
+ ) || {
+ echo "Error building: $mpiPACKAGE"
+ exit 1
+ }
+fi
+
+#------------------------------------------------------------------------------