2 compressionobj += compress.o
4 compressionobj += lz4.o
5 compressionobj += lz4hc.o
6 compressionobj += lz4frame.o
7 compressionobj += xxhash.o
8 compressionobj += lz4_wrapper.o
10 compressionobj += lzma.o
11 compressionobj += LzFind.o
12 compressionobj += LzmaDec.o
13 compressionobj += LzmaEnc.o
18 cbfsobj += cbfs_image.o
19 cbfsobj += cbfs-mkstage.o
20 cbfsobj += cbfs-mkpayload.o
21 cbfsobj += elfheaders.o
24 cbfsobj += partitioned_file.o
25 cbfsobj += platform_fixups.o
27 cbfsobj += cbfs_private.o
28 cbfsobj += fsp_relocate.o
34 cbfsobj += linux_trampoline.o
35 cbfsobj += cbfs-payload-linux.o
36 # compression algorithms
37 cbfsobj += $(compressionobj)
41 fmapobj += cbfs_sections.o
42 fmapobj += fmap_from_fmd.o
44 fmapobj += fmd_parser.o
45 fmapobj += fmd_scanner.o
55 rmodobj += elfheaders.o
66 ifitobj += cbfs_image.o
69 ifitobj += elfheaders.o
70 ifitobj += partitioned_file.o
71 ifitobj += cbfs-mkstage.o
72 ifitobj += cbfs-mkpayload.o
78 # compression algorithms
79 ifitobj += $(compressionobj)
83 cbfscompobj += $(compressionobj)
84 cbfscompobj += cbfscomptool.o
87 amdcompobj += amdcompress.o
88 amdcompobj += elfheaders.o
89 amdcompobj += common.o
100 include $(top)/util/cbfstool/fpt_formats/Makefile.inc
102 cse_fpt_obj += cse_fpt.o
103 cse_fpt_obj += common.o
104 cse_fpt_obj += cse_helpers.o
105 cse_fpt_obj += $(foreach var, $(fpt_formats_obj), $(var))
107 include $(top)/util/cbfstool/bpdt_formats/Makefile.inc
109 cse_serger_obj += cse_serger.o
110 cse_serger_obj += common.o
111 cse_serger_obj += cse_helpers.o
112 cse_serger_obj += $(foreach var, $(bpdt_formats_obj), $(var))
114 TOOLCFLAGS ?= -Werror -Wall -Wextra -Wshadow
115 TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
116 TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
118 TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
119 TOOLCPPFLAGS += -D_BSD_SOURCE -D_SVID_SOURCE # _DEFAULT_SOURCE for older glibc
120 TOOLCPPFLAGS += -D_GNU_SOURCE # memmem() from string.h
121 TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
122 TOOLCPPFLAGS += -I$(top)/util/cbfstool
123 TOOLCPPFLAGS += -I$(objutil)/cbfstool
124 TOOLCPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
125 TOOLCPPFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
126 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
127 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
128 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/include
129 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/lib/include
130 # UEFI header file support. It's not pretty, but that's what we currently
132 TOOLCPPFLAGS += -I$(top)/src
133 TOOLCPPFLAGS += -I$(top)/src/vendorcode/intel/edk2/uefi_2.4/MdePkg/Include
136 HOSTCFLAGS += -fms-extensions
138 ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
139 TOOLCFLAGS += -mno-ms-bitfields
141 ifeq ($(shell uname -o 2>/dev/null), Cygwin)
142 TOOLCFLAGS+=-std=gnu11
143 TOOLCPPFLAGS+=-D_GNU_SOURCE
148 LZ4CFLAGS ?= -Wno-strict-prototypes
150 VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
153 printf " MAKE $(subst $(objutil)/,,$(@))\n"
154 unset CFLAGS LDFLAGS; $(MAKE) -C $(VBOOT_SOURCE) \
155 BUILD=$(VBOOT_HOST_BUILD) \
163 $(objutil)/cbfstool/%.o: $(objutil)/cbfstool/%.c
164 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
165 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
167 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
168 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
169 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
171 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
172 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
173 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
175 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
176 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
177 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
179 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
180 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
181 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
183 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/%.c
184 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
185 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
187 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/bsd/%.c
188 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
189 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
191 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
192 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
193 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) $(LZ4CFLAGS) -c -o $@ $<
195 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/fpt_formats/%.c
196 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
197 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
199 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/bpdt_formats/%.c
200 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
201 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
203 $(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
204 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
205 $(HOSTCC) -v $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
207 $(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
208 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
209 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
211 $(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
212 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
213 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
215 $(objutil)/cbfstool/ifwitool: $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
216 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
217 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
219 $(objutil)/cbfstool/ifittool: $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
220 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
221 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
223 $(objutil)/cbfstool/cbfs-compression-tool: $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
224 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
225 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
227 $(objutil)/cbfstool/amdcompress: $(addprefix $(objutil)/cbfstool/,$(amdcompobj))
228 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
229 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(amdcompobj)) -lz
231 $(objutil)/cbfstool/elogtool: $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
232 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
233 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
235 $(objutil)/cbfstool/cse_fpt: $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
236 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
237 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
239 $(objutil)/cbfstool/cse_serger: $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
240 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
241 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
243 # Yacc source is superset of header
244 $(objutil)/cbfstool/fmd.o: TOOLCFLAGS += -Wno-redundant-decls
245 $(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
246 # Lex generates unneeded functions and declarations
247 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-redundant-decls
248 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
249 # Tolerate lzma sdk warnings
250 $(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
251 # Tolerate commonlib warnings
252 $(objutil)/cbfstool/cbfs_private.o: TOOLCFLAGS += -Wno-sign-compare
253 # Tolerate lz4 warnings
254 $(objutil)/cbfstool/lz4.o: TOOLCFLAGS += -Wno-missing-prototypes
255 $(objutil)/cbfstool/lz4_wrapper.o: TOOLCFLAGS += -Wno-attributes
257 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_parser.h
258 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_scanner.h
259 $(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
260 $(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
261 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-sign-compare
263 $(objutil)/cbfstool/%: $(top)/util/cbfstool/%_shipped
267 ifeq ($(CONFIG_FMD_GENPARSER),y)
271 # the .c rule also creates .h
272 $(top)/util/cbfstool/fmd_scanner.h_shipped: $(top)/util/cbfstool/fmd_scanner.c_shipped
273 $(top)/util/cbfstool/fmd_scanner.c_shipped: $(top)/util/cbfstool/fmd_scanner.l
274 echo " LEX util/cbfstool/fmd_scanner.[ch]"
275 $(TOOLLEX) -t --header-file=$(top)/util/cbfstool/fmd_scanner.h_shipped $< >$(top)/util/cbfstool/fmd_scanner.c_shipped
277 # the .c rule also creates .h
278 $(top)/util/cbfstool/fmd_parser.h_shipped: $(top)/util/cbfstool/fmd_parser.c_shipped
279 $(top)/util/cbfstool/fmd_parser.c_shipped: $(top)/util/cbfstool/fmd_parser.y
280 echo " YACC util/cbfstool/fmd_parser.[ch]"
282 mv -f y.tab.c $(top)/util/cbfstool/fmd_parser.c_shipped
283 mv -f y.tab.h $(top)/util/cbfstool/fmd_parser.h_shipped
285 endif # CONFIG_FMD_GENPARSER