1.1 --- a/scripts/build/kernel_linux.sh Sat Feb 24 11:00:05 2007 +0000
1.2 +++ b/scripts/build/kernel_linux.sh Sat Apr 21 17:31:51 2007 +0000
1.3 @@ -6,7 +6,9 @@
1.4 do_kernel_check_config() {
1.5 CT_DoStep INFO "Checking kernel configuration"
1.6
1.7 - CT_TestOrAbort "You did not provide a kernel config file!" -n "${CT_KERNEL_LINUX_CONFIG_FILE}" -a -f "${CT_KERNEL_LINUX_CONFIG_FILE}"
1.8 + if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" != "y" ]; then
1.9 + CT_TestOrAbort "You did not provide a kernel config file!" -n "${CT_KERNEL_LINUX_CONFIG_FILE}" -a -f "${CT_KERNEL_LINUX_CONFIG_FILE}"
1.10 + fi
1.11
1.12 CT_EndStep
1.13 }
1.14 @@ -15,34 +17,39 @@
1.15 do_kernel_headers() {
1.16 CT_DoStep INFO "Installing kernel headers"
1.17
1.18 - # We need to enter this directory to find the kernel version strings
1.19 - cd "${CT_SRC_DIR}/${CT_KERNEL_FILE}"
1.20 - if [ "${CT_KERNEL_LINUX_HEADERS_SANITISED}" != "y" ]; then
1.21 - k_version=`awk '/^VERSION =/ { print $3 }' Makefile`
1.22 - k_patchlevel=`awk '/^PATCHLEVEL =/ { print $3 }' Makefile`
1.23 - k_sublevel=`awk '/^SUBLEVEL =/ { print $3 }' Makefile`
1.24 - k_extraversion=`awk '/^EXTRAVERSION =/ { print $3 }' Makefile`
1.25 + # Special case when using pre-installed headers
1.26 + if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
1.27 + do_kernel_preinstalled
1.28 else
1.29 - k_version=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 1`
1.30 - k_patchlevel=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 2`
1.31 - k_sublevel=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 3`
1.32 - k_extraversion=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 4`
1.33 - fi
1.34 + # We need to enter this directory to find the kernel version strings
1.35 + cd "${CT_SRC_DIR}/${CT_KERNEL_FILE}"
1.36 + if [ "${CT_KERNEL_LINUX_HEADERS_SANITISED}" != "y" ]; then
1.37 + k_version=`awk '/^VERSION =/ { print $3 }' Makefile`
1.38 + k_patchlevel=`awk '/^PATCHLEVEL =/ { print $3 }' Makefile`
1.39 + k_sublevel=`awk '/^SUBLEVEL =/ { print $3 }' Makefile`
1.40 + k_extraversion=`awk '/^EXTRAVERSION =/ { print $3 }' Makefile`
1.41 + else
1.42 + k_version=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 1`
1.43 + k_patchlevel=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 2`
1.44 + k_sublevel=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 3`
1.45 + k_extraversion=`echo "${CT_KERNEL_VERSION}." |cut -d . -f 4`
1.46 + fi
1.47
1.48 - case "${k_version}.${k_patchlevel}" in
1.49 - 2.2|2.4|2.6) ;;
1.50 - *) CT_Abort "Unsupported kernel version \"linux-${k_version}.${k_patchlevel}\".";;
1.51 - esac
1.52 + case "${k_version}.${k_patchlevel}" in
1.53 + 2.2|2.4|2.6) ;;
1.54 + *) CT_Abort "Unsupported kernel version \"linux-${k_version}.${k_patchlevel}\".";;
1.55 + esac
1.56
1.57 - # Kernel version that support verbosity will use this, others will ignore it:
1.58 - V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
1.59 + # Kernel version that support verbosity will use this, others will ignore it:
1.60 + V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
1.61
1.62 - if [ "${CT_KERNEL_LINUX_HEADERS_INSTALL}" = "y" ]; then
1.63 - do_kernel_install
1.64 - elif [ "${CT_KERNEL_LINUX_HEADERS_SANITISED}" = "y" ]; then
1.65 - do_kernel_sanitised
1.66 - else [ "${CT_KERNEL_LINUX_HEADERS_COPY}" = "y" ];
1.67 - do_kernel_copy
1.68 + if [ "${CT_KERNEL_LINUX_HEADERS_INSTALL}" = "y" ]; then
1.69 + do_kernel_install
1.70 + elif [ "${CT_KERNEL_LINUX_HEADERS_SANITISED}" = "y" ]; then
1.71 + do_kernel_sanitised
1.72 + else [ "${CT_KERNEL_LINUX_HEADERS_COPY}" = "y" ];
1.73 + do_kernel_copy
1.74 + fi
1.75 fi
1.76
1.77 CT_EndStep
1.78 @@ -146,3 +153,14 @@
1.79 cp -rv include/linux "${CT_HEADERS_DIR}" 2>&1 |CT_DoLog DEBUG
1.80 cp -rv include/asm-${CT_KERNEL_ARCH} "${CT_HEADERS_DIR}/asm" 2>&1 |CT_DoLog DEBUG
1.81 }
1.82 +
1.83 +# Use preinstalled headers (most probably by using make headers_install in a
1.84 +# modified (read: customised) kernel tree). In this case, simply copy
1.85 +# the headers in place
1.86 +do_kernel_preinstalled() {
1.87 + CT_DoLog EXTRA "Copying preinstalled kernel headers"
1.88 +
1.89 + mkdir -p "${CT_SYSROOT_DIR}/usr"
1.90 + cd "${CT_KERNEL_LINUX_HEADERS_CUSTOM_DIR}"
1.91 + cp -rv include "${CT_SYSROOT_DIR}/usr" 2>&1 |CT_DoLog DEBUG
1.92 +}