This fixes a race condition in the romtool by changing the Makefiles to be no
longer recursive (once again, recursive make is to be considered harmful).
Tried to (quickly) unify most of the Makefile code, but medium-term this is
going to be worked on for Kconfig support anyways.

Also fix a sign cast error in rom-mkpayload in case people want to
compile this with -W -Werror

Patch relative to coreboot-v2/util/romtool

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>


Index: tools/lzma/Makefile
===================================================================
--- tools/lzma/Makefile	(revision 4068)
+++ tools/lzma/Makefile	(working copy)
@@ -24,27 +24,27 @@
 LZMA_OBJ += lzma/CRC.o
 LZMA_OBJ += lzma/lzma-compress.o
 
-$(obj)/lzma/lzma-compress.o: lzma/minilzma.cc
-	g++ -o $@ -c -DCOMPACT $<
+$(tobj)/lzma/lzma-compress.o: $(tsrc)/lzma/minilzma.cc
+	$(CXX) $(CFLAGS) -o $@ -c -DCOMPACT $<
 
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/LZMA/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/LZMA/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/LZ/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/LZ/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/RangeCoder/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/RangeCoder/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/C/7zip/Decompress/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Decompress/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/C/7zip/Common/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Common/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/C/Common/%.cpp
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/Common/%.cpp
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
-$(obj)/lzma/%.o: lzma/%.cc
-	g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/%.cc
+	$(CXX) $(CFLAGS) -o $@ -c $<
 
Index: tools/Makefile
===================================================================
--- tools/Makefile	(revision 4068)
+++ tools/Makefile	(working copy)
@@ -1,25 +1,24 @@
-obj ?= $(shell pwd)
+tobj ?= $(shell pwd)
+tsrc ?= $(shell pwd)
 
-CC=gcc
-CFLAGS=-Wall -W -Werror -g
+TARGETS += $(tobj)/rom-mkstage $(tobj)/rom-mkpayload
 
-all: rom-mkstage rom-mkpayload
+tools: $(tobj)/rom-mkstage $(tobj)/rom-mkpayload
 
-include lzma/Makefile
+include $(tobj)/lzma/Makefile
 
-COMMON= common.o compress.o $(LZMA_OBJ)
+COMMON = common.o compress.o $(LZMA_OBJ)
 
+$(tobj)/rom-mkstage: $(tobj)/rom-mkstage.o $(patsubst %,$(tobj)/%,$(COMMON))
+	$(CXX) $(CFLAGS) -o $@ $^
 
-$(obj)/rom-mkstage: $(obj)/rom-mkstage.o $(patsubst %,$(obj)/%,$(COMMON))
-	$(CXX) -g -o $@ $(obj)/rom-mkstage.o $(patsubst %,$(obj)/%,$(COMMON))
+$(tobj)/rom-mkpayload: $(tobj)/rom-mkpayload.o $(patsubst %,$(tobj)/%,$(COMMON))
+	$(CXX) $(CFLAGS) -o $@ $^
 
-$(obj)/rom-mkpayload: $(obj)/rom-mkpayload.o $(patsubst %,$(obj)/%,$(COMMON))
-	$(CXX) -o $@ $(obj)/rom-mkpayload.o $(patsubst %,$(obj)/%,$(COMMON))
+$(tobj)/%.o: %.c
+	$(CC) $(CFLAGS) -c -o $@ $<
 
-$(obj)/%.o: %.c
-	$(CC) -Wall -Werror -g -c -o $@ $<
+tools-clean:
+	rm -f $(tobj)/rom-mkpayload.o $(tobj)/rom-mkstage.o $(patsubst %,$(tobj)/%,$(COMMON))
+	rm -f $(tobj)/rom-mkpayload $(tobj)/rom-mkstage
 
-clean:
-	@ rm -f rom-mkpayload.o rom-mkstage.o $(COMMON)
-	@ rm -f rom-mkpayload rom-mkstage
-
Index: tools/rom-mkpayload.c
===================================================================
--- tools/rom-mkpayload.c	(revision 4068)
+++ tools/rom-mkpayload.c	(working copy)
@@ -163,7 +163,7 @@
 		/* If the compressed section is larger, then use the
 		   original stuff */
 
-		if (len > phdr[i].p_filesz) {
+		if ((unsigned int)len > phdr[i].p_filesz) {
 			segs[segments].compression = 0;
 			segs[segments].len = htonl(phdr[i].p_filesz);
 
Index: Makefile
===================================================================
--- Makefile	(revision 4068)
+++ Makefile	(working copy)
@@ -6,11 +6,11 @@
 
 COMMANDS=create.o bootblock.o delete.o add.o print.o resize.o
 OBJ=$(COMMANDS) romtool.o util.o fs.o
+INC=romtool.h romfs.h
 
 CC=gcc
-CFLAGS=-g -Wall -W #-Werror
+CFLAGS=-g -Wall # -W -Werror
 
-H=romtool.h
 DESTDIR ?= /usr/local/bin
 
 all: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
@@ -18,10 +18,12 @@
 $(obj)/romtool: $(patsubst %,$(obj)/%,$(OBJ))
 	$(CC) -o $@ $(patsubst %,$(obj)/%,$(OBJ))
 
-$(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage:
-	$(MAKE) -C tools/ obj=$(obj)/tools $(patsubst tools/%, %, $@)
+tobj = $(obj)/tools
+tsrc = $(shell pwd)/tools
 
-$(obj)/%.o: %.c
+include tools/Makefile
+
+$(obj)/%.o: %.c $(INC)
 	$(CC) $(CFLAGS) -c -o $@ $<
 
 install: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
@@ -33,6 +35,6 @@
 tags: 
 	ctags *.[ch] */*.[ch]
 
-clean:
-	$(MAKE) -C tools/ clean
+clean: tools-clean
 	rm -f $(patsubst %,$(obj)/%,$(OBJ)) $(obj)/romtool
+
