build system: add Chrome OS futility to tools

Change-Id: I08925d110c6faa9e37107d63bfa75d0ab677d379
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: https://review.coreboot.org/13545
Tested-by: build bot (Jenkins)
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/Makefile.inc b/Makefile.inc
index 122b83a..06d3e14 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -60,6 +60,7 @@
 subdirs-y += $(wildcard src/soc/*/*) $(wildcard src/northbridge/*/*)
 subdirs-y += src/superio $(wildcard src/drivers/*) src/cpu src/vendorcode
 subdirs-y += util/cbfstool util/sconfig util/nvramtool util/broadcom
+subdirs-y += util/futility
 subdirs-y += $(wildcard src/arch/*)
 subdirs-y += src/mainboard/$(MAINBOARDDIR)
 subdirs-y += payloads/external
@@ -396,6 +397,8 @@
 
 CBOOTIMAGE:=$(objutil)/cbootimage/cbootimage
 
+FUTILITY:=$(objutil)/futility/futility
+
 subdirs-y += util/nvidia
 
 BIMGTOOL:=$(objutil)/bimgtool/bimgtool
@@ -550,7 +553,7 @@
 crossgcc-clean: clean-for-update
 	$(MAKE) -C util/crossgcc clean
 
-tools: $(objutil)/kconfig/conf $(CBFSTOOL) $(FMAPTOOL) $(RMODTOOL) $(objutil)/nvramtool/nvramtool $(ROMCC_BIN) $(objutil)/sconfig/sconfig $(IFDTOOL) $(IFDFAKE) $(CBOOTIMAGE) $(AMDFWTOOL)
+tools: $(objutil)/kconfig/conf $(CBFSTOOL) $(FMAPTOOL) $(RMODTOOL) $(objutil)/nvramtool/nvramtool $(ROMCC_BIN) $(objutil)/sconfig/sconfig $(IFDTOOL) $(IFDFAKE) $(CBOOTIMAGE) $(AMDFWTOOL) $(FUTILITY)
 
 test-toolchain:
 ifeq ($(COMPILER_OUT_OF_DATE),1)
@@ -922,6 +925,7 @@
 TOOLLIST= \
 	cbmem \
 	ectool \
+	futility \
 	inteltool \
 	intelvbttool \
 	nvramtool \
diff --git a/util/futility/Makefile b/util/futility/Makefile
new file mode 100644
index 0000000..3ce45ed
--- /dev/null
+++ b/util/futility/Makefile
@@ -0,0 +1,21 @@
+top ?= $(abspath ../..)
+objutil ?= $(top)/util
+
+HOSTCC ?= $(CC)
+VB_SOURCE ?= $(top)/3rdparty/vboot
+
+.PHONY: all
+all: $(objutil)/futility/futility
+
+.PHONY: clean
+clean:
+	$(RM) $(objutil)/futility/futility
+	$(RM) -r $(objutil)/futility/build
+
+ifneq ($(V),1)
+ifneq ($(Q),)
+.SILENT:
+endif
+endif
+
+include Makefile.inc
diff --git a/util/futility/Makefile.inc b/util/futility/Makefile.inc
new file mode 100644
index 0000000..26b218d
--- /dev/null
+++ b/util/futility/Makefile.inc
@@ -0,0 +1,13 @@
+additional-dirs += $(objutil)/futility
+
+$(objutil)/futility/build/futility/futility:
+	@printf "    MAKE       $(subst $(objutil)/,,$(@))\n"
+	$(MAKE) -C $(VB_SOURCE) \
+		BUILD=$(abspath $@/../..) \
+		CC="$(HOSTCC)" \
+		V=$(V) \
+		$(abspath $@)
+
+$(objutil)/futility/futility: $(objutil)/futility/build/futility/futility
+	cp $< $@.tmp
+	mv $@.tmp $@