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 <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/2418
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martin.roth@se-eng.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Marc Jones <marcj303@gmail.com>
diff --git a/Makefile.inc b/Makefile.inc
index 069bdfe..ad97363 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -105,10 +105,6 @@
 
 ifeq ($(CONFIG_USE_BLOBS),y)
 forgetthis:=$(shell git submodule update --init --checkout 3rdparty)
-else
-ifeq ($(CONFIG_REQUIRES_BLOB),y)
-$(error Your current configuration requires binary-only components, but you did not choose to use them)
-endif
 endif
 
 bootblock-c-ccopts:=-D__BOOT_BLOCK__ -D__PRE_RAM__
@@ -164,6 +160,11 @@
 		$(if $(wildcard $(1)$($(2)-file)), \
 			$(eval tmp-cbfs-file:= $(wildcard $(1)$($(2)-file))), \
 			$(eval tmp-cbfs-file:= $($(2)-file))) \
+		$(if $(strip $($(2)-required)), \
+			$(if $(wildcard $(tmp-cbfs-file)),, \
+				$(info This build configuration requires $($(2)-required)) \
+				$(eval FAILBUILD:=1) \
+			)) \
 		$(if $(tmp-cbfs-method), \
 			$(eval tmp-old-cbfs-file:=$(tmp-cbfs-file)) \
 			$(eval tmp-cbfs-file:=$(shell mkdir -p $(obj)/mainboard/$(MAINBOARDDIR); mktemp $(obj)/mainboard/$(MAINBOARDDIR)/cbfs-file.XXXXXX).out) \
@@ -172,7 +173,8 @@
 		$(eval $(2)-name:=) \
 		$(eval $(2)-type:=) \
 		$(eval $(2)-compression:=) \
-		$(eval $(2)-position:=)
+		$(eval $(2)-position:=) \
+		$(eval $(2)-required:=)
 
 #######################################################################
 # a variety of flags for our build