summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-06-27 15:55:56 +0100
committerLeah Rowe <leah@libreboot.org>2024-06-27 15:55:56 +0100
commit7a15ba18cb43d723234751b0d6ff6b82fc615f97 (patch)
tree70baac69df608aa0f800d4ac06434813b828a008
parenteb9c1872b6e66bed49c267125daeb1c060f4f392 (diff)
trees: avoid kconfig make commands generically
don't hardcode the check based on whether the current project is grub. instead, define "btype" in target.cfg if unset, we assume kconfig and permit kconfig commands e.g. make menuconfig, make silentoldconfig, etc this is to avoid the deadliest of sins: project-specific hacks Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/grub/default/target.cfg1
-rw-r--r--config/grub/nvme/target.cfg1
-rw-r--r--config/grub/xhci/target.cfg1
-rw-r--r--config/uefitool/target.cfg1
-rwxr-xr-xscript/trees18
5 files changed, 13 insertions, 9 deletions
diff --git a/config/grub/default/target.cfg b/config/grub/default/target.cfg
index fa5735e9..df558a94 100644
--- a/config/grub/default/target.cfg
+++ b/config/grub/default/target.cfg
@@ -3,3 +3,4 @@ rev="8719cc2040368d43ab2de0b6e1b850b2c9cfc5b7"
bootstrapargs="--gnulib-srcdir=gnulib/ --no-git"
autoconfargs="--with-platform=coreboot --disable-werror"
makeargs="FS_PAYLOAD_MODULES=\"\""
+btype="autohell"
diff --git a/config/grub/nvme/target.cfg b/config/grub/nvme/target.cfg
index a85c97f5..2f84f110 100644
--- a/config/grub/nvme/target.cfg
+++ b/config/grub/nvme/target.cfg
@@ -3,3 +3,4 @@ rev="8719cc2040368d43ab2de0b6e1b850b2c9cfc5b7"
bootstrapargs="--gnulib-srcdir=gnulib/ --no-git"
autoconfargs="--with-platform=coreboot --disable-werror"
makeargs="FS_PAYLOAD_MODULES=\"\""
+btype="autohell"
diff --git a/config/grub/xhci/target.cfg b/config/grub/xhci/target.cfg
index 34ab2d24..2c6d6080 100644
--- a/config/grub/xhci/target.cfg
+++ b/config/grub/xhci/target.cfg
@@ -3,3 +3,4 @@ rev="8719cc2040368d43ab2de0b6e1b850b2c9cfc5b7"
bootstrapargs="--gnulib-srcdir=gnulib/ --no-git"
autoconfargs="--with-platform=coreboot --disable-werror"
makeargs="FS_PAYLOAD_MODULES=\"\""
+btype="autohell"
diff --git a/config/uefitool/target.cfg b/config/uefitool/target.cfg
index 98d5e03d..909568a7 100644
--- a/config/uefitool/target.cfg
+++ b/config/uefitool/target.cfg
@@ -1 +1,2 @@
cmakedir="UEFIExtract"
+btype="cmake"
diff --git a/script/trees b/script/trees
index 13c818ab..4d71dbbe 100755
--- a/script/trees
+++ b/script/trees
@@ -11,8 +11,8 @@ set -u -e
cbmakeargs="UPDATED_SUBMODULES=1 CPUS=$XBMK_THREADS"
eval `setvars "" xarch cdir config config_name xlang mode makeargs \
- listfile project target target_dir targets tree _f target1 bootstrapargs \
- autoconfargs cmakedir elfdir autogenargs xtree`
+ elfdir project target target_dir targets tree _f target1 bootstrapargs \
+ autoconfargs cmakedir listfile autogenargs xtree btype`
main()
{
@@ -63,7 +63,7 @@ build_projects()
fetch_project_repo; return 0
fi
- load_project_config "$cfgsdir"
+ load_project_config "$cfgsdir" || return 0
[ -f "$listfile" ] || listfile="" # optional on single-tree
dest_dir="$elfdir"
@@ -131,7 +131,7 @@ handle_src_tree()
fetch_project_trees; return 1
fi
- load_project_config "$target_dir"
+ load_project_config "$target_dir" || return 1
x_ mkdir -p "$elfdir/$target"
chkvars tree
@@ -153,8 +153,10 @@ handle_src_tree()
load_project_config()
{
eval `setvars "" xarch xlang tree bootstrapargs autoconfargs xtree \
- tree_depend makeargs`
- eval `setcfg "$1/target.cfg" 0`; return 0
+ tree_depend makeargs btype`
+ eval `setcfg "$1/target.cfg" 0`
+ [ -z "$btype" ] || [ "${mode%config}" = "$mode" ] || \
+ return 1; return 0
}
check_cross_compiler()
@@ -213,11 +215,9 @@ elfcheck()
handle_makefile()
{
- [ "$project" = "grub" ] && [ "${mode%config}" != "$mode" ] && return 0
-
check_makefile "$cdir" && x_ make clean -C "$cdir"
x_ cp "$config" "$cdir/.config"
- [ -n "$mode" ] || [ "$project" = "grub" ] || make -C "$cdir" \
+ [ -n "$mode" ] || [ -n "$btype" ] || make -C "$cdir" \
silentoldconfig || make -C "$cdir" oldconfig || :
run_make_command || $err "handle_makefile $cdir: no makefile!"