summaryrefslogtreecommitdiff
path: root/scripts/build-kernel
diff options
context:
space:
mode:
authorRunar Borge <runar@borge.nu>2019-01-06 00:21:18 +0100
committerRunar Borge <runar@borge.nu>2019-01-06 00:21:18 +0100
commit081bf77f86881b9c2438902595193c2a311b02cd (patch)
tree76f80dc3424f1a5b9a9b509a5bc83b7ddac4de45 /scripts/build-kernel
parentc329a9291c58a9cd340035b5508c3b869d094fd8 (diff)
downloadvyos-build-081bf77f86881b9c2438902595193c2a311b02cd.tar.gz
vyos-build-081bf77f86881b9c2438902595193c2a311b02cd.zip
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
Diffstat (limited to 'scripts/build-kernel')
-rwxr-xr-xscripts/build-kernel36
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/build-kernel b/scripts/build-kernel
new file mode 100755
index 00000000..80229d5d
--- /dev/null
+++ b/scripts/build-kernel
@@ -0,0 +1,36 @@
+#!/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