# HG changeset patch # User Sinseman44 # Date 1316724578 -7200 # Node ID b94e0f9d15a32a1660997cb58cbbe499999938d8 # Parent 7df89370f80537d1b36b2fda70e3a1c6bc237a65 kernel/linux: use a custom kernel source directory Allows using either a tarball or a directory as the custom kernel source location. Signed-off-by: Vincent BENOIT [yann.morin.1998@anciens.enib.fr: fix space damage, detailed commit message] Signed-off-by: "Yann E. MORIN" diff -r 7df89370f805 -r b94e0f9d15a3 config/kernel/linux.in --- a/config/kernel/linux.in Wed Sep 21 22:42:35 2011 +0200 +++ b/config/kernel/linux.in Thu Sep 22 22:49:38 2011 +0200 @@ -140,16 +140,17 @@ config KERNEL_LINUX_CUSTOM bool - prompt "custom tarball" + prompt "custom tarball or directory" help - Use a local tarball of a complete kernel source tree. + Use a local tarball or local kernel directory of a complete kernel source tree. -config KERNEL_LINUX_CUSTOM_TARBALL +config KERNEL_LINUX_CUSTOM_LOCATION string - prompt "Path to custom tarball" + prompt "Path to custom source, tarball or directory" depends on KERNEL_LINUX_CUSTOM help - Enter here the path to the tarball of your full kernel tree. + Enter here the path to the tarball of your full kernel tree or + kernel directory endchoice diff -r 7df89370f805 -r b94e0f9d15a3 scripts/build/kernel/linux.sh --- a/scripts/build/kernel/linux.sh Wed Sep 21 22:42:35 2011 +0200 +++ b/scripts/build/kernel/linux.sh Thu Sep 22 22:49:38 2011 +0200 @@ -25,17 +25,23 @@ fi if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" ]; then - # Wee need to know the custom tarball extension, - # so we can cerate a properly-named symlink, which - # we use later on in 'extract' - case "${CT_KERNEL_LINUX_CUSTOM_TARBALL}" in - *.tar.bz2) custom_name="linux-custom.tar.bz2";; - *.tar.gz|*.tgz) custom_name="linux-custom.tar.gz";; - *.tar) custom_name="linux-custom.tar";; - *) CT_Abort "Unknown extension for custom linux tarball '${CT_KERNEL_LINUX_CUSTOM_TARBALL}'";; - esac - CT_DoExecLog DEBUG ln -sf "${CT_KERNEL_LINUX_CUSTOM_TARBALL}" \ - "${CT_TARBALLS_DIR}/${custom_name}" + if [ ! -d "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" ]; then + # Wee need to know the custom tarball extension, + # so we can create a properly-named symlink, which + # we use later on in 'extract' + case "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" in + *.tar.bz2) custom_name="linux-custom.tar.bz2";; + *.tar.gz|*.tgz) custom_name="linux-custom.tar.gz";; + *.tar) custom_name="linux-custom.tar";; + *) CT_Abort "Unknown extension for custom linux tarball '${CT_KERNEL_LINUX_CUSTOM_LOCATION}'";; + esac + CT_DoExecLog DEBUG ln -sf "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" \ + "${CT_TARBALLS_DIR}/${custom_name}" + else + custom_name="linux-custom" + CT_DoExecLog DEBUG ln -s "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" \ + "${CT_SRC_DIR}/${custom_name}" + fi else # Not a custom tarball case "${CT_KERNEL_VERSION}" in 2.6.*.*|3.*.*) @@ -64,9 +70,11 @@ # Extract kernel do_kernel_extract() { - if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then + if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" \ + -o -d "${CT_KERNEL_LINUX_CUSTOM_LOCATION}" ]; then return 0 fi + # This also handles the custom tarball CT_Extract "linux-${CT_KERNEL_VERSION}" CT_Patch "linux" "${CT_KERNEL_VERSION}"