blob: 7fba6beb9ca9beeb910e5e1d5ea4f159ecf2a41b [file] [log] [blame]
Patrick Georgi0588d192009-08-12 15:00:51 +00001cbfsobj :=
Stefan Reinauer2e200cd2012-10-30 14:02:45 -07002cbfsobj += cbfstool.o
Patrick Georgib7b56dd82009-09-14 13:29:27 +00003cbfsobj += common.o
4cbfsobj += compress.o
Hung-Te Lineab2c812013-01-29 01:56:17 +08005cbfsobj += cbfs_image.o
Patrick Georgib7b56dd82009-09-14 13:29:27 +00006cbfsobj += cbfs-mkstage.o
7cbfsobj += cbfs-mkpayload.o
Ronald G. Minnicha8a133d2013-12-30 13:16:18 -08008cbfsobj += elfheaders.o
Ronald G. Minnichaa2f7392013-12-03 11:13:35 -08009cbfsobj += xdr.o
Aaron Durbin6b0d0d62012-12-14 17:16:21 -060010cbfsobj += fit.o
Stefan Reinauer2e200cd2012-10-30 14:02:45 -070011# LZMA
12cbfsobj += lzma.o
13cbfsobj += LzFind.o
14cbfsobj += LzmaDec.o
15cbfsobj += LzmaEnc.o
Patrick Georgide36d332013-08-27 20:22:21 +020016# linux as payload
17cbfsobj += linux_trampoline.o
18cbfsobj += cbfs-payload-linux.o
Patrick Georgi0588d192009-08-12 15:00:51 +000019
Sol Boucher69b88bf2015-02-26 11:47:19 -080020fmapobj :=
21fmapobj += fmaptool.o
22fmapobj += fmap_from_fmd.o
23fmapobj += fmd.o
24fmapobj += fmd_parser.o
25fmapobj += fmd_scanner.o
26# FMAP
27fmapobj += fmap.o
28fmapobj += kv_pair.o
29fmapobj += valstr.o
30
Sol Boucher0e539312015-03-05 15:38:03 -080031rmodobj :=
Aaron Durbin4fde5a62014-03-07 15:11:53 -060032rmodobj += rmodtool.o
33rmodobj += rmodule.o
34rmodobj += common.o
35rmodobj += elfheaders.o
36rmodobj += xdr.o
37
Sol Boucher0e539312015-03-05 15:38:03 -080038TOOLCFLAGS ?= -std=c99 -Werror -Wall -Wextra
39TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
40TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
Sol Boucher69b88bf2015-02-26 11:47:19 -080041TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
42TOOLCPPFLAGS += -D_POSIX_C_SOURCE=200809L # strdup() from string.h
43TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
Paul Menzel6548ae92015-05-03 09:35:32 +020044TOOLLDFLAGS ?=
Sol Boucher0e539312015-03-05 15:38:03 -080045
Zheng Baoc31cdd82012-10-22 16:39:24 +080046ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
Aaron Durbin4fde5a62014-03-07 15:11:53 -060047TOOLFLAGS+=-mno-ms-bitfields
Zheng Baoc31cdd82012-10-22 16:39:24 +080048endif
49
Patrick Georgia2acbc72010-04-16 22:48:57 +000050$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
51 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080052 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +000053
Sol Boucher69b88bf2015-02-26 11:47:19 -080054$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
55 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
56 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
57
Stefan Reinaueraa3f7ba2013-03-28 16:51:45 -070058$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
59 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080060 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgib7b56dd82009-09-14 13:29:27 +000061
Stefan Reinauer2e200cd2012-10-30 14:02:45 -070062$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
Zheng Baoa182cbd2012-12-14 15:44:59 +080063 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080064 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgib7b56dd82009-09-14 13:29:27 +000065
Patrick Georgi913e1712014-07-15 12:28:12 +020066$(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj))
Stefan Reinaueraa3f7ba2013-03-28 16:51:45 -070067 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
Paul Menzel6548ae92015-05-03 09:35:32 +020068 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj))
Aaron Durbin4fde5a62014-03-07 15:11:53 -060069
Sol Boucher69b88bf2015-02-26 11:47:19 -080070$(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
71 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
72 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
73
Patrick Georgi913e1712014-07-15 12:28:12 +020074$(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
Aaron Durbin4fde5a62014-03-07 15:11:53 -060075 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
Paul Menzel6548ae92015-05-03 09:35:32 +020076 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
Sol Boucher0e539312015-03-05 15:38:03 -080077
Sol Boucher69b88bf2015-02-26 11:47:19 -080078# Yacc source is superset of header
79$(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
80# Lex generates unneeded functions
81$(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
Sol Boucher0e539312015-03-05 15:38:03 -080082# Tolerate lzma sdk warnings
83$(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
Sol Boucher69b88bf2015-02-26 11:47:19 -080084
85ifeq ($(CONFIG_FMD_GENPARSER),y)
86TOOLLEX := lex
87TOOLYACC := yacc
88
89$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_parser.c
90$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_scanner.c
91$(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
92$(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
93$(top)/util/cbfstool/fmd_scanner.c $(top)/util/cbfstool/fmd_scanner.h: $(top)/util/cbfstool/fmd_scanner.l
94 echo " LEX util/cbfstool/fmd_scanner.[ch]"
95 $(TOOLLEX) -t --header-file=$(top)/util/cbfstool/fmd_scanner.h $< >$(top)/util/cbfstool/fmd_scanner.c
96$(top)/util/cbfstool/fmd_parser.c $(top)/util/cbfstool/fmd_parser.h: $(top)/util/cbfstool/fmd_parser.y
97 echo " YACC util/cbfstool/fmd_parser.[ch]"
98 $(TOOLYACC) -d $<
99 mv -f y.tab.c $(top)/util/cbfstool/fmd_parser.c
100 mv -f y.tab.h $(top)/util/cbfstool/fmd_parser.h
101endif