build system: Retire REQUIRES_BLOB

REQUIRES_BLOB assumes that all blob files come from the 3rdparty directory,
builds failed when all files were configured to point to other sources.

This change modifies the blob mechanism so that cbfs-files can be tagged as
"required" with some specification what is missing.

If the configured files can't be found (wrong path, missing file), the build
system returns a list of descriptions, then aborts.

Change-Id: Icc128e3afcee8acf49bff9409b93af7769db3517
Signed-off-by: Patrick Georgi <>
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <>
Reviewed-by: Paul Menzel <>
Reviewed-by: Marc Jones <>
diff --git a/Makefile b/Makefile
index 92b4d0b..9aafe7c 100644
--- a/Makefile
+++ b/Makefile
@@ -232,6 +232,9 @@
 # collect all object files eligible for building
 $(eval $(call evaluate_subdirs))
+ifeq ($(FAILBUILD),1)
+$(error cannot continue build)
 # Eliminate duplicate mentions of source files in a class
 $(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))