/
meep-1.3-ompi_install
executable file
·96 lines (79 loc) · 2.31 KB
/
meep-1.3-ompi_install
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
92
93
94
95
#!/usr/bin/env bash
# Meep w/ OpenMPI
set -e
PACKAGE_NAME="meep"
PACKAGE_VERSION="1.3"
PACKAGE_VARIANT="ompi"
dirname=$(dirname $0 2>/dev/null)
INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes}
source ${INCLUDES_DIR}/module_maker_inc.sh
source ${INCLUDES_DIR}/require_inc.sh
require libtool
require compilers/gnu/4.9.2
require mpi/openmpi/1.8.4/gnu-4.9.2
require hdf/5-1.8.15-p1-ompi/gnu-4.9.2
require fftw/3.3.4-ompi/gnu-4.9.2
require gsl/1.16/gnu-4.9.2 # GSL dependency not listed in the docs, but is in the configure script
require openblas/0.2.14/gnu-4.9.2
require harminv
require libctl
require mpb/1.5-ompi/gnu-4.9.2
_env_setup() {
OWD=$(pwd)
INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${PACKAGE_NAME}/${PACKAGE_VERSION}${PACKAGE_VARIANT:+-${PACKAGE_VARIANT}}/${COMPILER_TAG}}
BUILD_DIR=${BUILD_DIR:-$(mktemp -d)}
MODULE_DIR=${MODULE_DIR:-$(mktemp -d)}
SRC_URLS=http://ab-initio.mit.edu/meep/meep-${PACKAGE_VERSION}.tar.gz
BASENAME=$(basename -s .tar.gz $(cut -f 1 -d ' ' <<<$SRC_URLS))
CONFIGURE_ADD_OPTS=--with-mpi
export BLAS_LIBS=-lopenblas
# the tests fail to find openblas automatically. *shrug*
}
_fetch_files() {
cd $BUILD_DIR
wget $SRC_URLS
cd $OWD
}
_setup_files() {
cd $BUILD_DIR
tar -xf ${BASENAME}.tar.gz
cd $OWD
}
_build() {
cd $BUILD_DIR
cd ${BASENAME}
./configure --prefix=$INSTALL_PREFIX $CONFIGURE_ADD_OPTS
make
make check
make install
make distclean
cd $OWD
}
_prepare_module() {
make_module -p $INSTALL_PREFIX \
-n "${PACKAGE_NAME}" \
-c "${PACKAGE_NAME}" \
-r "gcc-libs/4.9.2" \
-r "mpi/openmpi/1.8.4/gnu-4.9.2" \
-r "hdf/5-1.8.15-p1-ompi/gnu-4.9.2" \
-r "fftw/3.3.4-ompi/gnu-4.9.2" \
-r "gsl" \
-r "harminv" \
-r "mpb/1.3-ompi" \
-r "libctl" \
-r "openblas/0.2.14/gnu-4.9.2" \
-o $MODULE_DIR/${PACKAGE_NAME}/${PACKAGE_VERSION}${PACKAGE_VARIANT:+-${PACKAGE_VARIANT}}/${COMPILER_TAG} \
-w "Adds ${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VARIANT:+-${PACKAGE_VARIANT}} to your environment."
echo "Module files put in: $MODULE_DIR" >&2
}
_clean_up() {
if [ -n "$BUILD_DIR" ]; then
rm -Rf ${BUILD_DIR}
fi
}
_env_setup
_fetch_files
_setup_files
_build
_prepare_module
_clean_up