summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-07-10 13:06:32 +0100
committerLeah Rowe <leah@libreboot.org>2024-07-10 13:41:15 +0100
commit459db1cc2eaa1d40543f7f63345ea4ca27daad9a (patch)
tree578f1450e2e764c262e77294d88e5582f39e5846
parente9f66ec4a80a2904840b005cd41fbf9b10d1871c (diff)
trees: remove project-specific hacks
move the coreboot-specific includes into mkhelper.cfg for that project. on some projects, we need variables from mkhelper.cfg to be global, so I was including serprog and coreboot mkhelper.cfg files in this script. instead, set a new variable "mkhelpercfg" pointing to the config file. if it doesn't exist, create and then point to a temporary (empty) mkhelper.cfg file. the rom.sh include has been moved to coreboot mkhelper.cfg The only remaining project-specific logic, in this trees script, is now the coreboot crossgcc handling, but this needs to be there as it's also used to build U-Boot. The way this now works, certain includes are done twice. For example, include/rom.sh will be included once globally, outside of main(), and then again in configure_project(). This means that certain functions will be defined twice. I'm uncertain if shell has anything equivalent to an ifdef guard as in C, but we actually want this here anyway, and it shouldn't cause any problems. It's a bit of a hack, but otherwise results in much cleaner code. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/data/coreboot/mkhelper.cfg2
-rw-r--r--config/data/grub/mkhelper.cfg2
-rw-r--r--config/data/pico-serprog/mkhelper.cfg2
-rw-r--r--config/data/seabios/mkhelper.cfg0
-rw-r--r--config/data/stm32-vserprog/mkhelper.cfg2
-rwxr-xr-xscript/trees25
6 files changed, 23 insertions, 10 deletions
diff --git a/config/data/coreboot/mkhelper.cfg b/config/data/coreboot/mkhelper.cfg
index a1c48e63..de07b4c1 100644
--- a/config/data/coreboot/mkhelper.cfg
+++ b/config/data/coreboot/mkhelper.cfg
@@ -1,3 +1,5 @@
+. "include/rom.sh"
+
makeargs="UPDATED_SUBMODULES=1 CPUS=$XBMK_THREADS"
build_depend="seabios/default grub/default memtest86plus"
diff --git a/config/data/grub/mkhelper.cfg b/config/data/grub/mkhelper.cfg
index ff93a27c..b75cf9d7 100644
--- a/config/data/grub/mkhelper.cfg
+++ b/config/data/grub/mkhelper.cfg
@@ -1,3 +1,5 @@
+. "include/rom.sh"
+
bootstrapargs="--gnulib-srcdir=gnulib/ --no-git"
autoconfargs="--with-platform=coreboot --disable-werror"
makeargs="FS_PAYLOAD_MODULES=\"\""
diff --git a/config/data/pico-serprog/mkhelper.cfg b/config/data/pico-serprog/mkhelper.cfg
index 9f6e54cc..e424e2f4 100644
--- a/config/data/pico-serprog/mkhelper.cfg
+++ b/config/data/pico-serprog/mkhelper.cfg
@@ -1,3 +1,5 @@
+. "include/rom.sh"
+
sersrc="src/pico-serprog"
serx="$sersrc/build/pico_serprog.uf2"
picosdk="src/pico-sdk"
diff --git a/config/data/seabios/mkhelper.cfg b/config/data/seabios/mkhelper.cfg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/config/data/seabios/mkhelper.cfg
diff --git a/config/data/stm32-vserprog/mkhelper.cfg b/config/data/stm32-vserprog/mkhelper.cfg
index 9d02f799..8f45d7fd 100644
--- a/config/data/stm32-vserprog/mkhelper.cfg
+++ b/config/data/stm32-vserprog/mkhelper.cfg
@@ -1,3 +1,5 @@
+. "include/rom.sh"
+
sersrc="src/stm32-vserprog"
serx="$sersrc/stm32-vserprog.hex"
serdir="$sersrc/boards"
diff --git a/script/trees b/script/trees
index 1d8c755f..e8f8756f 100755
--- a/script/trees
+++ b/script/trees
@@ -8,15 +8,11 @@ set -u -e
. "include/lib.sh"
. "include/git.sh"
-. "include/rom.sh"
-
-. "config/data/pico-serprog/mkhelper.cfg"
-. "config/data/coreboot/mkhelper.cfg"
eval `setvars "" xarch cdir defconfig cmakedir xlang mode makeargs elfdir cmd \
project target target_dir targets xtree _f release bootstrapargs mkhelper \
autoconfargs listfile autogenargs btype tree rev tree_depend build_depend \
- premake postmake`
+ premake postmake mkhelpercfg`
main()
{
@@ -54,10 +50,16 @@ main()
listfile="$datadir/build.list" # needed on multi, optional on single
[ -f "$listfile" ] || listfile="" # optional on all projects
+ mkhelpercfg="$datadir/mkhelper.cfg"
+
+ targets="$@"
remkdir "${tmpgit%/*}"
+}
- cmd="build_targets" && singletree "$project" && cmd="build_project"
- $cmd $@
+handle_project()
+{
+ cmd="build_targets $targets" && singletree "$project" && \
+ cmd="build_project"; $cmd
[ -f "$listfile" ] || return 0
[ -z "$mode" ] && [ "$_f" = "-b" ] && \
@@ -84,9 +86,8 @@ build_targets()
{
[ -d "$cfgsdir" ] || $err "directory, $cfgsdir, does not exist"
- # Build for all targets if no argument is given
- targets="$(ls -1 "$cfgsdir")" || $err "Can't get options for $cfgsdir"
- [ $# -gt 0 ] && targets=$@
+ [ $# -gt 0 ] || \
+ targets="$(ls -1 "$cfgsdir")" || $err "$cfgsdir: Canot get options"
handle_targets
}
@@ -288,3 +289,7 @@ copy_elf()
}
main $@
+e "$mkhelpercfg" f missing && mkhelpercfg="$TMPDIR/mkhelper.cfg" && x_ \
+ touch "$mkhelpercfg"
+. "$mkhelpercfg"
+handle_project