#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2017-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # makeMETIS # # Description # Build script for METIS # # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Dynamic library ending (default is .so) [ "$(uname -s)" = Darwin ] && EXT_SO=.dylib || EXT_SO=.so # 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$EXT_SO \ $dir/lib/libmetis.a \ $dir/lib/libmetis$EXT_SO \ $dir/lib$WM_COMPILER_LIB_ARCH/libmetis.a \ $dir/lib$WM_COMPILER_LIB_ARCH/libmetis$EXT_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%/*}" || exit 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 #------------------------------------------------------------------------------ _foamConfig metis metisPACKAGE=${METIS_VERSION:-metis-system} targetType=libso #------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat</dev/null # Failed rmdir is uncritical echo "Installing: $FOAM_EXT_LIBBIN/libmetis$EXT_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 export GIT_DIR="$PWD/.git" # Mask seeing our own git-repo rm -rf $METIS_ARCH_PATH rm -f $FOAM_EXT_LIBBIN/libmetis$EXT_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 } #------------------------------------------------------------------------------