summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild48
1 files changed, 20 insertions, 28 deletions
diff --git a/build b/build
index ef5a1109..ce744339 100755
--- a/build
+++ b/build
@@ -16,27 +16,32 @@ fi
. "include/vendor.sh"
. "include/mrc.sh"
-eval `setvars "" vdir src_dirname srcdir _xm mode xp`
+eval `setvars "" vdir src_dirname srcdir mode xp ser`
err="fail"
main()
{
[ $# -lt 1 ] && $err "bad command"
- spath="script/$1"
+ spath="script/$1"; shcmd="shift 1"
+ [ "${1#-*}" != "$1" ] && spath="script/trees" && shcmd=":"
for g in "which git" "git config --global user.name" \
"git config --global user.email" "git_init"; do
- eval "$g 1>/dev/null 2>/dev/null || git_err \"$g\""
+ eval "$g 1>/dev/null 2>/dev/null || $err \"Unconfigured: $g\""
done
- case "${1}" in
+ case "${spath#script/}" in
version) printf "%s\nWebsite: %s\n" "$relname" "$projectsite" ;;
release) shift 1; mkrelease $@ ;;
inject) shift 1; vendor_inject $@ ;;
download) shift 1; vendor_download $@ ;;
+ roms)
+ [ $# -gt 1 ] && [ "$2" = "serprog" ] && \
+ mk -b stm32-vserprog pico-serprog && return 0
+ shift 1; x_ ./mk -b coreboot $@ ;;
*)
[ -f "$spath" ] || $err "bad command"
- shift 1; "$spath" $@ || $err "excmd: $spath $@" ;;
+ $shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;;
esac
set -u -e # some commands disable them. turn them on!
}
@@ -84,10 +89,9 @@ mkrelease()
build_release()
{
- _xm="build_release $vdir"
(
- cd "$srcdir" || $err "$_xm: !cd \"$srcdir\""
- fetch_trees
+ cd "$srcdir" || $err "$vdir: !cd \"$srcdir\""
+ ./mk -f; x_ rm -Rf tmp; rmgit .
x_ mv src/docs docs
) || $err "can't create release files"
@@ -96,45 +100,33 @@ build_release()
rm -f "$srcdir/lock" || $err "can't remove lock file in $srcdir"
(
- cd "${srcdir%/*}" || $err "$_xm: mktarball \"$srcdir\""
- mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || $err "$_xm: mksrc"
+ cd "${srcdir%/*}" || $err "$vdir: mktarball \"$srcdir\""
+ mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || $err "$vdir: mksrc"
) || $err "can't create src tarball"
[ "$mode" = "src" ] && return 0
touch "$srcdir/lock" || $err "can't make lock file in $srcdir/"
-
(
- cd "$srcdir" || $err "$_xm: 2 !cd \"$srcdir\""
- ./build roms all || $err "$_xm: roms-all"
- ./build roms serprog rp2040 || $err "$_xm: rp2040"
- ./build roms serprog stm32 || $err "$_xm: stm32"
+ cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\""
+ mk -b coreboot pico-serprog stm32-vserprog
x_ mv bin ../roms
) || $err "can't build rom images"
rm -Rf "$srcdir" || $err "!rm -Rf $srcdir"
}
-fetch_trees()
-{
- for x in $(ls -1 config/git); do
- ./update trees -f "$x" || $err "$_xm: fetch $x"
- singletree "$x" || x_ rm -Rf "src/$x/$x"
- done
- rmgit .
-}
-
fail()
{
- tmp_cleanup || printf "WARNING: can't rm tmpfiles: %s\n" "$tmpdir" 1>&2
+ tmp_cleanup || printf "WARNING: can't rm tmpfiles: %s\n" "$TMPDIR" 1>&2
err_ "${1}"
}
tmp_cleanup()
{
- [ "$tmpdir_was_set" = "n" ] || return 0
- rm -Rf "$tmpdir" || return 1
+ [ "$xbmk_parent" = "y" ] || return 0
+ [ "$TMPDIR" = "/tmp" ] || rm -Rf "$TMPDIR" || return 1
rm -f lock || return 1
}
main $@
-tmp_cleanup || err_ "can't rm tmpdir upon non-zero exit: $tmpdir"
+tmp_cleanup || err_ "can't rm TMPDIR upon non-zero exit: $TMPDIR"