summaryrefslogtreecommitdiff
path: root/include/lib.sh
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-12-30 21:25:55 +0000
committerLeah Rowe <leah@libreboot.org>2024-12-30 21:25:55 +0000
commit466ada423ddabacd6d7c8488b32ca1812f134033 (patch)
treec487857092fdc95a6412a9a202f72333bec4e437 /include/lib.sh
parentb0a23840327f7df97d3b4ea03d0e3f3fe93291c9 (diff)
move xbmkpath to XBMK_CACHE/
When doing ./mk release, the build system would create symlinks inside xbmkpath/ relative to the current work tree, which will differ from what's in PATH. Since XBMK_CACHE is already set globally, from the main work tree and the release-build work tree, that means we can know reliably that PATH is always correct if we put xbmkpath/ inside XBMK_CACHE. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/lib.sh')
-rw-r--r--include/lib.sh25
1 files changed, 13 insertions, 12 deletions
diff --git a/include/lib.sh b/include/lib.sh
index ef54f143..2c86e37d 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -87,28 +87,29 @@ fi
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"
+# XBMK_CACHE is a directory, for caching downloads and git repositories
+[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache"
+[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
+[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \
+ $err "cachedir is default, $PWD/cache, but it exists and is a symlink"
+[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
+[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file"
+
+# unify all temporary files/directories in a single TMPDIR
[ -z "${TMPDIR+x}" ] || [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || unset TMPDIR
[ -n "${TMPDIR+x}" ] && export TMPDIR="$TMPDIR"
-
if [ -z "${TMPDIR+x}" ]; then
[ -f "lock" ] && $err "$PWD/lock exists. Is a build running?"
export TMPDIR="/tmp"
export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)"
touch lock || $err "cannot create 'lock' file"
- rm -Rf xbmkpath || $err "cannot remove xbmkpath"
- mkdir -p xbmkpath || $err "cannot create xbmkpath"
- export PATH="$PWD/xbmkpath:$PATH" || $err "Can't create xbmkpath"
+ rm -Rf "$XBMK_CACHE/xbmkpath" || $err "cannot remove xbmkpath"
+ mkdir -p "$XBMK_CACHE/xbmkpath" || $err "cannot create xbmkpath"
+ export PATH="$XBMK_CACHE/xbmkpath:$PATH" || \
+ $err "Can't create xbmkpath"
xbmk_parent="y"
fi
-# XBMK_CACHE is a directory, for caching downloads and git repositories
-[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache"
-[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
-[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \
- $err "cachedir is default, $PWD/cache, but it exists and is a symlink"
-[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
-[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file"
-
# 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}" ] && export XBMK_RELEASE="n"