diff options
Diffstat (limited to 'kbuild.sh')
-rwxr-xr-x | kbuild.sh | 37 |
1 files changed, 22 insertions, 15 deletions
@@ -1,10 +1,16 @@ -#!/bin/sh +#!/bin/bash # SPDX-License-Identifier: GPL-2.0+ set -e kbuild_root=$(dirname $(readlink -f "$0")) +declare -A cross_compile + +if [[ -r $kbuild_root/config.sh ]] ; then + source $kbuild_root/config.sh || exit 1 +fi + #kbuild_options='CONFIG_DEBUG_SECTION_MISMATCH=y' #kbuild_options='C=1' kbuild_options="KALLSYMS_EXTRA_PASS=0" @@ -113,17 +119,16 @@ fi source "${kbuild_root}/arch/$arch.sh" || exit 1 -target_dir=${target_dir:-$nfs_root/$arch_dir} +target_dir=${target_dir:-${target_root[$arch]}} output_dir=$PWD/output/$arch_dir # -# Parallelize make with twice as many jobs as CPUs +# Build environment and tools # num_cpus=$(cat /proc/cpuinfo | grep '^processor\b' | wc -l) -pmake="make -j$((num_cpus*2))" - -kbuild_options="$kbuild_options KCFLAGS='$kcflags'" +make="make ARCH=$arch O=$output_dir CROSS_COMPILE=${cross_compile[$arch]}" +pmake="$make -j$((num_cpus*2))" echo "Compiling for platform $platform with $num_cpus CPUs" @@ -132,12 +137,12 @@ mkdir -p $output_dir/ if [[ -n "$opt_defconfig" ]] ; then mkdir -p $output_dir/arch/$arch/configs/ cp $opt_defconfig $output_dir/arch/$arch/configs/build_defconfig - make ARCH=$arch O=$output_dir build_defconfig + $make build_defconfig rm $output_dir/arch/$arch/configs/build_defconfig fi if [[ $do_menu_config = 1 ]] ; then - make ARCH=$arch O=$output_dir menuconfig + $make menuconfig exit 0 fi @@ -146,7 +151,7 @@ fi # if [[ $do_compile_doc = 1 ]] ; then - $pmake ARCH=$arch O=$output_dir DOCBOOKS='' htmldocs + $pmake DOCBOOKS='' htmldocs fi # @@ -159,13 +164,11 @@ for dtb in $dtbs ; do kernel_dtbs="$kernel_dtbs $dtb" done -eval $pmake ARCH=$arch O=$output_dir CROSS_COMPILE=$cross_compile $kbuild_options \ - $image_kernel $kernel_dtbs +$pmake $kbuild_options KCFLAGS="$kcflags" $image_kernel $kernel_dtbs grep 'CONFIG_MODULES=y' $output_dir/.config > /dev/null && modules=modules if [[ x$modules == xmodules ]] ; then - eval $pmake ARCH=$arch O=$output_dir CROSS_COMPILE=$cross_compile $kbuild_options \ - $modules + $pmake $kbuild_options KCFLAGS="$kcflags" $modules fi version=$(cat $output_dir/include/generated/utsrelease.h | cut -d '"' -f 2) @@ -206,11 +209,15 @@ if [[ $image != FIT && $image != CrOS ]] ; then fi if [[ x$modules = xmodules ]] ; then - $pmake ARCH=$arch O=$output_dir CROSS_COMPILE=$cross_compile INSTALL_MOD_PATH=$target_dir modules_install + $pmake INSTALL_MOD_PATH=$target_dir modules_install fi +# +# Create the Debian package if requested +# + if [[ $do_package_deb = 1 ]] ; then - $pmake ARCH=$arch O=$output_dir CROSS_COMPILE=$cross_compile bindeb-pkg + $pmake bindeb-pkg fi # |