summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild60
1 files changed, 32 insertions, 28 deletions
diff --git a/build b/build
index d3e86519..ce778e2a 100755
--- a/build
+++ b/build
@@ -16,12 +16,12 @@ 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 ] && badcmd
+ [ $# -lt 1 ] && $err "bad command"
spath="script/$1"
for g in "which git" "git config --global user.name" \
@@ -34,8 +34,14 @@ main()
release) shift 1; mkrelease $@ ;;
inject) shift 1; vendor_inject $@ ;;
download) shift 1; vendor_download $@ ;;
+ roms)
+ if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then
+ x_ ./update trees -b stm32-vserprog
+ x_ ./update trees -b pico-serprog; return 0
+ fi; shift 1
+ x_ ./update trees -b coreboot $@ ;;
*)
- [ -f "$spath" ] || badcmd
+ [ -f "$spath" ] || $err "bad command"
shift 1; "$spath" $@ || $err "excmd: $spath $@" ;;
esac
set -u -e # some commands disable them. turn them on!
@@ -45,7 +51,7 @@ git_init()
{
[ -L ".git" ] && return 1
[ -e ".git" ] && return 0
- eval "$(setvars "$(date -Rud @$versiondate)" cdate _nogit)"
+ eval `setvars "$(date -Rud @$versiondate)" cdate _nogit`
git init || return 1
git add -A . || return 1
@@ -54,17 +60,23 @@ git_init()
git tag -a "$version" -m "$projectname $version" || return 1
}
+git_err()
+{
+ printf "You need to set git name/email, like so:\n%s\n\n" "$1" 1>&2
+ $err "Git name/email not configured"
+}
+
mkrelease()
{
export XBMK_RELEASE="y"
vdir="release"
while getopts d:m: option; do
- [ -z "$OPTARG" ] && badcmd "empty argument not allowed"
+ [ -z "$OPTARG" ] && $err "empty argument not allowed"
case "$option" in
d) vdir="$OPTARG" ;;
m) mode="$OPTARG" ;;
- *) badcmd "invalid option '-$option'" ;;
+ *) $err "invalid option '-$option'" ;;
esac
done
@@ -84,10 +96,11 @@ mkrelease()
build_release()
{
- _xm="build_release $vdir"
(
- cd "$srcdir" || $err "$_xm: !cd \"$srcdir\""
- fetch_trees
+ cd "$srcdir" || $err "$vdir: !cd \"$srcdir\""
+ ./update trees -f
+ rmgit .
+ x_ rm -Rf tmp
x_ mv src/docs docs
) || $err "can't create release files"
@@ -96,45 +109,36 @@ 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\""
+ ./update trees -b coreboot || $err "$vdir: roms-all"
+ ./update trees -b pico-serprog || $err "$vdir: rp2040"
+ ./update trees -b stm32-vserprog || $err "$vdir: stm32"
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"