nvidia-cbootimage: integrate into coreboot make

Add rules for building the nvidia-cbootimage utility and add dependencies
to the tegra124 platform.

Change-Id: Ia9f26981bccd217fe79e1b5dd432ee7da868d22a
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6851
Reviewed-by: Aaron Durbin <adurbin@google.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
diff --git a/Makefile.inc b/Makefile.inc
index 00e1a6c..c41945a 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -228,7 +228,8 @@
 CFLAGS_common += -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer
 
 additional-dirs := $(objutil)/cbfstool $(objutil)/romcc $(objutil)/ifdtool \
-		   $(objutil)/ifdfake $(objutil)/options $(objutil)/fletcher
+		   $(objutil)/ifdfake $(objutil)/options $(objutil)/fletcher \
+		   $(objutil)/cbootimage
 
 #######################################################################
 # generate build support files
@@ -305,6 +306,17 @@
 	@printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
 	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
 
+CBOOTIMAGE:=$(objutil)/cbootimage/cbootimage
+
+$(CBOOTIMAGE): $(top)/util/nvidia-cbootimage/Makefile
+	@printf "    MAKE     $(subst $(obj)/,,$(@))\n"
+	$(MAKE) -C $(top)/util/nvidia-cbootimage
+	cp $(top)/util/nvidia-cbootimage/src/cbootimage $@
+
+$(top)/util/nvidia-cbootimage/Makefile:
+	cd $(top)/util/nvidia-cbootimage/; \
+	./autogen.sh >/dev/null
+
 #######################################################################
 # needed objects that every mainboard uses
 # Creation of these is architecture and mainboard independent
@@ -413,7 +425,7 @@
 crossgcc-clean: clean-for-update
 	$(MAKE) -C util/crossgcc clean
 
-tools: $(objutil)/kconfig/conf $(objutil)/cbfstool/cbfstool $(objutil)/cbfstool/rmodtool $(objutil)/nvramtool/nvramtool $(ROMCC_BIN) $(objutil)/sconfig/sconfig $(IFDTOOL) $(IFDFAKE)
+tools: $(objutil)/kconfig/conf $(objutil)/cbfstool/cbfstool $(objutil)/cbfstool/rmodtool $(objutil)/nvramtool/nvramtool $(ROMCC_BIN) $(objutil)/sconfig/sconfig $(IFDTOOL) $(IFDFAKE) $(CBOOTIMAGE)
 
 ###########################################################################
 # Common recipes for all stages
diff --git a/src/soc/nvidia/tegra124/Makefile.inc b/src/soc/nvidia/tegra124/Makefile.inc
index a63eb35..b1f5998 100644
--- a/src/soc/nvidia/tegra124/Makefile.inc
+++ b/src/soc/nvidia/tegra124/Makefile.inc
@@ -1,5 +1,3 @@
-CBOOTIMAGE = cbootimage
-
 bootblock-y += bootblock.c
 bootblock-y += bootblock_asm.S
 bootblock-y += cbfs.c
@@ -40,13 +38,13 @@
 $(objcbfs)/bootblock.raw.elf: $(objcbfs)/bootblock.elf
 	cp $< $@
 
-$(obj)/generated/bct.bin: $(obj)/generated/bct.cfg
+$(obj)/generated/bct.bin: $(obj)/generated/bct.cfg $(CBOOTIMAGE)
 	@printf "    CBOOTIMAGE $(subst $(obj)/,,$(@))\n"
 	$(CBOOTIMAGE) -gbct --soc tegra124 $< $@
 
 BCT_BIN = $(obj)/generated/bct.bin
 BCT_WRAPPER = $(obj)/generated/bct.wrapper
-$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin $(BCT_BIN)
+$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin $(BCT_BIN) $(CBOOTIMAGE)
 	echo "Version    = 1;" > $(BCT_WRAPPER)
 	echo "Redundancy = 1;" >> $(BCT_WRAPPER)
 	echo "Bctfile    = $(BCT_BIN);" >> $(BCT_WRAPPER)