mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-26 11:41:35 +01:00
build: only set Linux kernel cli config if options changed
Otherwise, the Linux kernel gets rebuilt every time, which adds a few seconds to every rebuild.
This commit is contained in:
15
build
15
build
@@ -7,8 +7,9 @@ br2_cli_file="${out_dir}/br2_cli"
|
|||||||
rm -f "$br2_cli_file"
|
rm -f "$br2_cli_file"
|
||||||
touch "$br2_cli_file"
|
touch "$br2_cli_file"
|
||||||
kernel_config_fragment_cli_file="${out_dir}/kernel_config_fragment_cli"
|
kernel_config_fragment_cli_file="${out_dir}/kernel_config_fragment_cli"
|
||||||
rm -f "$kernel_config_fragment_cli_file"
|
kernel_config_fragment_cli_file_tmp="${kernel_config_fragment_cli_file}_tmp"
|
||||||
touch "$kernel_config_fragment_cli_file"
|
rm -f "$kernel_config_fragment_cli_file_tmp"
|
||||||
|
touch "$kernel_config_fragment_cli_file_tmp"
|
||||||
configure=true
|
configure=true
|
||||||
config_fragments="${root_dir}/br2/default"
|
config_fragments="${root_dir}/br2/default"
|
||||||
extra_make_args=
|
extra_make_args=
|
||||||
@@ -32,7 +33,7 @@ while getopts 'a:B:b:C:c:fGgj:hIiK:kL:lM:p:qSs:v' OPT; do
|
|||||||
config_fragments="${config_fragments} $(common_abspath "${OPTARG}")"
|
config_fragments="${config_fragments} $(common_abspath "${OPTARG}")"
|
||||||
;;
|
;;
|
||||||
C)
|
C)
|
||||||
echo "$OPTARG" >> "$kernel_config_fragment_cli_file"
|
echo "$OPTARG" >> "$kernel_config_fragment_cli_file_tmp"
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
kernel_config_fragments="${kernel_config_fragments} $(common_abspath "${OPTARG}")"
|
kernel_config_fragments="${kernel_config_fragments} $(common_abspath "${OPTARG}")"
|
||||||
@@ -125,8 +126,13 @@ case "$arch" in
|
|||||||
esac
|
esac
|
||||||
config_fragments="${config_fragments} ${root_dir}/br2/qemu ${br2_cli_file}"
|
config_fragments="${config_fragments} ${root_dir}/br2/qemu ${br2_cli_file}"
|
||||||
|
|
||||||
|
time {
|
||||||
# Configure.
|
# Configure.
|
||||||
if "$configure"; then
|
if "$configure"; then
|
||||||
|
if ! cmp "${kernel_config_fragment_cli_file}" "${kernel_config_fragment_cli_file_tmp}"; then
|
||||||
|
# Only copy if modified, otherwise the kernel always rebuilds.
|
||||||
|
cp "${kernel_config_fragment_cli_file_tmp}" "${kernel_config_fragment_cli_file}"
|
||||||
|
fi
|
||||||
cd "${buildroot_dir}"
|
cd "${buildroot_dir}"
|
||||||
for p in $(find "${root_dir}/buildroot_patches/" -maxdepth 1 -name '*.patch' -print); do
|
for p in $(find "${root_dir}/buildroot_patches/" -maxdepth 1 -name '*.patch' -print); do
|
||||||
patch -N -r - -p 1 < "$p" || :
|
patch -N -r - -p 1 < "$p" || :
|
||||||
@@ -171,6 +177,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS=\"${post_script_args}\"
|
|||||||
fi
|
fi
|
||||||
make O="$buildroot_out_dir" olddefconfig
|
make O="$buildroot_out_dir" olddefconfig
|
||||||
fi
|
fi
|
||||||
|
echo 'config time:'
|
||||||
|
}
|
||||||
|
echo
|
||||||
|
|
||||||
common_mkdir
|
common_mkdir
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user