scripts/build/kernel_linux.sh
changeset 45 42faddd0098a
parent 1 eeea35fbf182
child 49 f431118daec4
     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 +}