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
27 cbfsobj += fsp_relocate.o
35 cbfsobj += linux_trampoline.o
36 cbfsobj += cbfs-payload-linux.o
37 # compression algorithms
38 cbfsobj += $(compressionobj)
42 fmapobj += cbfs_sections.o
43 fmapobj += fmap_from_fmd.o
45 fmapobj += fmd_parser.o
46 fmapobj += fmd_scanner.o
56 rmodobj += elfheaders.o
67 ifitobj += cbfs_image.o
70 ifitobj += elfheaders.o
71 ifitobj += partitioned_file.o
72 ifitobj += cbfs-mkstage.o
73 ifitobj += cbfs-mkpayload.o
83 # compression algorithms
84 ifitobj += $(compressionobj)
88 cbfscompobj += $(compressionobj)
89 cbfscompobj += cbfscomptool.o
92 amdcompobj += amdcompress.o
93 amdcompobj += elfheaders.o
94 amdcompobj += common.o
97 TOOLCFLAGS ?= -Werror -Wall -Wextra
98 TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
99 TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
101 TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
102 TOOLCPPFLAGS += -D_BSD_SOURCE -D_SVID_SOURCE # _DEFAULT_SOURCE for older glibc
103 TOOLCPPFLAGS += -D_XOPEN_SOURCE=700 # strdup() from string.h
104 TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
105 TOOLCPPFLAGS += -I$(top)/util/cbfstool
106 TOOLCPPFLAGS += -I$(objutil)/cbfstool
107 TOOLCPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
108 TOOLCPPFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
109 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
110 TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
111 # UEFI header file support. It's not pretty, but that's what we currently
113 TOOLCPPFLAGS += -I$(top)/src
114 TOOLCPPFLAGS += -I$(top)/src/vendorcode/intel/edk2/uefi_2.4/MdePkg/Include
117 HOSTCFLAGS += -fms-extensions
119 ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
120 TOOLCFLAGS += -mno-ms-bitfields
122 ifeq ($(shell uname -o 2>/dev/null), Cygwin)
123 TOOLCFLAGS+=-std=gnu11
124 TOOLCPPFLAGS+=-D_GNU_SOURCE
129 VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
132 printf " MAKE $(subst $(objutil)/,,$(@))\n"
133 unset CFLAGS LDFLAGS; $(MAKE) -C $(VBOOT_SOURCE) \
134 BUILD=$(VBOOT_HOST_BUILD) \
136 $(if $(HOSTPKGCONFIG), PKG_CONFIG="$(HOSTPKGCONFIG)") \
140 $(objutil)/cbfstool/%.o: $(objutil)/cbfstool/%.c
141 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
142 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
144 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
145 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
146 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
148 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
149 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
150 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
152 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
153 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
154 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
156 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
157 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
158 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
160 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/%.c
161 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
162 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
164 $(objutil)/cbfstool/%.o: $(top)/src/commonlib/bsd/%.c
165 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
166 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
168 $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
169 printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
170 $(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
172 $(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
173 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
174 $(HOSTCC) -v $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
176 $(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
177 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
178 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
180 $(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
181 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
182 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
184 $(objutil)/cbfstool/ifwitool: $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
185 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
186 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
188 $(objutil)/cbfstool/ifittool: $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
189 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
190 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
192 $(objutil)/cbfstool/cbfs-compression-tool: $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
193 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
194 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
196 $(objutil)/cbfstool/amdcompress: $(addprefix $(objutil)/cbfstool/,$(amdcompobj))
197 printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
198 $(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(amdcompobj)) -lz
200 # Yacc source is superset of header
201 $(objutil)/cbfstool/fmd.o: TOOLCFLAGS += -Wno-redundant-decls
202 $(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
203 # Lex generates unneeded functions and declarations
204 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-redundant-decls
205 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
206 # Tolerate lzma sdk warnings
207 $(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
208 # Tolerate commonlib warnings
209 $(objutil)/cbfstool/region.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
210 $(objutil)/cbfstool/cbfs.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
211 $(objutil)/cbfstool/mem_pool.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
212 # Tolerate lz4 warnings
213 $(objutil)/cbfstool/lz4.o: TOOLCFLAGS += -Wno-missing-prototypes
214 $(objutil)/cbfstool/lz4_wrapper.o: TOOLCFLAGS += -Wno-attributes
216 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_parser.h
217 $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_scanner.h
218 $(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
219 $(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
220 $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-sign-compare
222 $(objutil)/cbfstool/%: $(top)/util/cbfstool/%_shipped
226 ifeq ($(CONFIG_FMD_GENPARSER),y)
230 # the .c rule also creates .h
231 $(top)/util/cbfstool/fmd_scanner.h_shipped: $(top)/util/cbfstool/fmd_scanner.c_shipped
232 $(top)/util/cbfstool/fmd_scanner.c_shipped: $(top)/util/cbfstool/fmd_scanner.l
233 echo " LEX util/cbfstool/fmd_scanner.[ch]"
234 $(TOOLLEX) -t --header-file=$(top)/util/cbfstool/fmd_scanner.h_shipped $< >$(top)/util/cbfstool/fmd_scanner.c_shipped
236 # the .c rule also creates .h
237 $(top)/util/cbfstool/fmd_parser.h_shipped: $(top)/util/cbfstool/fmd_parser.c_shipped
238 $(top)/util/cbfstool/fmd_parser.c_shipped: $(top)/util/cbfstool/fmd_parser.y
239 echo " YACC util/cbfstool/fmd_parser.[ch]"
241 mv -f y.tab.c $(top)/util/cbfstool/fmd_parser.c_shipped
242 mv -f y.tab.h $(top)/util/cbfstool/fmd_parser.h_shipped
244 endif # CONFIG_FMD_GENPARSER