tree.sh: Place target builds under tree/target/

as opposed to target/

for example:

image the command:

./mk -b u-boot amd64coreboot

This would put the U-Boot binaries here:
elf/u-boot/amd64coreboot/default/

With this change, they now go here:

elf/u-boot/x86_64/amd64coreboot/default/

This solves a problem that existed previously, where
you could modify a given tree in a multi-tree project,
but cached builds for targets branching separately off
of each tree would not be deleted, and thus not re-built.

This accomplishes such a result, without needing to
further check hashes of individual targets.

The latter will still be done, in a future change, because
this change doesn't fix another problem:

If you change a given config, e.g. targetname "foo" which
uses tree "bar", elf/foo/ would not be removed automatically
for re-build.

So this change only deletes individual target builds when
their master tree changes.

Where the target and tree are the same, this also means
elf/tree/target/

for example: seabios/default would create binaries in:

elf/seabios/default/default/

not:

elf/seabios/default/

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2025-07-08 13:20:28 +01:00
parent 9541dfcefa
commit cc82b733d3
3 changed files with 8 additions and 5 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
makeargs="UPDATED_SUBMODULES=1 CPUS=$XBMK_THREADS"
build_depend="seabios/default grub/default memtest86plus u-boot/amd64coreboot"
seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin"
seavgabiosrom="elf/seabios/default/default/libgfxinit/vgabios.bin"
pv="payload_seabios payload_memtest payload_grub payload_grubsea"
v="initmode ubootelf grub_scan_disk uboot_config grubtree grubelf pname"
+6 -3
View File
@@ -102,7 +102,7 @@ mkcorebootbin()
[ -z "$grub_scan_disk" ] && grub_scan_disk="nvme ahci ata"
[ -n "$grubtree" ] || grubtree="default"
grubelf="elf/grub/$grubtree/payload/grub.elf"
grubelf="elf/grub/$grubtree/$grubtree/payload/grub.elf"
[ "$payload_memtest" = "y" ] || payload_memtest="n"
[ "$(uname -m)" = "x86_64" ] || payload_memtest="n"
@@ -127,7 +127,7 @@ add_seabios()
[ -z "$payload_uboot" ] || [ "$payload_uboot" = "arm64" ] || \
$dry add_uboot
_seabioself="elf/seabios/default/$initmode/bios.bin.elf"
_seabioself="elf/seabios/default/default/$initmode/bios.bin.elf"
_seaname="fallback/payload" && [ "$payload_grubsea" = "y" ] && \
_seaname="seabios.elf"
@@ -191,18 +191,21 @@ add_uboot()
# aarch64 targets:
ubcbfsargs=""
ubpath="fallback/payload"
ubtree="default"
ubtarget="$target"
# override for x86/x86_64 targets:
if [ -n "$payload_uboot" ] && [ "$payload_uboot" != "arm64" ]; then
ubcbfsargs="-l 0x1110000 -e 0x1110000" # 64-bit and 32-bit
# on 64-bit, 0x1120000 is the SPL, and stub before that
ubpath="img/u-boot" # 64-bit
ubtree="x86_64"
ubtarget="amd64coreboot"
[ "$payload_uboot" = "i386" ] && ubpath="u-boot" # 32-bit
[ "$payload_uboot" = "i386" ] && ubtree="x86"
[ "$payload_uboot" = "i386" ] && ubtarget="i386coreboot"; :
fi
ubdir="elf/u-boot/$ubtarget/$uboot_config"
ubdir="elf/u-boot/$ubtree/$ubtarget/$uboot_config"
# aarch64 targets:
ubootelf="$ubdir/u-boot.elf" && [ ! -f "$ubootelf" ] && \
+1 -1
View File
@@ -264,7 +264,7 @@ gnu_setver()
check_defconfig()
{
[ -f "$defconfig" ] || $dry err "$project/$target: missing defconfig"
dest_dir="$elfdir/$target/${defconfig#"$target_dir/config/"}"
dest_dir="$elfdir/$tree/$target/${defconfig#"$target_dir/config/"}"
$dry elfcheck || return 1; : # skip build if a previous one exists
}