summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xbuild4
-rwxr-xr-xinclude/lib.sh17
3 files changed, 13 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 25c27d4c..d6c27f5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,4 @@
/src/
/CHANGELOG
/todo.txt
+/lock
diff --git a/build b/build
index 74ea1de6..bfd865c2 100755
--- a/build
+++ b/build
@@ -124,7 +124,8 @@ fetch_trees()
fail()
{
- tmp_cleanup || printf "WARNING: can't rm tmpdir: %s\n" "$tmpdir" 1>&2
+ tmp_cleanup || printf "WARNING: can't rm tmp files: %s\n" "$tmpdir" \
+ 1>&2
err_ "${1}"
}
@@ -132,6 +133,7 @@ tmp_cleanup()
{
[ "$tmpdir_was_set" = "n" ] || return 0
rm -Rf "$tmpdir" || return 1
+ rm -f lock || return 1
}
main $@
diff --git a/include/lib.sh b/include/lib.sh
index b3a76879..b41645fb 100755
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -65,27 +65,28 @@ install_packages()
id -u 1>/dev/null 2>/dev/null || $err "suid check failed (id -u)"
[ "$(id -u)" != "0" ] || $err "this command as root is not permitted"
-# if "y": a coreboot target won't be built if target.cfg says release="n"
-# (this is used to exclude certain build targets from releases)
-
-[ -z "${XBMK_RELEASE+x}" ] && xbmk_release="n"
-[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE"
-[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n"
-export XBMK_RELEASE="$xbmk_release"
-
[ -z "${TMPDIR+x}" ] && tmpdir_was_set="n"
if [ "$tmpdir_was_set" = "y" ]; then
[ "${TMPDIR%_*}" = "/tmp/xbmk" ] || tmpdir_was_set="n"
fi
if [ "$tmpdir_was_set" = "n" ]; then
+ [ -f "lock" ] && $err "The 'lock' file exists. Is a build running?"
export TMPDIR="/tmp"
tmpdir="$(mktemp -d -t xbmk_XXXXXXXX)"
export TMPDIR="$tmpdir"
+ touch lock || $err "cannot create 'lock' file"
else
export TMPDIR="$TMPDIR"
tmpdir="$TMPDIR"
fi
+# if "y": a coreboot target won't be built if target.cfg says release="n"
+# (this is used to exclude certain build targets from releases)
+[ -z "${XBMK_RELEASE+x}" ] && xbmk_release="n"
+[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE"
+[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n"
+export XBMK_RELEASE="$xbmk_release"
+
[ -z "${XBMK_THREADS+x}" ] || threads="$XBMK_THREADS"
[ -z "$threads" ] && threads=1
expr "X$threads" : "X-\{0,1\}[0123456789][0123456789]*$" \