File install_all.sh of Package linux-glibc-devel

#!/bin/bash
# bash -x $0 linux.git tag [sle_base kernel-source.git]
set -e

. ./install_sle.sh

kernel=$1
tag=$2
sle_base=""
kernel_src_dir=""
version=""
if test $# -lt 2 || ! test -d "$1"; then
  echo "Usage: ${0##*/} linux.git tag [sle_base kernel-source.git]"
  exit 1
fi

# if we create the package for SLE we need kernel-source
if test $# -eq 4; then
	sle_base=$3
	kernel_src_dir="$PWD/kernel-source"
	git clone --single-branch -b "$tag" "$4" "$kernel_src_dir"
fi

if [ -n "$sle_base" ]; then
	pushd $kernel_src_dir
	version=$(grep SRCVERSION rpm/config.sh | cut -d'=' -f2)
	popd
else
	version=${tag#v}
fi

case $PWD in
  *:*)
    echo "do not call this in a directory with : - make will fail"
    exit 1
    ;;
esac

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 "$tag" "$kernel" "$kernel_dir"
date=$(git -C "$kernel_dir" cat-file -p "v$version" | 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"

if [ -n "$sle_base" ]; then
	create_sle_changelog
	rm -rf "$kernel_src_dir"
fi

rm -rf "$header_dir" "$kernel_dir"
openSUSE Build Service is sponsored by