blob: 258fba3ec23146b8fb0e5f9272b1985a011af873 [file] [log] [blame]
Sol Boucher0e539312015-03-05 15:38:03 -08001obj ?= .
Peter Stuge1d862de2009-04-14 00:08:34 +00002
Alexandru Gagniuc4a7b1152014-01-27 17:17:29 -06003HOSTCC ?= $(CC)
Sol Boucher0e539312015-03-05 15:38:03 -08004
5CFLAGS += -Og -g3
6CFLAGS += -std=c99 -Werror -Wall -Wextra
7CFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
8CFLAGS += -Wstrict-prototypes -Wwrite-strings
9CPPFLAGS += -D_POSIX_C_SOURCE=200809L # strdup() from string.h
10LINKFLAGS += -g3
Stefan Reinauer3a5c2772009-05-26 12:22:10 +000011
Aaron Durbin4fde5a62014-03-07 15:11:53 -060012CBFSTOOL_BINARY:=$(obj)/cbfstool
Sol Boucher0e539312015-03-05 15:38:03 -080013CBFSTOOL_COMMON:=common.o cbfs_image.o compress.o fit.o
Aaron Durbin4fde5a62014-03-07 15:11:53 -060014CBFSTOOL_COMMON+=elfheaders.o cbfs-mkstage.o cbfs-mkpayload.o xdr.o
Sol Boucher0e539312015-03-05 15:38:03 -080015CBFSTOOL_COMMON+=linux_trampoline.o cbfs-payload-linux.o
Stefan Reinauer2e200cd2012-10-30 14:02:45 -070016# LZMA
Aaron Durbin4fde5a62014-03-07 15:11:53 -060017CBFSTOOL_COMMON+=lzma/lzma.o
18CBFSTOOL_COMMON+=lzma/C/LzFind.o lzma/C/LzmaDec.o lzma/C/LzmaEnc.o
Peter Stuge1d862de2009-04-14 00:08:34 +000019
Aaron Durbin4fde5a62014-03-07 15:11:53 -060020CBFSTOOL_COMMON:=$(addprefix $(obj)/,$(CBFSTOOL_COMMON))
Peter Stuge1d862de2009-04-14 00:08:34 +000021
Aaron Durbin4fde5a62014-03-07 15:11:53 -060022
23RMODTOOL_BINARY:=$(obj)/rmodtool
Sol Boucher0e539312015-03-05 15:38:03 -080024RMODTOOL_COMMON:=rmodule.o common.o elfheaders.o xdr.o
Aaron Durbin4fde5a62014-03-07 15:11:53 -060025
26RMODTOOL_COMMON:=$(addprefix $(obj)/,$(RMODTOOL_COMMON))
27
Sol Boucher0e539312015-03-05 15:38:03 -080028.PHONY: all
29all: .dependencies $(CBFSTOOL_BINARY) $(RMODTOOL_BINARY)
Stefan Reinauer746d1742012-08-15 16:02:52 -070030
Sol Boucher0e539312015-03-05 15:38:03 -080031$(obj)/%: $(obj)/%.o
32 mkdir -p $(dir $@)
33 $(HOSTCC) $(LINKFLAGS) -o $@ $^ $(LDLIBS)
Patrick Georgib7b56dd82009-09-14 13:29:27 +000034$(obj)/%.o: %.c
Sol Boucher0e539312015-03-05 15:38:03 -080035 mkdir -p $(dir $@)
36 $(HOSTCC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
Peter Stuge1d862de2009-04-14 00:08:34 +000037
Sol Boucher0e539312015-03-05 15:38:03 -080038.PHONY: clean
Patrick Georgib7b56dd82009-09-14 13:29:27 +000039clean:
Sol Boucher0e539312015-03-05 15:38:03 -080040 $(RM) $(CBFSTOOL_COMMON) $(CBFSTOOL_BINARY).o $(CBFSTOOL_BINARY)
41 $(RM) $(RMODTOOL_COMMON) $(RMODTOOL_BINARY).o $(RMODTOOL_BINARY)
42.PHONY: distclean
43distclean: clean
44 $(RM) .dependencies
Peter Stuge1d862de2009-04-14 00:08:34 +000045
Stefan Reinauer14e22772010-04-27 06:56:47 +000046tags:
Patrick Georgib7b56dd82009-09-14 13:29:27 +000047 ctags *.[ch]
Peter Stuge1d862de2009-04-14 00:08:34 +000048
Sol Boucher0e539312015-03-05 15:38:03 -080049.dependencies:
50 @$(HOSTCC) $(CPPFLAGS) $(CFLAGS) -MM -MG *.c > $@
51 @$(HOSTCC) $(CPPFLAGS) $(CFLAGS) -MM lzma/*.c >> $@
52 @$(HOSTCC) $(CPPFLAGS) $(CFLAGS) -MM lzma/C/*.c >> $@
53 @sed -i 's|.*:.*|$$(obj)/&|' $@
Aaron Durbin4fde5a62014-03-07 15:11:53 -060054
Sol Boucher0e539312015-03-05 15:38:03 -080055$(CBFSTOOL_BINARY): $(CBFSTOOL_COMMON)
56$(RMODTOOL_BINARY): $(RMODTOOL_COMMON)
Stefan Reinauer746d1742012-08-15 16:02:52 -070057
Sol Boucher0e539312015-03-05 15:38:03 -080058# Tolerate lzma sdk warnings
59$(obj)/lzma/C/LzmaEnc.o: CFLAGS += -Wno-sign-compare -Wno-cast-qual
Stefan Reinauer746d1742012-08-15 16:02:52 -070060
61-include .dependencies