diff options
Diffstat (limited to 'build')
-rwxr-xr-x | build | 48 |
1 files changed, 20 insertions, 28 deletions
@@ -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" |