crossgcc: Remove "Make"
[coreboot.git] / util / cbfstool / Makefile.inc
blobf38c8258a666f6a3eeffbfbc7dc90f4a9ba63696
1 compressionobj :=
2 compressionobj += compress.o
3 # LZ4
4 compressionobj += lz4.o
5 compressionobj += lz4hc.o
6 compressionobj += lz4frame.o
7 compressionobj += xxhash.o
8 compressionobj += lz4_wrapper.o
9 # LZMA
10 compressionobj += lzma.o
11 compressionobj += LzFind.o
12 compressionobj += LzmaDec.o
13 compressionobj += LzmaEnc.o
15 cbfsobj :=
16 cbfsobj += cbfstool.o
17 cbfsobj += common.o
18 cbfsobj += cbfs_image.o
19 cbfsobj += cbfs-mkstage.o
20 cbfsobj += cbfs-mkpayload.o
21 cbfsobj += elfheaders.o
22 cbfsobj += rmodule.o
23 cbfsobj += xdr.o
24 cbfsobj += partitioned_file.o
25 # COMMONLIB
26 cbfsobj += cbfs.o
27 cbfsobj += fsp_relocate.o
28 cbfsobj += mem_pool.o
29 cbfsobj += region.o
30 # FMAP
31 cbfsobj += fmap.o
32 cbfsobj += kv_pair.o
33 cbfsobj += valstr.o
34 # linux as payload
35 cbfsobj += linux_trampoline.o
36 cbfsobj += cbfs-payload-linux.o
37 # compression algorithms
38 cbfsobj += $(compressionobj)
40 fmapobj :=
41 fmapobj += fmaptool.o
42 fmapobj += cbfs_sections.o
43 fmapobj += fmap_from_fmd.o
44 fmapobj += fmd.o
45 fmapobj += fmd_parser.o
46 fmapobj += fmd_scanner.o
47 # FMAP
48 fmapobj += fmap.o
49 fmapobj += kv_pair.o
50 fmapobj += valstr.o
52 rmodobj :=
53 rmodobj += rmodtool.o
54 rmodobj += rmodule.o
55 rmodobj += common.o
56 rmodobj += elfheaders.o
57 rmodobj += xdr.o
59 ifwiobj :=
60 ifwiobj += ifwitool.o
61 ifwiobj += common.o
63 ifitobj :=
64 ifitobj += ifittool.o
65 ifitobj += common.o
66 ifitobj += fit.o
67 ifitobj += cbfs_image.o
68 # Make it link ....
69 ifitobj += xdr.o
70 ifitobj += elfheaders.o
71 ifitobj += partitioned_file.o
72 ifitobj += cbfs-mkstage.o
73 ifitobj += cbfs-mkpayload.o
74 ifitobj += rmodule.o
75 # COMMONLIB
76 ifitobj += cbfs.o
77 ifitobj += mem_pool.o
78 ifitobj += region.o
79 # FMAP
80 ifitobj += fmap.o
81 ifitobj += kv_pair.o
82 ifitobj += valstr.o
83 # compression algorithms
84 ifitobj += $(compressionobj)
87 cbfscompobj :=
88 cbfscompobj += $(compressionobj)
89 cbfscompobj += cbfscomptool.o
91 amdcompobj :=
92 amdcompobj += amdcompress.o
93 amdcompobj += elfheaders.o
94 amdcompobj += common.o
95 amdcompobj += xdr.o
97 TOOLCFLAGS ?= -Werror -Wall -Wextra
98 TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
99 TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
100 TOOLCFLAGS += -O2
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
112 # have right now.
113 TOOLCPPFLAGS += -I$(top)/src
114 TOOLCPPFLAGS += -I$(top)/src/vendorcode/intel/edk2/uefi_2.4/MdePkg/Include
116 TOOLLDFLAGS ?=
117 HOSTCFLAGS += -fms-extensions
119 ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
120 TOOLCFLAGS += -mno-ms-bitfields
121 endif
122 ifeq ($(shell uname -o 2>/dev/null), Cygwin)
123 TOOLCFLAGS+=-std=gnu11
124 TOOLCPPFLAGS+=-D_GNU_SOURCE
125 else
126 TOOLCFLAGS+=-std=c11
127 endif
129 VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
131 $(VBOOT_HOSTLIB):
132         printf "    MAKE       $(subst $(objutil)/,,$(@))\n"
133         unset CFLAGS LDFLAGS; $(MAKE) -C $(VBOOT_SOURCE) \
134                 BUILD=$(VBOOT_HOST_BUILD) \
135                 CC="$(HOSTCC)" \
136                 $(if $(HOSTPKGCONFIG), PKG_CONFIG="$(HOSTPKGCONFIG)") \
137                 V=$(V) \
138                 hostlib
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
223         mkdir -p $(dir $@)
224         cp $< $@
226 ifeq ($(CONFIG_FMD_GENPARSER),y)
227 TOOLLEX := lex
228 TOOLYACC := yacc
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]"
240         $(TOOLYACC) -d $<
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