summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaximilian Brune <maximilian.brune@9elements.com>2023-02-02 01:50:51 +0100
committerFelix Held <felix-coreboot@felixheld.de>2023-02-13 14:54:27 +0000
commite47d9fd3b6cf23b0d98bdcd2a8176cefa4c5f089 (patch)
tree58f3607bba16f9ad1959c2b191ab750d9436a6cd
parent552d287cc9c558a4818b7454777808fa2cf3386c (diff)
src/sbom/Makefile.inc: Fix variable expansion
Make does its work in two distinct phases. The first one basically initializes and expands all variables, which are not in a recipe and the second expands all variables inside recipes and then executes the recipes if necessary. Currently on some mainboards it can happen that cpu_microcode_bins variable is filled with microcode paths AFTER swid-files-y is expanded in the prerequisite for the sbom rule. That causes the "$(build-dir)/intel-microcode-%.json pattern matching rule not to be invoked. At the time, when the recipe is executed however (second phase of make), swid-files-y will now contain the cpu microcode paths from cpu_microcode_bins. That causes the goswid tooling to fail since the necessary files were never created, since "(build-dir)/intel-microcode-%.json" target was never executed. In order to trigger the expansion of swid-files-y at the second make phase (after cpu_microcode_bins is fully filled), this patch makes use of make's secondary expansion feature. Before on some boards (including samsung/lumpy) the goswid tool complained about not finding the microcode sbom files. Test: build samsung/lumpy with CONFIG_SBOM_MICROCODE=y Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I884469a388fd48be89d74ccda686dd8f299d63eb Reviewed-on: https://review.coreboot.org/c/coreboot/+/72660 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
-rw-r--r--src/sbom/Makefile.inc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sbom/Makefile.inc b/src/sbom/Makefile.inc
index b99420e44d..21e2fa4e18 100644
--- a/src/sbom/Makefile.inc
+++ b/src/sbom/Makefile.inc
@@ -85,7 +85,7 @@ endif
## Build final SBOM (Software Bill of Materials) file in uswid format
-$(build-dir)/sbom.uswid: $(build-dir)/coreboot.json $(swid-files-y) $(swid-files-compiler) | $(build-dir)/goswid $(build-dir)
+$(build-dir)/sbom.uswid: $(build-dir)/coreboot.json $$(swid-files-y) $(swid-files-compiler) | $(build-dir)/goswid $(build-dir)
echo " SBOM " $^
$(build-dir)/goswid convert -o $@ \
--parent $(build-dir)/coreboot.json \