vyos-build/scripts/build-kernel
Runar Borge 081bf77f86 Added build-kernel script and almost total rewrite of build-submodules
The build-kernel script was forgotten to commit, it is needed to build the kernel

To make the build-submodules script more readable and extendible i've almost totally rewritten it using functions
the build process is also started in its own subshell, so that we dont need to hold track of the current directory and make error handling/status info easier
2019-01-06 00:21:18 +01:00

37 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
if [ ! -f "Makefile" ]; then
echo "Makefile missing, This script needs to be executed inside the vyos-kernel package directory"
exit 1
fi
if grep -Fxq "KBUILD_OUTPUT" Makefile; then
echo "Wrong Makefile?, This script needs to be executed inside the vyos-kernel package directory"
exit 1
fi
# newer Kernel versions come with a "# SPDX-License-Identifier: GPL-2.0" identifier
# as the first line in the file - use compatible approach with grep rather then sed
VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}')
PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}')
SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}')
ARCH=$(dpkg --print-architecture)
case "$ARCH" in
amd64)
make x86_64_vyos_defconfig
TARGETS="kernel_source kernel_debug kernel_headers kernel_image"
# the following targets are not supported for Linux Kernels > 4.14 as
# they have been removed from the Makefile (commits 18afab8c1d3c2 &
# 22cba31bae9dc).
if [ ${PATCHLEVEL} -lt 14 ]; then
TARGETS+=" kernel_manual kernel_doc"
fi
CONCURRENCY_LEVEL=4 LOCALVERSION="" make-kpkg --rootcmd fakeroot --initrd --append_to_version -amd64-vyos --revision=$VERSION.$PATCHLEVEL.$SUBLEVEL-1+vyos1+current1 -j4 ${TARGETS}
;;
armhf)
make armhf_vyos_defconfig
;;
esac