File linux-kernel-headers_install_all.sh of Package linux-kernel-headers
#!/bin/bash
# bash -x $0 linux-1.2.3.tar.bz2
kernel=$1
lazy_tar=
if ! test -f "$1"
then
echo "Usage: ${0##*/} linux-1.2.3.tar.gz"
exit 1
fi
case "$1" in
*.bz2) lazy_tar=j ;;
*.gz) lazy_tar=z ;;
*.tar) lazy_tar= ;;
esac
kernel_dir="`tar tvf$lazy_tar $1 | sed '1 {s@^.*[[:blank:]]@@;s@linux-@@;s@/.*$@@;s@^\([0-9]\+\.[0-9]\+\.[0-9]\+\)\(.*\)@\1@;p;Q}'`"
header_dir="$PWD/linux-kernel-headers-$kernel_dir"
if test -d "$kernel_dir"
then
echo "$kernel_dir exists, remove it first."
exit 1
fi
if ! mkdir "$header_dir"
then
echo "$header_dir exists, remove it first."
exit 1
fi
tar xf$lazy_tar $1
pushd linux-${kernel_dir}*
make O="$header_dir" headers_install_all
popd
pushd "$header_dir"
for asm in \
alpha \
avr32 \
bi-sparc64 \
blackfin \
cris \
frv \
h8300 \
m32r \
m68k \
m68knommu \
mips \
mn10300 \
sh \
sh64 \
sparc \
sparc64 \
v850 \
xtensa \
; do
rm -rf usr/include/asm-$asm
done
for dir in *
do
case "$dir" in
usr) ;;
*)
if test -d "$dir"
then
rm -rf "$dir"
fi
;;
esac
done
popd
du -s "$header_dir/usr"
tar cfj "$header_dir.tar.bz2" "${header_dir##*/}"