summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-07-28 13:30:25 +0100
committerLeah Rowe <leah@libreboot.org>2024-07-28 13:35:31 +0100
commit59894ed555ecccf0346a7942e208171a21412d9b (patch)
tree46f4cc65d65a2c6240876ba724cee521a2fe2992
parent7fa6052de036f81b54a93bf2f707f563205f176b (diff)
lib.sh: new function mk() to handle trees in bulk
single-tree projects cannot be handled in bulk, e.g. ./mk -f project1 project2 project3 that is still the case, from the shell, but internally it is now possible: mk -f project1 project2 project3 mk() is a function that simply handles the given flag, and all projects specified. it does not handle cases without argument, for example you cannot do: mk -f arguments must be provided. it can be used internally, to simplify cases where multiple single-tree projects must be handled, but *also* allows multi-tree projects to be specified, without being able to actually handle trees within that multi-tree project; so for example, you can only specify coreboot, and then it would run on every coreboot tree. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-xbuild12
-rw-r--r--include/lib.sh8
-rw-r--r--include/vendor.sh4
-rwxr-xr-xscript/trees4
4 files changed, 14 insertions, 14 deletions
diff --git a/build b/build
index ffed6708..ce744339 100755
--- a/build
+++ b/build
@@ -36,11 +36,9 @@ main()
inject) shift 1; vendor_inject $@ ;;
download) shift 1; vendor_download $@ ;;
roms)
- if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then
- x_ ./mk -b stm32-vserprog
- x_ ./mk -b pico-serprog; return 0
- fi; shift 1
- x_ ./mk -b coreboot $@ ;;
+ [ $# -gt 1 ] && [ "$2" = "serprog" ] && \
+ mk -b stm32-vserprog pico-serprog && return 0
+ shift 1; x_ ./mk -b coreboot $@ ;;
*)
[ -f "$spath" ] || $err "bad command"
$shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;;
@@ -110,9 +108,7 @@ build_release()
touch "$srcdir/lock" || $err "can't make lock file in $srcdir/"
(
cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\""
- ./mk -b coreboot || $err "$vdir: roms-all"
- ./mk -b pico-serprog || $err "$vdir: rp2040"
- ./mk -b stm32-vserprog || $err "$vdir: stm32"
+ mk -b coreboot pico-serprog stm32-vserprog
x_ mv bin ../roms
) || $err "can't build rom images"
diff --git a/include/lib.sh b/include/lib.sh
index 586ecde1..2c9cd0d4 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -212,3 +212,11 @@ cbfs()
lzma="-c lzma" && [ $# -gt 3 ] && lzma="-t raw"
x_ "$cbfstool" "$1" $ccmd -f "$2" -n "$3" $lzma
}
+
+mk()
+{
+ mk_flag="$1" || $err "No argument given"
+ shift 1 && for mk_arg in $@; do
+ ./mk $mk_flag $mk_arg || $err "./mk $mk_flag $mk_arg"; :
+ done; :
+}
diff --git a/include/vendor.sh b/include/vendor.sh
index a6e82271..ea1d4f0a 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -48,9 +48,7 @@ readkconfig()
bootstrap()
{
x_ ./mk -f coreboot ${cbdir##*/}
- for d in uefitool biosutilities bios_extract; do
- x_ ./mk -b "$d"
- done
+ mk -b uefitool biosutilities bios_extract
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
[ -n "$MRC_refcode_cbtree" ] && \
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
diff --git a/script/trees b/script/trees
index 227b2216..01df28a0 100755
--- a/script/trees
+++ b/script/trees
@@ -36,9 +36,7 @@ main()
project="${OPTARG#src/}"; shift 2
done
[ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"
- [ -z "$project" ] && for p in $(ls -1 config/git); do
- ./mk $_f "$p" || $err "!./mk $_f $p"; :
- done && return 1
+ [ -z "$project" ] && mk $_f $(ls -1 config/git) && return 1
[ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined"