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
99 include $(top)/util/cbfstool/fpt_formats/Makefile.inc
101 cse_fpt_obj += cse_fpt.o
102 cse_fpt_obj += common.o
103 cse_fpt_obj += cse_helpers.o
104 cse_fpt_obj += $(foreach var, $(fpt_formats_obj), $(var))
106 include $(top)/util/cbfstool/bpdt_formats/Makefile.inc
108 cse_serger_obj += cse_serger.o
109 cse_serger_obj += common.o
110 cse_serger_obj += cse_helpers.o
111 cse_serger_obj += $(foreach var, $(bpdt_formats_obj), $(var))
113 TOOLCFLAGS ?= -Werror -Wall -Wextra -Wshadow
114 TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
115 TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
117 TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
118 TOOLCPPFLAGS += -D_BSD_SOURCE -D_SVID_SOURCE # _DEFAULT_SOURCE for older glibc
119 TOOLCPPFLAGS += -D_GNU_SOURCE # memmem() from string.h
120 TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
121 TOOLCPPFLAGS += -I$(top)/util/cbfstool
122 TOOLCPPFLAGS += -I$(objutil)/cbfstool
123 TOOLCPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
124 TOOLCPPFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
125 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
126 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
127 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/include
128 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/lib/include
129 # UEFI header file support. It's not pretty, but that's what we currently
131 TOOLCPPFLAGS += -I$(top)/src
132 TOOLCPPFLAGS += -I$(top)/src/vendorcode/intel/edk2/uefi_2.4/MdePkg/Include
135 HOSTCFLAGS += -fms-extensions
137 ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
138 TOOLCFLAGS += -mno-ms-bitfields
140 ifeq ($(shell uname -o 2>/dev/null), Cygwin)
141 TOOLCFLAGS+=-std=gnu11
142 TOOLCPPFLAGS+=-D_GNU_SOURCE
147 VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
150 printf " MAKE $(subst $(objutil)/,,$(@))\n"
151 unset CFLAGS LDFLAGS; $(MAKE) -C $(VBOOT_SOURCE) \
152 BUILD=$(VBOOT_HOST_BUILD) \
159 $(objutil)/cbfstool/%.o: $(objutil)/cbfstool/%.c
160 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
161 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
163 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
164 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
165 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
167 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
168 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
169 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
171 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
172 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
173 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
175 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
176 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
177 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
179 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/%.c
180 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
181 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
183 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/bsd/%.c
184 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
185 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
187 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
188 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
189 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
191 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/fpt_formats/%.c
192 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
193 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
195 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/bpdt_formats/%.c
196 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
197 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
199 $(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
200 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
201 $(HOSTCC) -v $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
203 $(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
204 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
205 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
207 $(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
208 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
209 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
211 $(objutil)/cbfstool/ifwitool: $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
212 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
213 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
215 $(objutil)/cbfstool/ifittool: $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
216 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
217 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
219 $(objutil)/cbfstool/cbfs-compression-tool: $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
220 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
221 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
223 $(objutil)/cbfstool/amdcompress: $(addprefix $(objutil)/cbfstool/,$(amdcompobj))
224 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
225 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(amdcompobj)) -lz
227 $(objutil)/cbfstool/elogtool: $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
228 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
229 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
231 $(objutil)/cbfstool/cse_fpt: $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
232 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
233 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
235 $(objutil)/cbfstool/cse_serger: $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
236 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
237 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
239 # Yacc source is superset of header
240 $(objutil)/cbfstool/fmd.o: TOOLCFLAGS += -Wno-redundant-decls
241 $(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
242 # Lex generates unneeded functions and declarations
243 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-redundant-decls
244 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
245 # Tolerate lzma sdk warnings
246 $(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
247 # Tolerate commonlib warnings
248 $(objutil)/cbfstool/cbfs_private.o: TOOLCFLAGS += -Wno-sign-compare
249 # Tolerate lz4 warnings
250 $(objutil)/cbfstool/lz4.o: TOOLCFLAGS += -Wno-missing-prototypes
251 $(objutil)/cbfstool/lz4_wrapper.o: TOOLCFLAGS += -Wno-attributes
253 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_parser.h
254 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_scanner.h
255 $(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
256 $(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
257 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-sign-compare
259 $(objutil)/cbfstool/%: $(top)/util/cbfstool/%_shipped
263 ifeq ($(CONFIG_FMD_GENPARSER),y)
267 # the .c rule also creates .h
268 $(top)/util/cbfstool/fmd_scanner.h_shipped: $(top)/util/cbfstool/fmd_scanner.c_shipped
269 $(top)/util/cbfstool/fmd_scanner.c_shipped: $(top)/util/cbfstool/fmd_scanner.l
270 echo " LEX util/cbfstool/fmd_scanner.[ch]"
271 $(TOOLLEX) -t --header-file=$(top)/util/cbfstool/fmd_scanner.h_shipped $< >$(top)/util/cbfstool/fmd_scanner.c_shipped
273 # the .c rule also creates .h
274 $(top)/util/cbfstool/fmd_parser.h_shipped: $(top)/util/cbfstool/fmd_parser.c_shipped
275 $(top)/util/cbfstool/fmd_parser.c_shipped: $(top)/util/cbfstool/fmd_parser.y
276 echo " YACC util/cbfstool/fmd_parser.[ch]"
278 mv -f y.tab.c $(top)/util/cbfstool/fmd_parser.c_shipped
279 mv -f y.tab.h $(top)/util/cbfstool/fmd_parser.h_shipped
281 endif # CONFIG_FMD_GENPARSER