summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-05-19 20:54:02 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-05-19 22:03:15 +0300
commitcf37abf4b59405c730af52373631c8e819e1693b (patch)
treeafbd7a2f0e19e614efe4780976f8cfb2b1b0a37e
parent7a542d4685631c369bcc65a632a15799543fc292 (diff)
Move cross compiler configuration to separate config.sh file
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--arch/arm.sh1
-rw-r--r--arch/arm64.sh1
-rw-r--r--arch/x86.sh1
-rw-r--r--config.sh7
-rwxr-xr-xkbuild.sh37
5 files changed, 29 insertions, 18 deletions
diff --git a/arch/arm.sh b/arch/arm.sh
index 53462fb..4995c00 100644
--- a/arch/arm.sh
+++ b/arch/arm.sh
@@ -1,3 +1,2 @@
arch_dir=arm32
-cross_compile=arm-buildroot-linux-uclibcgnueabihf-
image_kernel=zImage
diff --git a/arch/arm64.sh b/arch/arm64.sh
index a4b4b87..e5fbed3 100644
--- a/arch/arm64.sh
+++ b/arch/arm64.sh
@@ -1,3 +1,2 @@
arch_dir=arm64
-cross_compile=aarch64-buildroot-linux-gnu-
image_kernel=Image
diff --git a/arch/x86.sh b/arch/x86.sh
index 50edef3..249a8f7 100644
--- a/arch/x86.sh
+++ b/arch/x86.sh
@@ -1,3 +1,2 @@
arch_dir=x86
-cross_compile=
image_kernel=bzImage
diff --git a/config.sh b/config.sh
new file mode 100644
index 0000000..cedf643
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,7 @@
+#
+# Cross-compilers
+#
+# Variable name: cross_compile[]
+#
+cross_compile[arm]=arm-buildroot-linux-uclibcgnueabihf-
+cross_compile[arm64]=aarch64-buildroot-linux-gnu-
diff --git a/kbuild.sh b/kbuild.sh
index 98a59bc..15e1dc7 100755
--- a/kbuild.sh
+++ b/kbuild.sh
@@ -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
#