diff options
Diffstat (limited to 'petsc.sh')
-rwxr-xr-x | petsc.sh | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/petsc.sh b/petsc.sh new file mode 100755 index 0000000..ff2472f --- /dev/null +++ b/petsc.sh @@ -0,0 +1,104 @@ +#! /bin/sh +#/*@@ +# @file setup.sh +# @date Fri 29 Aug 2003 +# @author Thomas Radke +# @desc +# Setup for an external PETSc installation +# @enddesc +# @@*/ + +# /*@@ +# @routine CCTK_Search +# @date Wed Jul 21 11:16:35 1999 +# @author Tom Goodale +# @desc +# Used to search for something in various directories +# @enddesc +#@@*/ + +CCTK_Search() +{ + eval $1="" + if test $# -lt 4 ; then + cctk_basedir="" + else + cctk_basedir="$4/" + fi + for cctk_place in $2 + do +# echo $ac_n " Looking in $cctk_place""...$ac_c" #1>&6 + if test -r "$cctk_basedir$cctk_place/$3" ; then +# echo "$ac_t""... Found" #1>&6 + eval $1="$cctk_place" + break + fi + if test -d "$cctk_basedir$cctk_place/$3" ; then +# echo "$ac_t""... Found" #1>&6 + eval $1="$cctk_place" + break + fi +# echo "$ac_t"" No" #1>&6 + done + + return +} + + +choose_petsc=`echo $PETSC | tr '[:upper:]' '[:lower:]'` + +# Work out PETSc's installation directory +if [ -z "$PETSC_DIR" ]; then + CCTK_Search PETSC_DIR '/usr /usr/local /usr/local/petsc /usr/local/packages/petsc /usr/local/apps/petsc' include/petsc.h + if [ -z "$PETSC_DIR" ] ; then + exit 2 + fi +fi + + +# Check what architecture is available +if [ -z "$PETSC_ARCH" ]; then + if [ ! -d "$PETSC_DIR/lib/libg" ]; then + exit 2 + fi + PETSC_ARCH=`/bin/ls -1 $PETSC_DIR/lib/libg | head -n1` +fi + +# Set platform-specific libraries +if [ -z "$PETSC_ARCH_LIBS" ]; then + case "$PETSC_ARCH" in + alpha) PETSC_ARCH_LIBS='dxml' ;; + IRIX64) PETSC_ARCH_LIBS='fpe blas complib.sgimath' ;; + linux) PETSC_ARCH_LIBS='flapack fblas g2c mpich' ;; + linux_intel) PETSC_ARCH_LIBS='mkl_lapack mkl_def guide' ;; + linux-gnu) PETSC_ARCH_LIBS='mkl_lapack mkl_def guide' ;; + linux64_intel) PETSC_ARCH_LIBS='mkl_lapack mkl guide' ;; + rs6000_64) PETSC_ARCH_LIBS='essl' ;; + *) echo " No PETSc support for architecture '$PETSC_ARCH' !" + echo ' Please file a bug report to cactusmaint@cactuscode.org.' + exit 2 + esac +fi + +# Set the PETSc libs, libdirs and includedirs +PETSC_LIB_DIRS='$(PETSC_DIR)/lib/libO/$(PETSC_ARCH)' +PETSC_INC_DIRS='$(PETSC_DIR)/include $(PETSC_DIR)/bmake/$(PETSC_ARCH)' +PETSC_LIBS="petscts petscsnes petscsles petscdm petscmat petscvec petsc $PETSC_ARCH_LIBS" + +echo "BEGIN DEFINE" +echo "#define CCTK_PETSC 1" +echo "END DEFINE" + +echo "BEGIN DEFINITION" +echo "HAVE_PETSC = 1" +echo "PETSC_DIR = $PETSC_DIR" +echo "PETSC_ARCH = $PETSC_ARCH" +echo "PETSC_LIBS = $PETSC_LIBS" +echo "PETSC_LIB_DIRS = $PETSC_LIB_DIRS" +echo "PETSC_INC_DIRS = $PETSC_INC_DIRS" +echo "END DEFINITION" + + +echo 'LIBRARY $(PETSC_LIBS) X11 $(MPI_LIBS)' +echo 'LIBRARY_DIRECTORY $(PETSC_LIB_DIRS) $(X_LIB_DIR)' +echo 'INCLUDE_DIRECTORY $(PETSC_INC_DIRS)' |