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 $@ ;;
|
||||
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"
|
||||
|
||||
|
|
|
@ -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; :
|
||||
}
|
||||
|
|
|
@ -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" && \
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in New Issue