blob: 746f17252992f8f80a49fd9004bc9600cc97081e [file] [log] [blame]
#!/bin/bash -ex
VERS="master v4.17 v4.16 v4.13 v4.12 v4.11 v4.10"
nproc=$(/usr/bin/getconf _NPROCESSORS_ONLN)
basedir=$(pwd)
function cleanup()
{
cd "$basedir"
[ ! -d linux ] || rm -rf linux
[ ! -d "linux-$KERNEL" ] || rm -rf "linux-$KERNEL"
make distclean || :
}
function clone_kernel()
{
git clone https://github.com/torvalds/linux
}
function download_kernel()
{
VER="$1"
URL="https://www.kernel.org/pub/linux/kernel/v4.x/linux-$VER.tar.xz"
wget "$URL"
tar xf "linux-$VER.tar.xz"
}
function __prep_kernel()
{
make mrproper
make allmodconfig
make -j $nproc modules_prepare
make -j $nproc headers_install
KERNEL_HEADERS=$(pwd)/usr/include
popd
}
function git_prep_kernel()
{
VER="$1"
pushd "linux"
git checkout "$VER"
__prep_kernel
}
function download_prep_kernel()
{
VER="$1"
pushd "linux-$VER"
__prep_kernel
}
function build_lksctp()
{
make distclean || :
./bootstrap
#CFLAGS="-Werror"
if [ -n "$KERNEL_HEADERS" ]; then
CFLAGS="$CFLAGS -I$KERNEL_HEADERS"
fi
export CFLAGS
./configure
make -j $nproc
#make -j $nproc distcheck
}
trap cleanup EXIT
if [ -z "$KERNEL" ]; then
clone_kernel
for ver in $VERS; do
git_prep_kernel "$ver"
build_lksctp
done
else
download_kernel "$KERNEL"
download_prep_kernel "$KERNEL"
build_lksctp
fi