1#!/bin/bash 2# Check the (prefix) installation of petsc4py, try to import 3 4set -e 5 6die () { 7 echo "ERROR: validate-petsc4py:" "$@" 1>&2 8 exit 1 9} 10 11if [[ -z "${PYTHON}" ]] 12then 13 PYTHON=python 14fi 15 16[[ -n "${PETSC_DIR}" ]] || die "PETSC_DIR var not set" 17 18# Subdirectory of PETSC_DIR where petsc4py bindings get installed 19PY_DIR=lib 20PETSC_CFG="${PETSC_DIR}/${PY_DIR}/petsc4py/lib/petsc.cfg" 21 22[[ -f "${PETSC_CFG}" ]] || die "cfg file not found: ${PETSC_CFG}" 23grep -q "^\s*PETSC_DIR\s*=\s*${PWD}/${T_PREFIX}\s*\$" "${PETSC_CFG}" || \ 24 die "invalid PETSC_DIR value in ${PETSC_CFG}" 25grep -q "^\s*PETSC_ARCH\s*=\s*\$" "${PETSC_CFG}" || \ 26 die "invalid PETSC_ARCH value in ${PETSC_CFG}" 27 28PYTHONPATH="${PETSC_DIR}/${PY_DIR}:${PYTHONPATH}" \ 29 ${PYTHON} -m petsc4py -help || \ 30 die "failed to import and invoke petsc4py" 31