#!/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 "$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 # Transition # ~~~~~~~~~~ _foamAddLib() { true; } _foamAddMan() { true; } _foamAddPath() { true; } #------------------------------------------------------------------------------ WM_MPLIB=OPENMPI # Ensure we get the correct MPI # openmpi version from OpenFOAM etc/config.sh file: _foamEtc 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 \ --libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ --disable-orterun-prefix-by-default \ --enable-shared --disable-static \ --enable-mpi-fortran=none \ --enable-mpi-thread-multiple \ $configOpt \ && set +x \ && make -j $WM_NCOMPPROCS \ && make install \ && echo "Built: $mpiPACKAGE" \ && pkgconfigAdjust $MPI_ARCH_PATH ) || { echo "Error building: $mpiPACKAGE" exit 1 } fi #------------------------------------------------------------------------------