summaryrefslogtreecommitdiff
path: root/setup.sh
blob: 0a53722d326aad587c8224ff61a7839bfe1193d7 (plain)
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
#!/bin/bash

set -e -x

cd $(dirname $0)

check-reqs_no() {
}

check-reqs_disk() {
    local space

    space=$(df -P . 2>/dev/null | awk 'FNR == 2 {print $4}')

    if [[ $? == 0 && -n $space && $space -lt $1 ]] ; then
        echo >&2 "Warning: There is NOT at least $1 KiB disk space available, build may fail."
    fi
}

check-reqs_memory() {
    local actual_memory

    if [[ -r /proc/meminfo ]] ; then
        actual_memory=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
    fi
    if [[ -n $actual_memory && $actual_memory -lt $((1024 * $1)) ]] ; then
        echo >&2 "Warning: There is NOT at least $1 KiB RAM available, build may fail."
        echo >&2 "If it does, try setting MAKEOPTS lower or simply re-running this script."
    fi
}

if ! grep -q -- -j <<< "$MAKEOPTS"; then
  NPROC="`nproc`"
  MAKEOPTS="-j$NPROC $MAKEOPTS"
  echo >&2 "No -j detected, setting $MAKEOPTS automatically."
  check-reqs_memory $(( NPROC * 262144 )) # 256 MiB/job
  if [[ $NOTEMP ]]; then
    check-reqs_disk 500000 # 500 MiB
  else
    check-reqs_disk 13000000
    echo >&2 "If you have insufficient disk space (indicated if so above), consider setting NOTEMP=1 to disable generation of Y4M files."
  fi
fi

cd unrpyc
# silence build failure
make $MAKEOPTS install || true
cd ..

make $MAKEOPTS