Various fixes to cbfstool.
[coreboot.git] / util / cbfstool / Makefile
index 39af38b2805266eaf97d649b66e03dcb87f9c3ec..0b61342bd2379919ced89579f4e07f1d4ba8ee63 100644 (file)
@@ -1,40 +1,49 @@
-#
-#
-#
-
 obj ?= $(shell pwd)
 
-COMMANDS=create.o bootblock.o delete.o extract.o add.o print.o resize.o
-OBJ=$(COMMANDS) cbfstool.o util.o fs.o
-INC=cbfstool.h cbfs.h
+HOSTCXX  ?= g++
+HOSTCC   ?= gcc
+CFLAGS   ?= -g -Wall
+CXXFLAGS ?=-DCOMPACT $(CFLAGS)
+LDFLAGS  ?= -g
+
+BINARY:=$(obj)/cbfstool
+
+COMMON:=common.o compress.o minilzma.o
+COMMON+=LZMAEncoder.o LZInWindow.o
+COMMON+=RangeCoderBit.o StreamUtils.o
+COMMON+=OutBuffer.o Alloc.o CRC.o
+COMMON+=cbfs-mkstage.o cbfs-mkpayload.o cbfstool.o
+
+COMMON:=$(addprefix $(obj)/,$(COMMON))
 
-CC=gcc
-CFLAGS=-g -Wall # -W -Werror
+$(obj)/%.o: %.c
+       $(HOSTCC) $(CFLAGS) -c -o $@ $<
 
-DESTDIR ?= /usr/local/bin
+$(obj)/%.o: lzma/%.cc
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-all: $(obj)/cbfstool $(obj)/tools/cbfs-mkpayload $(obj)/tools/cbfs-mkstage
+$(obj)/%.o: lzma/C/7zip/Compress/LZMA/%.cpp
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-$(obj)/cbfstool: $(patsubst %,$(obj)/%,$(OBJ))
-       $(CC) -o $@ $(patsubst %,$(obj)/%,$(OBJ))
+$(obj)/%.o: lzma/C/7zip/Compress/LZ/%.cpp
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-tobj = $(obj)/tools
-tsrc = $(shell pwd)/tools
+$(obj)/%.o: lzma/C/7zip/Compress/RangeCoder/%.cpp
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-include $(tsrc)/Makefile
+$(obj)/%.o: lzma/C/7zip/Common/%.cpp
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-$(obj)/%.o: %.c $(INC)
-       $(CC) $(CFLAGS) -c -o $@ $<
+$(obj)/%.o: lzma/C/Common/%.cpp
+       $(HOSTCXX) $(CXXFLAGS) -c -o $@ $<
 
-install: $(obj)/cbfstool $(obj)/tools/cbfs-mkpayload $(obj)/tools/cbfs-mkstage
-       @ install -d $(DESTDIR)
-       @ install -m 0755 $(obj)/cbfstool $(DESTDIR)/cbfstool
-       @ install -m 0755 $(obj)/tools/cbfs-mkstage $(DESTDIR)/cbfs-mkstage
-       @ install -m 0755 $(obj)/tools/cbfs-mkpayload $(DESTDIR)/cbfs-mkpayload
+all: $(BINARY)
 
-tags: 
-       ctags *.[ch] */*.[ch]
+clean:
+       rm -f $(COMMON) $(BINARY)
 
-clean: tools-clean
-       rm -f $(patsubst %,$(obj)/%,$(OBJ)) $(obj)/cbfstool
+tags:
+       ctags *.[ch]
 
+$(obj)/cbfstool:$(COMMON)
+       $(HOSTCXX) $(LDFLAGS) -o $@ $^