/
randfold-2.0_install
executable file
·75 lines (62 loc) · 1.86 KB
/
randfold-2.0_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
#!/usr/bin/env bash
set -o errexit -o nounset
for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done
package_name="randfold"
package_version="2.0"
src_urls=http://bioinformatics.psb.ugent.be/supplementary_data/erbon/nov2003/downloads/randfold-2.0.tar.gz
# Optional:
# package_variant=""
actual_file_name=randfold-2.0.tar.gz
actual_file_md5=6e44ed9b0ae8e4e12369a2369faa7dda
require compilers/gnu
require squid
_env_setup() {
owd=$(pwd)
package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}"
install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label}
build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)}
module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)}
basename=${basename:-$(basename -s .tar.gz $(cut -f 1 -d ' ' <<<$src_urls))}
cd $build_dir
}
_fetch_files() {
wget $src_urls
md5sum -c <<<"$actual_file_md5 $actual_file_name"
}
_setup_files() {
tar -xf $actual_file_name
# v--- removes a compile warning
cat -- - $basename/randfold.c >$basename/randfold.c.new <<EOF
#include <string.h>
EOF
mv $basename/randfold.c.new $basename/randfold.c
}
_build() {
cd ${basename}
make ${2:-}
install -D randfold $install_prefix/bin/randfold
echo "Installed to: $install_prefix"
}
_prepare_module() {
make_module -p $install_prefix \
-n "${package_name}" \
-c "${package_name}" \
-o $module_dir/$package_label \
-r gcc-libs \
-r squid \
-w "Adds ${package_name} ${package_version} to your environment."
echo "Module files put in: $module_dir" >&2
chmod a+rx $module_dir
}
_clean_up() {
cd $owd
if [ -n "$build_dir" ]; then
rm -Rf ${build_dir}
fi
}
_env_setup
_fetch_files
_setup_files
_build
_prepare_module
_clean_up