summaryrefslogtreecommitdiffstats
path: root/scripts/xz_wrap.sh
blob: 02823bc1df182e6dc74c2fe6f06caf9c1e2c3f0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/sh
#
# This is a wrapper for xz to compress the kernel image using appropriate
# compression options depending on the architecture.
#
# Author: Lasse Collin <lasse.collin@tukaani.org>
#
# This file has been put into the public domain.
# You can do whatever you want with this file.
#

BCJ=
LZMA2OPTS=

case $SRCARCH in
	x86)            BCJ=--x86 ;;
	powerpc)        BCJ=--powerpc ;;
	ia64)           BCJ=--ia64; LZMA2OPTS=pb=4 ;;
	arm)            BCJ=--arm$S64 ;;
	sparc)          BCJ=--sparc ;;
esac

if grep -q '^CONFIG_THUMB2_BAREBOX=y$' include/config/auto.conf; then
	BCJ=--armthumb
fi

# clear BCJ filter if unsupported
if [ -n "${BCJ}" ]; then
	xz -H | grep -q -- $BCJ || BCJ=
fi

exec xz --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB