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>3050wip
parent
7fa6052de0
commit
59894ed555
12
build
12
build
|
@ -36,11 +36,9 @@ main()
|
||||||
inject) shift 1; vendor_inject $@ ;;
|
inject) shift 1; vendor_inject $@ ;;
|
||||||
download) shift 1; vendor_download $@ ;;
|
download) shift 1; vendor_download $@ ;;
|
||||||
roms)
|
roms)
|
||||||
if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then
|
[ $# -gt 1 ] && [ "$2" = "serprog" ] && \
|
||||||
x_ ./mk -b stm32-vserprog
|
mk -b stm32-vserprog pico-serprog && return 0
|
||||||
x_ ./mk -b pico-serprog; return 0
|
shift 1; x_ ./mk -b coreboot $@ ;;
|
||||||
fi; shift 1
|
|
||||||
x_ ./mk -b coreboot $@ ;;
|
|
||||||
*)
|
*)
|
||||||
[ -f "$spath" ] || $err "bad command"
|
[ -f "$spath" ] || $err "bad command"
|
||||||
$shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;;
|
$shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;;
|
||||||
|
@ -110,9 +108,7 @@ build_release()
|
||||||
touch "$srcdir/lock" || $err "can't make lock file in $srcdir/"
|
touch "$srcdir/lock" || $err "can't make lock file in $srcdir/"
|
||||||
(
|
(
|
||||||
cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\""
|
cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\""
|
||||||
./mk -b coreboot || $err "$vdir: roms-all"
|
mk -b coreboot pico-serprog stm32-vserprog
|
||||||
./mk -b pico-serprog || $err "$vdir: rp2040"
|
|
||||||
./mk -b stm32-vserprog || $err "$vdir: stm32"
|
|
||||||
x_ mv bin ../roms
|
x_ mv bin ../roms
|
||||||
) || $err "can't build rom images"
|
) || $err "can't build rom images"
|
||||||
|
|
||||||
|
|
|
@ -212,3 +212,11 @@ cbfs()
|
||||||
lzma="-c lzma" && [ $# -gt 3 ] && lzma="-t raw"
|
lzma="-c lzma" && [ $# -gt 3 ] && lzma="-t raw"
|
||||||
x_ "$cbfstool" "$1" $ccmd -f "$2" -n "$3" $lzma
|
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; :
|
||||||
|
}
|
||||||
|
|
|
@ -48,9 +48,7 @@ readkconfig()
|
||||||
bootstrap()
|
bootstrap()
|
||||||
{
|
{
|
||||||
x_ ./mk -f coreboot ${cbdir##*/}
|
x_ ./mk -f coreboot ${cbdir##*/}
|
||||||
for d in uefitool biosutilities bios_extract; do
|
mk -b uefitool biosutilities bios_extract
|
||||||
x_ ./mk -b "$d"
|
|
||||||
done
|
|
||||||
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
|
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
|
||||||
[ -n "$MRC_refcode_cbtree" ] && \
|
[ -n "$MRC_refcode_cbtree" ] && \
|
||||||
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
|
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
|
||||||
|
|
|
@ -36,9 +36,7 @@ main()
|
||||||
project="${OPTARG#src/}"; shift 2
|
project="${OPTARG#src/}"; shift 2
|
||||||
done
|
done
|
||||||
[ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"
|
[ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"
|
||||||
[ -z "$project" ] && for p in $(ls -1 config/git); do
|
[ -z "$project" ] && mk $_f $(ls -1 config/git) && return 1
|
||||||
./mk $_f "$p" || $err "!./mk $_f $p"; :
|
|
||||||
done && return 1
|
|
||||||
|
|
||||||
[ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined"
|
[ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue