summaryrefslogtreecommitdiff
path: root/setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup.sh')
-rwxr-xr-xsetup.sh44
1 files changed, 38 insertions, 6 deletions
diff --git a/setup.sh b/setup.sh
index b8f40bc..0a53722 100755
--- a/setup.sh
+++ b/setup.sh
@@ -1,15 +1,47 @@
#!/bin/bash
-if ! grep -q -- -j <<< "$MAKEOPTS"; then
- MAKEOPTS="-j`nproc` $MAKEOPTS"
- echo "No -j detected, setting $MAKEOPTS automatically."
- printf "%sGiB free RAM, approx 1GiB/core required (depending on ffmpeg settings)." "$(free -gt | tail -n 1 | awk '{print $4}')"
-fi
-
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