cbfstool: Copy generated files to the build hierarchy before use

Instead of writing to the source tree (which we should generally avoid),
copy the pre-generated files (from lex and yacc) to $(objutil). Adapt
include paths and rules so they're found.

Change-Id: Id33be6d1dccf9a1b5857a29c55120dcc8f8db583
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: http://review.coreboot.org/10252
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/util/cbfstool/Makefile.inc b/util/cbfstool/Makefile.inc
index 84ab724..dde8c68 100644
--- a/util/cbfstool/Makefile.inc
+++ b/util/cbfstool/Makefile.inc
@@ -47,12 +47,18 @@
 TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
 TOOLCPPFLAGS += -D_POSIX_C_SOURCE=200809L # strdup() from string.h
 TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
+TOOLCPPFLAGS += -I$(top)/util/cbfstool
+TOOLCPPFLAGS += -I$(objutil)/cbfstool
 TOOLLDFLAGS ?=
 
 ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
 TOOLFLAGS+=-mno-ms-bitfields
 endif
 
+$(objutil)/cbfstool/%.o: $(objutil)/cbfstool/%.c
+	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
+	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
+
 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
@@ -90,12 +96,12 @@
 # Tolerate lzma sdk warnings
 $(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
 
-$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_parser.h
-$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_scanner.h
+$(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_parser.h
+$(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_scanner.h
 $(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
 $(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
 
-$(top)/util/cbfstool/%: $(top)/util/cbfstool/%_shipped
+$(objutil)/cbfstool/%: $(top)/util/cbfstool/%_shipped
 	mkdir -p $(dir $@)
 	cp $< $@