-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathbuild_gnu.sh
More file actions
executable file
·49 lines (38 loc) · 1.29 KB
/
build_gnu.sh
File metadata and controls
executable file
·49 lines (38 loc) · 1.29 KB
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
#!/bin/bash
set -eux
name="gnu"
version=${1:-${STACK_gnu_version}}
software="gcc-$version"
cd ${HPC_STACK_ROOT}/${PKGDIR:-"pkg"}
URL="https://mirrors.tripadvisor.com/gnu/gcc/$software/$software.tar.gz"
[[ -d $software ]] || ( $WGET $URL; tar -xf $software.tar.gz; rm -f $software.tar.gz )
[[ -d $software ]] && cd $software || ( echo "$software does not exist, ABORT!"; exit 1 )
contrib/download_prerequisites
[[ ${DOWNLOAD_ONLY} =~ [yYtT] ]] && exit 0
if $MODULES; then
prefix="${PREFIX:-"/opt/modules"}/$name/$version"
if [[ -d $prefix ]]; then
if [[ $OVERWRITE =~ [yYtT] ]]; then
echo "WARNING: $prefix EXISTS: OVERWRITING!"
$SUDO rm -rf $prefix
$SUDO mkdir $prefix
else
echo "WARNING: $prefix EXISTS, SKIPPING"
exit 0
fi
fi
else
prefix=${GNU_ROOT:-"/usr/local"}
fi
[[ -d build ]] && rm -rf build
mkdir -p build && cd build
extra_conf="--disable-multilib"
../configure -v \
--prefix=$prefix \
--enable-checking=release \
--enable-languages=c,c++,fortran $extra_conf
VERBOSE=$MAKE_VERBOSE make -j${NTHREADS:-4}
$SUDO make install-strip
# generate modulefile from template
$MODULES && update_modules core $name $version
echo $name $version $URL >> ${HPC_STACK_ROOT}/hpc-stack-contents.log