#! /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 } echo 'Configuring with PETSc' # Check that MPI is there if [ -z "$MPI" -o "$MPI" = 'none' ]; then echo "BEGIN ERROR" echo 'PETSc requires MPI - please configure with MPI' echo "END ERROR" exit 2 fi # Work out PETSc's installation directory if [ -z "$PETSC_DIR" ]; then echo "BEGIN MESSAGE" echo 'PETSc selected but no PETSC_DIR set. Checking some places...' echo "END MESSAGE" 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 echo "BEGIN ERROR" echo 'Unable to locate the PETSc directory - please set PETSC_DIR' echo "END ERROR" exit 2 fi echo "BEGIN MESSAGE" echo "Found a PETSc package in $PETSC_DIR" echo "END MESSAGE" else echo "BEGIN MESSAGE" echo "Using PETSc package in $PETSC_DIR" echo "END MESSAGE" 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 "BEGIN ERROR" echo "No PETSc support for architecture '$PETSC_ARCH' !" echo 'Please file a bug report to cactusmaint@cactuscode.org.' echo "END ERROR" 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)'