Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 1 | obj ?= . |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 2 | |
Alexandru Gagniuc | 4a7b115 | 2014-01-27 17:17:29 -0600 | [diff] [blame] | 3 | HOSTCC ?= $(CC) |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 4 | |
| 5 | CFLAGS += -Og -g3 |
| 6 | CFLAGS += -std=c99 -Werror -Wall -Wextra |
| 7 | CFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow |
| 8 | CFLAGS += -Wstrict-prototypes -Wwrite-strings |
| 9 | CPPFLAGS += -D_POSIX_C_SOURCE=200809L # strdup() from string.h |
| 10 | LINKFLAGS += -g3 |
Stefan Reinauer | 3a5c277 | 2009-05-26 12:22:10 +0000 | [diff] [blame] | 11 | |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 12 | CBFSTOOL_BINARY:=$(obj)/cbfstool |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 13 | CBFSTOOL_COMMON:=common.o cbfs_image.o compress.o fit.o |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 14 | CBFSTOOL_COMMON+=elfheaders.o cbfs-mkstage.o cbfs-mkpayload.o xdr.o |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 15 | CBFSTOOL_COMMON+=linux_trampoline.o cbfs-payload-linux.o |
Stefan Reinauer | 2e200cd | 2012-10-30 14:02:45 -0700 | [diff] [blame] | 16 | # LZMA |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 17 | CBFSTOOL_COMMON+=lzma/lzma.o |
| 18 | CBFSTOOL_COMMON+=lzma/C/LzFind.o lzma/C/LzmaDec.o lzma/C/LzmaEnc.o |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 19 | |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 20 | CBFSTOOL_COMMON:=$(addprefix $(obj)/,$(CBFSTOOL_COMMON)) |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 21 | |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 22 | |
| 23 | RMODTOOL_BINARY:=$(obj)/rmodtool |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 24 | RMODTOOL_COMMON:=rmodule.o common.o elfheaders.o xdr.o |
Aaron Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 25 | |
| 26 | RMODTOOL_COMMON:=$(addprefix $(obj)/,$(RMODTOOL_COMMON)) |
| 27 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 28 | .PHONY: all |
| 29 | all: .dependencies $(CBFSTOOL_BINARY) $(RMODTOOL_BINARY) |
Stefan Reinauer | 746d174 | 2012-08-15 16:02:52 -0700 | [diff] [blame] | 30 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 31 | $(obj)/%: $(obj)/%.o |
| 32 | mkdir -p $(dir $@) |
| 33 | $(HOSTCC) $(LINKFLAGS) -o $@ $^ $(LDLIBS) |
Patrick Georgi | b7b56dd8 | 2009-09-14 13:29:27 +0000 | [diff] [blame] | 34 | $(obj)/%.o: %.c |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 35 | mkdir -p $(dir $@) |
| 36 | $(HOSTCC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 37 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 38 | .PHONY: clean |
Patrick Georgi | b7b56dd8 | 2009-09-14 13:29:27 +0000 | [diff] [blame] | 39 | clean: |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 40 | $(RM) $(CBFSTOOL_COMMON) $(CBFSTOOL_BINARY).o $(CBFSTOOL_BINARY) |
| 41 | $(RM) $(RMODTOOL_COMMON) $(RMODTOOL_BINARY).o $(RMODTOOL_BINARY) |
| 42 | .PHONY: distclean |
| 43 | distclean: clean |
| 44 | $(RM) .dependencies |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 45 | |
Stefan Reinauer | 14e2277 | 2010-04-27 06:56:47 +0000 | [diff] [blame] | 46 | tags: |
Patrick Georgi | b7b56dd8 | 2009-09-14 13:29:27 +0000 | [diff] [blame] | 47 | ctags *.[ch] |
Peter Stuge | 1d862de | 2009-04-14 00:08:34 +0000 | [diff] [blame] | 48 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 49 | .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 Durbin | 4fde5a6 | 2014-03-07 15:11:53 -0600 | [diff] [blame] | 54 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 55 | $(CBFSTOOL_BINARY): $(CBFSTOOL_COMMON) |
| 56 | $(RMODTOOL_BINARY): $(RMODTOOL_COMMON) |
Stefan Reinauer | 746d174 | 2012-08-15 16:02:52 -0700 | [diff] [blame] | 57 | |
Sol Boucher | 0e53931 | 2015-03-05 15:38:03 -0800 | [diff] [blame^] | 58 | # Tolerate lzma sdk warnings |
| 59 | $(obj)/lzma/C/LzmaEnc.o: CFLAGS += -Wno-sign-compare -Wno-cast-qual |
Stefan Reinauer | 746d174 | 2012-08-15 16:02:52 -0700 | [diff] [blame] | 60 | |
| 61 | -include .dependencies |