New cbfstool. Works without mmap or fork/exec and
supports fixed location files. Some parts are salvaged
from the pre-commit version (esp. stage and payload creation),
others are completely rewritten (eg. the main loop that handles
file addition)

Also adapt newconfig (we don't need cbfs/tools anymore) and fix
some minor issues in the cbfstool-README.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4630 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/util/cbfstool/Makefile.inc b/util/cbfstool/Makefile.inc
index c93e1ca..74bb5c0 100644
--- a/util/cbfstool/Makefile.inc
+++ b/util/cbfstool/Makefile.inc
@@ -2,34 +2,56 @@
 ifdef POST_EVALUATION
 
 cbfsobj :=
-# commands
-cbfsobj += create.o
-cbfsobj += bootblock.o
-cbfsobj += delete.o
-cbfsobj += extract.o 
-cbfsobj += add.o 
-cbfsobj += print.o
-cbfsobj += resize.o
-# main tool
+cbfsobj += common.o
+cbfsobj += compress.o
+cbfsobj += minilzma.o
+cbfsobj += LZMAEncoder.o
+cbfsobj += LZInWindow.o
+cbfsobj += RangeCoderBit.o
+cbfsobj += StreamUtils.o
+cbfsobj += OutBuffer.o
+cbfsobj += Alloc.o
+cbfsobj += CRC.o
+cbfsobj += cbfs-mkstage.o
+cbfsobj += cbfs-mkpayload.o
 cbfsobj += cbfstool.o
-cbfsobj += util.o
-cbfsobj += fs.o
 
-cbfsinc := cbfstool.h cbfs.h
+CBFSTOOLFLAGS=-m32 -DCOMPACT
 
 $(obj)/util/cbfstool:
 	mkdir -p $@
-	mkdir -p $@/tools/lzma
 
 $(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/%.c
 	printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
-	$(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
+	$(HOSTCC) $(CBFSTOOLFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 
-$(obj)/util/cbfstool/cbfstool: $(obj)/util/cbfstool $(obj)/util/cbfstool/tools/cbfs-mkpayload $(obj)/util/cbfstool/tools/cbfs-mkstage $(addprefix $(obj)/util/cbfstool/,$(cbfsobj))
-	printf "    HOSTCC     $(subst $(obj)/,,$(@)) (link)\n"
-	$(HOSTCC) -o $@ $(addprefix $(obj)/util/cbfstool/,$(cbfsobj))
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.cc
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/7zip/Compress/LZMA/%.cpp
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/7zip/Compress/LZ/%.cpp
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/7zip/Compress/RangeCoder/%.cpp
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/7zip/Common/%.cpp
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/Common/%.cpp
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@))\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) $(HOSTCXXFLAGS) -c -o $@ $<
+
+$(obj)/util/cbfstool/cbfstool: $(obj)/util/cbfstool $(addprefix $(obj)/util/cbfstool/,$(cbfsobj))
+	printf "    HOSTCXX    $(subst $(obj)/,,$(@)) (link)\n"
+	$(HOSTCXX) $(CBFSTOOLFLAGS) -o $@ $(addprefix $(obj)/util/cbfstool/,$(cbfsobj))
 
 endif
 
-include $(top)/util/cbfstool/tools/Makefile.inc
-