aboutsummaryrefslogtreecommitdiff
path: root/petsc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'petsc.sh')
-rwxr-xr-xpetsc.sh104
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)'