summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-04-04 22:18:26 +0000
committerStefan Reinauer <stepan@openbios.org>2009-04-04 22:18:26 +0000
commit14ad50edf6aeeff019cb3f446a8677c6eb98756c (patch)
tree0b2883914b2aab73678ce18b89357fcf8d1c186b
parent16e34b98a1f7acb3a37579388df585fbc0fa10e5 (diff)
downloadcoreboot-14ad50edf6aeeff019cb3f446a8677c6eb98756c.tar.xz
This fixes a race condition (revealed by my other check-in r4067) 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> and Acked-by: Stefan Reinauer <stepan@coresystems.de> in order to get the tree working decently asap git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4069 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--util/romtool/Makefile16
-rw-r--r--util/romtool/tools/Makefile31
-rw-r--r--util/romtool/tools/lzma/Makefile32
-rw-r--r--util/romtool/tools/rom-mkpayload.c2
4 files changed, 41 insertions, 40 deletions
diff --git a/util/romtool/Makefile b/util/romtool/Makefile
index 3b2e3a56dc..3ef1748095 100644
--- a/util/romtool/Makefile
+++ b/util/romtool/Makefile
@@ -6,11 +6,11 @@ obj ?= $(shell pwd)
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 @@ all: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
$(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 @@ install: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
tags:
ctags *.[ch] */*.[ch]
-clean:
- $(MAKE) -C tools/ clean
+clean: tools-clean
rm -f $(patsubst %,$(obj)/%,$(OBJ)) $(obj)/romtool
+
diff --git a/util/romtool/tools/Makefile b/util/romtool/tools/Makefile
index e711f500ab..f5f0df8add 100644
--- a/util/romtool/tools/Makefile
+++ b/util/romtool/tools/Makefile
@@ -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 $@ $<
-
-clean:
- @ rm -f rom-mkpayload.o rom-mkstage.o $(COMMON)
- @ rm -f rom-mkpayload rom-mkstage
+tools-clean:
+ rm -f $(tobj)/rom-mkpayload.o $(tobj)/rom-mkstage.o $(patsubst %,$(tobj)/%,$(COMMON))
+ rm -f $(tobj)/rom-mkpayload $(tobj)/rom-mkstage
diff --git a/util/romtool/tools/lzma/Makefile b/util/romtool/tools/lzma/Makefile
index b012a93685..9ac4ca2ff6 100644
--- a/util/romtool/tools/lzma/Makefile
+++ b/util/romtool/tools/lzma/Makefile
@@ -24,27 +24,27 @@ LZMA_OBJ += lzma/OutBuffer.o lzma/Alloc.o
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 $<
diff --git a/util/romtool/tools/rom-mkpayload.c b/util/romtool/tools/rom-mkpayload.c
index 54fde24cec..190e53a9c8 100644
--- a/util/romtool/tools/rom-mkpayload.c
+++ b/util/romtool/tools/rom-mkpayload.c
@@ -163,7 +163,7 @@ int parse_elf(unsigned char *input, unsigned char **output, int algo,
/* 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);