diff options
Diffstat (limited to 'scripts/Makefile.lib')
-rw-r--r-- | scripts/Makefile.lib | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index cba61ca403ca..2b706617c89a 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
@@ -188,20 +188,34 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@ | |||
188 | # --------------------------------------------------------------------------- | 188 | # --------------------------------------------------------------------------- |
189 | 189 | ||
190 | quiet_cmd_gzip = GZIP $@ | 190 | quiet_cmd_gzip = GZIP $@ |
191 | cmd_gzip = gzip -f -9 < $< > $@ | 191 | cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \ |
192 | (rm -f $@ ; false) | ||
192 | 193 | ||
193 | 194 | ||
194 | # Bzip2 | 195 | # Bzip2 |
195 | # --------------------------------------------------------------------------- | 196 | # --------------------------------------------------------------------------- |
196 | 197 | ||
197 | # Bzip2 does not include size in file... so we have to fake that | 198 | # Bzip2 and LZMA do not include size in file... so we have to fake that; |
198 | size_append=$(CONFIG_SHELL) $(srctree)/scripts/bin_size | 199 | # append the size as a 32-bit littleendian number as gzip does. |
199 | 200 | size_append = echo -ne $(shell \ | |
200 | quiet_cmd_bzip2 = BZIP2 $@ | 201 | dec_size=0; \ |
201 | cmd_bzip2 = (bzip2 -9 < $< && $(size_append) $<) > $@ || (rm -f $@ ; false) | 202 | for F in $1; do \ |
203 | fsize=$$(stat -c "%s" $$F); \ | ||
204 | dec_size=$$(expr $$dec_size + $$fsize); \ | ||
205 | done; \ | ||
206 | printf "%08x" $$dec_size | \ | ||
207 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \ | ||
208 | ) | ||
209 | |||
210 | quiet_cmd_bzip2 = BZIP2 $@ | ||
211 | cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ | ||
212 | bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | ||
213 | (rm -f $@ ; false) | ||
202 | 214 | ||
203 | # Lzma | 215 | # Lzma |
204 | # --------------------------------------------------------------------------- | 216 | # --------------------------------------------------------------------------- |
205 | 217 | ||
206 | quiet_cmd_lzma = LZMA $@ | 218 | quiet_cmd_lzma = LZMA $@ |
207 | cmd_lzma = (lzma -9 -c $< && $(size_append) $<) >$@ || (rm -f $@ ; false) | 219 | cmd_lzma = (cat $(filter-out FORCE,$^) | \ |
220 | lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | ||
221 | (rm -f $@ ; false) | ||