aboutsummaryrefslogtreecommitdiff
path: root/FFTW.sh
blob: 569b244b463cbdde9d7831001632c8aea197a402 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#! /bin/sh
# /*@@
#   @file      FFTW.sh
#   @date      Sun 11 September 2005
#   @author    Erik Schnetter
#   @desc
#              Setup for compilation with the FFTW library
#   @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
      if test -r "$cctk_basedir$cctk_place/$3" ; then
        eval $1="$cctk_place"
        break
      fi
      if test -d "$cctk_basedir$cctk_place/$3" ; then
        eval $1="$cctk_place"
        break
      fi
    done
  return
}

# Search for FFTW installation
if test -z "$FFTW_DIR"; then
  echo "BEGIN MESSAGE"
  echo 'FFTW selected but no FFTW_DIR set... Checking some places'
  echo "END MESSAGE"
  CCTK_Search FFTW_DIR '/usr/lib /usr/local/lib' libfftw.a
  if test -z "$FFTW_DIR"; then
    CCTK_Search FFTW_DIR '/usr/lib /usr/local/lib' libfftw.so
  fi
  if test -z "$FFTW_DIR"; then
    echo "BEGIN ERROR"
    echo 'Unable to locate the FFTW library - please set FFTW_DIR'
    echo "END ERROR"
    exit 2
  fi
  echo "BEGIN MESSAGE" 
  echo "Found a FFTW package in $FFTW_DIR"
  echo "END MESSAGE"

elif test "$FFTW_DIR" = 'none'; then
  # user doesn't want the library path added
  FFTW_DIR=''
fi

if test -z "$FFTW_LIBS"; then
  if test -n "$MPI" -a "$MPI" != 'none' ; then
    FFTW_LIBS='rfftw_mpi fftw_mpi $(MPI_LIBS) rfftw fftw m'
  else
    FFTW_LIBS='rfftw fftw m'
  fi
fi

# Set the FFTW libs, libdirs and includedirs

# Don't explicitely add standard include and library search paths
if [ "$FFTW_DIR" != '/usr' -a "$FFTW_DIR" != '/usr/local' ]; then
  FFTW_INC_DIRS="$FFTW_DIR/include"
  FFTW_LIB_DIRS="$FFTW_DIR/lib"
fi

# Write the data out to the headers and makefiles
echo 'BEGIN MAKE_DEFINITION'
echo "FFTW_INC_DIRS = $FFTW_INC_DIRS"
echo "FFTW_LIB_DIRS = $FFTW_LIB_DIRS"
echo "FFTW_LIBS     = $FFTW_LIBS"
echo 'END MAKE_DEFINITION'

echo 'INCLUDE_DIRECTORY $(FFTW_INC_DIRS)'
echo 'LIBRARY_DIRECTORY $(FFTW_LIB_DIRS)'
echo 'LIBRARY $(FFTW_LIBS)'