diff options
author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-07-25 00:13:15 +0100 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-07-25 00:13:15 +0100 |
commit | c58835bc4196ac3abad608b67455df8fd5f42683 (patch) | |
tree | ce9404e6357a262965a8c587d105a7a6e97e6df2 | |
parent | 1997431321f1a00ecc201e60c569cf3d05398552 (diff) |
Corrected preparation to build software in shared memory
The previous implementation of using shared memory to build software was
edited to be more clear and less prone to errors.
-rw-r--r-- | .file-metadata | bin | 6157 -> 6221 bytes | |||
-rwxr-xr-x | configure | 47 |
2 files changed, 25 insertions, 22 deletions
diff --git a/.file-metadata b/.file-metadata Binary files differindex 522b447..74f49c4 100644 --- a/.file-metadata +++ b/.file-metadata @@ -716,31 +716,34 @@ ln -s $topdir/reproduce/software/config/gnuastro .gnuastro # random characters to this name and make it unique to every run (even for # a single user). tmpblddir=$sdir/build-tmp -if [ -d /dev/shm ]; then - dirname=$(pwd | sed -e's/\// /g' | awk '{l=NF-1; printf("%s-%s",$l, $NF)}') - tbshmdir=/dev/shm/"$dirname"-$(whoami) -else - tbshmdir="" -fi +if ! [ -d $tmpblddir ]; then -# If a shared memory mounted directory exists and there is enough space -# there (in RAM), build a temporary directory for this project. -use_shm=0 -needed_space=2000000 -if [ x"$tbshmdir" != x ]; then - available_space=$(df $tbshmdir | awk 'NR==2{print $4}') - if [ $available_space -gt $needed_space ]; then - use_shm=1 - if ! [ -d $tbshmdir ]; then mkdir $tbshmdir; fi + # Set the top-level shared memory location. + if [ -d /dev/shm ]; then shmdir=/dev/shm + else shmdir="" fi -fi -# If no shared memory directory was created, just build the temporary build -# directory under the project build directory. -if [ x$use_shm = x0 ]; then - if ! [ -d $tmpblddir ]; then mkdir $tmpblddir; fi -else - if ! [ -d $tmpblddir ]; then ln -s $tbshmdir $tmpblddir; fi + # If a shared memory mounted directory exists and there is enough space + # there (in RAM), build a temporary directory for this project. + needed_space=2000000 + if [ x"$shmdir" != x ]; then + available_space=$(df $shmdir | awk 'NR==2{print $4}') + if [ $available_space -gt $needed_space ]; then + dirname=$(pwd | sed -e's/\// /g' \ + | awk '{l=NF-1; printf("%s-%s",$l, $NF)}') + tbshmdir=$shmdir/"$dirname"-$(whoami) + if ! [ -d $tbshmdir ]; then mkdir $tbshmdir; fi + fi + else + tbshmdir="" + fi + + # If a shared memory directory was created set `build-tmp' to be a + # symbolic link to it. Otherwise, just build the temporary build + # directory under the project build directory. + if [ x$tbshmdir = x ]; then mkdir $tmpblddir; + else ln -s $tbshmdir $tmpblddir; + fi fi |