blob: ec858a97927812e1ac07c6c8fea4e8b75c7b8dfa [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
Sol Bouchere3260a02015-03-25 13:40:08 -070011cbfsobj += partitioned_file.o
Stefan Reinauer2e200cd2012-10-30 14:02:45 -070012# LZMA
13cbfsobj += lzma.o
14cbfsobj += LzFind.o
15cbfsobj += LzmaDec.o
16cbfsobj += LzmaEnc.o
Sol Bouchere3260a02015-03-25 13:40:08 -070017# FMAP
18cbfsobj += fmap.o
19cbfsobj += kv_pair.o
20cbfsobj += valstr.o
Patrick Georgide36d332013-08-27 20:22:21 +020021# linux as payload
22cbfsobj += linux_trampoline.o
23cbfsobj += cbfs-payload-linux.o
Patrick Georgi0588d192009-08-12 15:00:51 +000024
Sol Boucher69b88bf2015-02-26 11:47:19 -080025fmapobj :=
26fmapobj += fmaptool.o
27fmapobj += fmap_from_fmd.o
28fmapobj += fmd.o
29fmapobj += fmd_parser.o
30fmapobj += fmd_scanner.o
31# FMAP
32fmapobj += fmap.o
33fmapobj += kv_pair.o
34fmapobj += valstr.o
35
Sol Boucher0e539312015-03-05 15:38:03 -080036rmodobj :=
Aaron Durbin4fde5a62014-03-07 15:11:53 -060037rmodobj += rmodtool.o
38rmodobj += rmodule.o
39rmodobj += common.o
40rmodobj += elfheaders.o
41rmodobj += xdr.o
42
Sol Boucher0e539312015-03-05 15:38:03 -080043TOOLCFLAGS ?= -std=c99 -Werror -Wall -Wextra
44TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
45TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
Sol Boucher69b88bf2015-02-26 11:47:19 -080046TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
47TOOLCPPFLAGS += -D_POSIX_C_SOURCE=200809L # strdup() from string.h
48TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
Paul Menzel6548ae92015-05-03 09:35:32 +020049TOOLLDFLAGS ?=
Sol Boucher0e539312015-03-05 15:38:03 -080050
Zheng Baoc31cdd82012-10-22 16:39:24 +080051ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
Aaron Durbin4fde5a62014-03-07 15:11:53 -060052TOOLFLAGS+=-mno-ms-bitfields
Zheng Baoc31cdd82012-10-22 16:39:24 +080053endif
54
Patrick Georgia2acbc72010-04-16 22:48:57 +000055$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
56 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080057 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +000058
Sol Boucher69b88bf2015-02-26 11:47:19 -080059$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
60 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
61 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
62
Stefan Reinaueraa3f7ba2013-03-28 16:51:45 -070063$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
64 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080065 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgib7b56dd82009-09-14 13:29:27 +000066
Stefan Reinauer2e200cd2012-10-30 14:02:45 -070067$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
Zheng Baoa182cbd2012-12-14 15:44:59 +080068 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
Sol Boucher0e539312015-03-05 15:38:03 -080069 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
Patrick Georgib7b56dd82009-09-14 13:29:27 +000070
Patrick Georgi913e1712014-07-15 12:28:12 +020071$(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj))
Stefan Reinaueraa3f7ba2013-03-28 16:51:45 -070072 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
Paul Menzel6548ae92015-05-03 09:35:32 +020073 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj))
Aaron Durbin4fde5a62014-03-07 15:11:53 -060074
Sol Boucher69b88bf2015-02-26 11:47:19 -080075$(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
76 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
77 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
78
Patrick Georgi913e1712014-07-15 12:28:12 +020079$(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
Aaron Durbin4fde5a62014-03-07 15:11:53 -060080 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
Paul Menzel6548ae92015-05-03 09:35:32 +020081 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
Sol Boucher0e539312015-03-05 15:38:03 -080082
Sol Boucher69b88bf2015-02-26 11:47:19 -080083# Yacc source is superset of header
84$(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
85# Lex generates unneeded functions
86$(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
Sol Boucher0e539312015-03-05 15:38:03 -080087# Tolerate lzma sdk warnings
88$(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
Sol Boucher69b88bf2015-02-26 11:47:19 -080089
90ifeq ($(CONFIG_FMD_GENPARSER),y)
91TOOLLEX := lex
92TOOLYACC := yacc
93
94$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_parser.c
95$(objutil)/cbfstool/fmd.o: $(top)/util/cbfstool/fmd_scanner.c
96$(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
97$(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
98$(top)/util/cbfstool/fmd_scanner.c $(top)/util/cbfstool/fmd_scanner.h: $(top)/util/cbfstool/fmd_scanner.l
99 echo " LEX util/cbfstool/fmd_scanner.[ch]"
100 $(TOOLLEX) -t --header-file=$(top)/util/cbfstool/fmd_scanner.h $< >$(top)/util/cbfstool/fmd_scanner.c
101$(top)/util/cbfstool/fmd_parser.c $(top)/util/cbfstool/fmd_parser.h: $(top)/util/cbfstool/fmd_parser.y
102 echo " YACC util/cbfstool/fmd_parser.[ch]"
103 $(TOOLYACC) -d $<
104 mv -f y.tab.c $(top)/util/cbfstool/fmd_parser.c
105 mv -f y.tab.h $(top)/util/cbfstool/fmd_parser.h
106endif