-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathzzfftw.sh
executable file
·54 lines (45 loc) · 1.28 KB
/
zzfftw.sh
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
#!/bin/bash
# install fftw
set -e
ROOTDIR=${ZZROOT:-$HOME/app}
NAME="fftw"
TYPE=".tar.gz"
FILE="$NAME$TYPE"
DOWNLOADURL="http://www.fftw.org/fftw-3.3.8.tar.gz"
echo $NAME will be installed in "$ROOTDIR"
mkdir -p "$ROOTDIR/downloads"
cd "$ROOTDIR"
if [ -f "downloads/$FILE" ]; then
echo "downloads/$FILE exist"
else
echo "$FILE does not exist, downloading from $DOWNLOADURL"
wget $DOWNLOADURL -O $FILE
mv $FILE downloads/
fi
mkdir -p src/$NAME
tar xf downloads/$FILE -C src/$NAME --strip-components 1
cd src/$NAME
# double precision arithmetic
./configure --prefix="$ROOTDIR" \
--enable-shared \
--enable-threads \
--enable-sse2 \
--enable-avx &&
make -j"$(nproc)" && make install
# single precision
make clean &&
./configure --prefix="$ROOTDIR" \
--enable-shared \
--enable-threads \
--enable-sse2 \
--enable-avx \
--enable-float &&
make -j"$(nproc)" && make install
# long double precision
make clean &&
./configure --prefix="$ROOTDIR" \
--enable-shared \
--enable-threads \
--enable-long-double &&
make -j"$(nproc)" && make install
echo $NAME installed on "$ROOTDIR"