summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/lib.sh35
-rw-r--r--include/rom.sh11
-rw-r--r--include/vendor.sh9
-rwxr-xr-xmk31
4 files changed, 41 insertions, 45 deletions
diff --git a/include/lib.sh b/include/lib.sh
index e0c9b1a2..21066ecc 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -30,9 +30,6 @@ x_() {
[ $# -lt 1 ] || "$@" || $err "Unhandled error for: $(echo "$@")"; :
}
-xbmkpwd="`pwd`" || $err "Cannot generate PWD"
-export PWD="$xbmkpwd"
-
setvars()
{
_setvars="" && [ $# -lt 2 ] && $err "setvars: too few arguments"
@@ -49,13 +46,6 @@ chkvars()
done; :
}
-eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
- datadir version relname`"
-
-for fv in version versiondate; do
- eval "[ ! -f \".$fv\" ] || read -r $fv < \".$fv\" || :"
-done
-
setcfg()
{
[ $# -gt 1 ] && printf "e \"%s\" f missing && return %s;\n" "$1" "$2"
@@ -88,11 +78,25 @@ install_packages()
[ -n "$aur_notice" ] && \
printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; :
}
+
+eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
+ datadir version relname xbmktmp`"
+
if [ $# -gt 0 ] && [ "$1" = "dependencies" ]; then
install_packages "$@" || exit 1
exit 0
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"
+
+xbmkpwd="`pwd`" || $err "Cannot generate PWD"
+export PWD="$xbmkpwd"
+
+for fv in version versiondate; do
+ eval "[ ! -f \".$fv\" ] || read -r $fv < \".$fv\" || :"
+done
+
pyver="2"
python="python3"
command -v python3 1>/dev/null || python="python"
@@ -109,9 +113,6 @@ if [ "${pyver%%.*}" != "3" ]; then
exit 1
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="$xbmkpwd/cache"
[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
@@ -127,6 +128,7 @@ if [ -z "${TMPDIR+x}" ]; then
[ -f "lock" ] && $err "$xbmkpwd/lock exists. Is a build running?"
export TMPDIR="/tmp"
export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)"
+ xbmktmp="$TMPDIR"
touch lock || $err "cannot create 'lock' file"
x_ rm -Rf "$XBMK_CACHE/xbmkpath" "$XBMK_CACHE/gnupath"
x_ mkdir -p "$XBMK_CACHE/gnupath" "$XBMK_CACHE/xbmkpath"
@@ -140,10 +142,11 @@ if [ -z "${TMPDIR+x}" ]; then
xbmk_rval=0
./mk "$@" || xbmk_rval=1
- rm -Rf "$TMPDIR" || xbmk_rval=1
+ rm -Rf "$xbmktmp" || xbmk_rval=1
rm -f lock || xbmk_rval=1
exit $xbmk_rval
fi
+xbmktmp="$TMPDIR"
# 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)
@@ -197,9 +200,7 @@ mkrom_tarball()
mktarball()
{
- if [ "${2%/*}" != "$2" ]; then
- mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\""
- fi
+ [ "${2%/*}" = "$2" ] || x_ mkdir -p "${2%/*}"
x_ tar -c "$1" | xz -T$XBMK_THREADS -9e > "$2" || $err "mktarball2, $1"
}
diff --git a/include/rom.sh b/include/rom.sh
index 4ec473e5..710df853 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -12,7 +12,8 @@ mkserprog()
[ "$1" = "pico" ] && mkpicotool
- basename -as .h "$serdir/"*.h > "$TMPDIR/ser" || $err "!mk $1 $TMPDIR"
+ basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \
+ $err "!mk $1 $xbmktmp"
while read -r sertarget; do
[ "$1" = "pico" ] &&
@@ -31,7 +32,7 @@ mkserprog()
"$sersrc" BOARD=$sertarget
x_ mkdir -p "bin/serprog_$1"
x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}"
- done < "$TMPDIR/ser"
+ done < "$xbmktmp/ser"
[ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; :
}
@@ -115,7 +116,7 @@ mkcorebootbin()
{
[ "$target" = "$tree" ] && return 0
- tmprom="$TMPDIR/coreboot.rom"
+ tmprom="$xbmktmp/coreboot.rom"
$dry x_ cp "$srcdir/build/coreboot.rom" "$tmprom"
initmode="${defconfig##*/}"
@@ -201,8 +202,8 @@ add_grub()
_grubname="fallback/payload"
cbfs "$tmprom" "$grubelf" "$_grubname"
printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \
- > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk"
- cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw
+ > "$xbmktmp/tmpcfg" || $err "$target: !insert scandisk"
+ cbfs "$tmprom" "$xbmktmp/tmpcfg" scan.cfg raw
[ "$initmode" != "normal" ] && [ "$displaymode" != "txtmode" ] && \
cbfs "$tmprom" "$grubdata/background/background1280x800.png" \
"background.png" raw; :
diff --git a/include/vendor.sh b/include/vendor.sh
index 239b0e52..c4e57069 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -42,17 +42,16 @@ vendor_download()
{
[ $# -gt 0 ] || $err "No argument given"
export PATH="$PATH:/sbin"
- board="$1"
- readcfg && readkconfig && bootstrap && getfiles; :
+ board="$1" && readcfg && readkconfig && bootstrap && getfiles; :
}
readkconfig()
{
- x_ rm -f "$TMPDIR/cbcfg"
+ x_ rm -f "$xbmktmp/cbcfg"
cbcfg="`check_defconfig "$boarddir"`" || for cbc in $cv; do
- grep "$cbc" "$cbcfg" 1>>"$TMPDIR/cbcfg" 2>/dev/null || :
+ grep "$cbc" "$cbcfg" 1>>"$xbmktmp/cbcfg" 2>/dev/null || :
done
- eval "`setcfg "$TMPDIR/cbcfg" 1`"
+ eval "`setcfg "$xbmktmp/cbcfg" 1`"
for c in $cvchk; do
eval "[ \"\${$c}\" = \"/dev/null\" ] && continue"
diff --git a/mk b/mk
index 8460773e..a8e4e617 100755
--- a/mk
+++ b/mk
@@ -175,7 +175,7 @@ trees()
mkhelpercfg="$datadir/mkhelper.cfg"
if e "$mkhelpercfg" f missing; then
- mkhelpercfg="$TMPDIR/mkhelper.cfg"
+ mkhelpercfg="$xbmktmp/mkhelper.cfg"
x_ touch "$mkhelpercfg"
fi
@@ -292,30 +292,26 @@ build_dependencies()
check_project_hashes()
{
- x_ mkdir -p "$XBMK_CACHE/hash"
- old_pjhash=""
+ old_pjhash="" && x_ mkdir -p "$XBMK_CACHE/hash"
[ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \
read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree"
- x_ rm -f "$TMPDIR/project.list" "$TMPDIR/project.hash" \
- "$TMPDIR/project.tmp"
- x_ touch "$TMPDIR/project.tmp"
- x_ touch "$TMPDIR/project.hash"
+ x_ rm -f "$xbmktmp/project.list" "$xbmktmp/project.hash" \
+ "$xbmktmp/project.tmp"
+ x_ touch "$xbmktmp/project.tmp" "$xbmktmp/project.hash"
for rmchk in "$datadir" "$configdir/$tree" "$mdir"; do
- [ -d "$rmchk" ] || continue
- find "$rmchk" -type f -not -path "*/.git*/*" >> \
- "$TMPDIR/project.tmp" || $err "!find $rmchk > project.tmp"
+ [ ! -d "$rmchk" ] || find "$rmchk" -type f -not -path \
+ "*/.git*/*" >> "$xbmktmp/project.tmp" || $err "!fh $rmchk"
done
- sort "$TMPDIR/project.tmp" > "$TMPDIR/project.list" || \
- $err "!sort project tmp/list"
+ sort "$xbmktmp/project.tmp" > "$xbmktmp/project.list" || $err "!pj srt"
while read -r rmchk; do
[ ! -f "$rmchk" ] || x_ sha512sum "$rmchk" | awk \
- '{print $1}' >> "$TMPDIR/project.hash" || $err "!h $rmchk"
- done < "$TMPDIR/project.list"
+ '{print $1}' >> "$xbmktmp/project.hash" || $err "!h $rmchk"
+ done < "$xbmktmp/project.list"
- pjhash="$(sha512sum "$TMPDIR/project.hash" | awk '{print $1}')" || :
+ pjhash="$(sha512sum "$xbmktmp/project.hash" | awk '{print $1}')" || :
[ "$pjhash" != "$old_pjhash" ] && badhash="y"
[ -f "$XBMK_CACHE/hash/$project$tree" ] || badhash="y"
@@ -390,9 +386,8 @@ check_gnu_path()
rm -f "$XBMK_CACHE/gnupath/"* || $err "Cannot clear gnupath/"
cd "$XBMK_CACHE/gnupath" || $err "Can't cd to gnupath/"
for _gnubin in "$_gnudir/$2"*"-$_gnuver"; do
- [ -e "$_gnubin" ] || continue
- _gnuutil="${_gnubin##*/}"
- x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
+ _gnuutil="${_gnubin##*/}" && [ -e "$_gnubin" ] && \
+ x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
done
) || $err "Cannot create $2-$_gnuver link in $_gnudir"; :
}