75 lines
1.9 KiB
Bash
75 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# bash -x $0 linux.git tag
|
|
set -e
|
|
kernel=$1
|
|
if test $# -ne 2 || ! test -d "$1" || test "$2" = "${2#v}"; then
|
|
echo "Usage: ${0##*/} linux.git tag"
|
|
exit 1
|
|
fi
|
|
case $PWD in
|
|
*:*)
|
|
echo "do not call this in a directory with : - make will fail"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
version=${2#v}
|
|
kernel_dir=linux-$version
|
|
header_dir="$PWD/linux-glibc-devel-$version"
|
|
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
|
|
git clone --single-branch -b "$2" "$1" "$kernel_dir"
|
|
date=$(git -C "$kernel_dir" cat-file -p "$2" | awk '/^tagger/ { print $(NF-1) }')
|
|
date -d "@$date" || exit 1
|
|
remove="arc csky h8300 hexagon microblaze nds32 nios2 openrisc sh xtensa um"
|
|
archs=$(cd "$kernel_dir/arch" &&
|
|
for arch in *; do
|
|
test -d $arch || continue
|
|
case " $remove " in *" $arch "*) continue;; esac
|
|
echo $arch
|
|
done)
|
|
pushd "$kernel_dir"
|
|
for arch in $archs; do
|
|
mkdir "$header_dir/$arch"
|
|
cp Makefile "$header_dir/$arch"
|
|
make O="$header_dir/$arch" headers_install ARCH=$arch
|
|
done
|
|
popd
|
|
pushd "$header_dir"
|
|
find -type f \( -name ".*.cmd" -o -name Makefile \) -exec rm {} +
|
|
for arch in $archs; do
|
|
cd $arch
|
|
#-------------------------------------------------------------------
|
|
#Fri Sep 5 10:43:49 CEST 2008 - matz@suse.de
|
|
|
|
#- Remove the kernel version of drm headers, they conflict
|
|
# with the libdrm ones, and those are slightly newer.
|
|
#
|
|
rm -rf usr/include/drm/
|
|
# Remove confusing empty uapi directory
|
|
test ! -d usr/include/uapi || rmdir usr/include/uapi
|
|
for dir in *; do
|
|
case "$dir" in
|
|
usr) ;;
|
|
*)
|
|
if test -d "$dir"; then
|
|
rm -rf "$dir"
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
cd ..
|
|
done
|
|
popd
|
|
du -sh "$header_dir"
|
|
tar -cJf "$header_dir.tar.xz" --owner=root --group=root --mtime="@$date" \
|
|
--sort=name "${header_dir##*/}"
|
|
touch -d "@$date" "$header_dir.tar.xz"
|
|
rm -rf "$header_dir" "$kernel_dir"
|