diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.lib | 28 | ||||
-rw-r--r-- | scripts/bin_size | 10 | ||||
-rwxr-xr-x | scripts/setlocalversion | 30 |
3 files changed, 44 insertions, 24 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) | ||
diff --git a/scripts/bin_size b/scripts/bin_size deleted file mode 100644 index 43e1b360cee6..000000000000 --- a/scripts/bin_size +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [ $# = 0 ] ; then | ||
4 | echo Usage: $0 file | ||
5 | fi | ||
6 | |||
7 | size_dec=`stat -c "%s" $1` | ||
8 | size_hex_echo_string=`printf "%08x" $size_dec | | ||
9 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g'` | ||
10 | /bin/echo -ne $size_hex_echo_string | ||
diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 32c8554f3946..00790472f641 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion | |||
@@ -1,5 +1,13 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | # Print additional version information for non-release trees. | 2 | # |
3 | # This scripts adds local version information from the version | ||
4 | # control systems git, mercurial (hg) and subversion (svn). | ||
5 | # | ||
6 | # If something goes wrong, send a mail the kernel build mailinglist | ||
7 | # (see MAINTAINERS) and CC Nico Schottelius | ||
8 | # <nico-linuxsetlocalversion -at- schottelius.org>. | ||
9 | # | ||
10 | # | ||
3 | 11 | ||
4 | usage() { | 12 | usage() { |
5 | echo "Usage: $0 [srctree]" >&2 | 13 | echo "Usage: $0 [srctree]" >&2 |
@@ -10,12 +18,20 @@ cd "${1:-.}" || usage | |||
10 | 18 | ||
11 | # Check for git and a git repo. | 19 | # Check for git and a git repo. |
12 | if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then | 20 | if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then |
13 | # Do we have an untagged tag? | 21 | |
14 | if atag=`git describe 2>/dev/null`; then | 22 | # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore it, |
15 | echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' | 23 | # because this version is defined in the top level Makefile. |
16 | # add -g${head}, if there is no usable tag | 24 | if [ -z "`git describe --exact-match 2>/dev/null`" ]; then |
17 | else | 25 | |
18 | printf '%s%s' -g $head | 26 | # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"), |
27 | # we pretty print it. | ||
28 | if atag="`git describe 2>/dev/null`"; then | ||
29 | echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' | ||
30 | |||
31 | # If we don't have a tag at all we print -g{commitish}. | ||
32 | else | ||
33 | printf '%s%s' -g $head | ||
34 | fi | ||
19 | fi | 35 | fi |
20 | 36 | ||
21 | # Is this git on svn? | 37 | # Is this git on svn? |