summaryrefslogtreecommitdiff
path: root/build-test-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'build-test-kernel')
-rwxr-xr-xbuild-test-kernel16
1 files changed, 15 insertions, 1 deletions
diff --git a/build-test-kernel b/build-test-kernel
index 7ea4823..0a5388e 100755
--- a/build-test-kernel
+++ b/build-test-kernel
@@ -19,6 +19,7 @@ ktest_kernel_source="." # dir of kernel source
# set with: -k <path>
# defaults: current directory
ktest_njobs=$(nproc)
+ktest_precise=false
COVERAGE="" # doing code coverage?
MAKEARGS=()
@@ -56,11 +57,14 @@ fi
CMD="$1"
shift
-while getopts "k:c:h${ktest_args}" arg; do
+while getopts "k:Pc:h${ktest_args}" arg; do
case $arg in
k)
ktest_kernel_source="$OPTARG"
;;
+ P)
+ ktest_precise=true
+ ;;
c)
if [[ ! -d $OPTARG ]]; then
echo "$OPTARG must be a directory"
@@ -173,6 +177,11 @@ build_kernel()
{
rm -rf "$ktest_kernel_binary"
mkdir -p "$ktest_kernel_binary"
+ local kconfig="$ktest_kernel_build/.config"
+
+ if $ktest_precise && [[ -f "$kconfig" ]]; then
+ mv "$kconfig" "$kconfig".bak
+ fi
new_config
@@ -188,6 +197,11 @@ build_kernel()
[[ -n $opt ]] && kernel_opt check "$opt"
done
+ # Preserve timestamp if config didn't change:
+ if $ktest_precise && [[ -f "$kconfig".bak ]] && diff -q "$kconfig" "$kconfig".bak; then
+ mv "$kconfig".bak "$kconfig"
+ fi
+
case $KERNEL_ARCH in
mips)
do_make -k vmlinuz