author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
Sun Oct 26 18:02:34 2008 +0000 (2008-10-26) | |
changeset 992 | 8ca91fcf799a |
parent 858 | e815b1a5057c |
child 1017 | 34267fb0912e |
permissions | -rw-r--r-- |
yann@1 | 1 |
# This file declares functions to install the kernel headers for linux |
yann@1 | 2 |
# Copyright 2007 Yann E. MORIN |
yann@1 | 3 |
# Licensed under the GPL v2. See COPYING in the root of this package |
yann@1 | 4 |
|
yann@965 | 5 |
CT_DoKernelTupleValues() { |
yann@965 | 6 |
# Nothing to do, keep the default value |
yann@965 | 7 |
: |
yann@965 | 8 |
} |
yann@965 | 9 |
|
yann@161 | 10 |
do_print_filename() { |
yann@847 | 11 |
echo "linux-${CT_KERNEL_VERSION}" |
yann@161 | 12 |
} |
yann@161 | 13 |
|
yann@63 | 14 |
# Download the kernel |
yann@63 | 15 |
do_kernel_get() { |
yann@858 | 16 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_DIR}" != "y" ]; then |
yann@847 | 17 |
CT_GetFile "${CT_KERNEL_FILE}" {ftp,http}://ftp.kernel.org/pub/linux/kernel/v2.{6{,/testing},4,2} |
yann@63 | 18 |
fi |
yann@63 | 19 |
return 0 |
yann@63 | 20 |
} |
yann@63 | 21 |
|
yann@63 | 22 |
# Extract kernel |
yann@63 | 23 |
do_kernel_extract() { |
yann@858 | 24 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_DIR}" != "y" ]; then |
yann@63 | 25 |
CT_ExtractAndPatch "${CT_KERNEL_FILE}" |
yann@63 | 26 |
fi |
yann@63 | 27 |
return 0 |
yann@63 | 28 |
} |
yann@63 | 29 |
|
yann@1 | 30 |
# Wrapper to the actual headers install method |
yann@1 | 31 |
do_kernel_headers() { |
yann@1 | 32 |
CT_DoStep INFO "Installing kernel headers" |
yann@1 | 33 |
|
yann@858 | 34 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_DIR}" = "y" ]; then |
yann@37 | 35 |
do_kernel_preinstalled |
yann@1 | 36 |
else |
yann@847 | 37 |
do_kernel_install |
yann@1 | 38 |
fi |
yann@1 | 39 |
|
yann@1 | 40 |
CT_EndStep |
yann@1 | 41 |
} |
yann@1 | 42 |
|
yann@1 | 43 |
# Install kernel headers using headers_install from kernel sources. |
yann@1 | 44 |
do_kernel_install() { |
yann@78 | 45 |
CT_DoLog DEBUG "Using kernel's headers_install" |
yann@1 | 46 |
|
yann@1 | 47 |
mkdir -p "${CT_BUILD_DIR}/build-kernel-headers" |
yann@1 | 48 |
cd "${CT_BUILD_DIR}/build-kernel-headers" |
yann@1 | 49 |
|
yann@847 | 50 |
# Only starting with 2.6.18 does headers_install is usable. We only |
yann@847 | 51 |
# have 2.6 version available, so only test for sublevel. |
yann@847 | 52 |
k_sublevel=$(awk '/^SUBLEVEL =/ { print $3 }' "${CT_SRC_DIR}/${CT_KERNEL_FILE}/Makefile") |
yann@847 | 53 |
[ ${k_sublevel} -ge 18 ] || CT_Abort "Kernel version >= 2.6.18 is needed to install kernel headers." |
yann@847 | 54 |
|
yann@847 | 55 |
V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}" |
yann@1 | 56 |
|
yann@1 | 57 |
CT_DoLog EXTRA "Installing kernel headers" |
yann@654 | 58 |
CT_DoExecLog ALL \ |
yann@64 | 59 |
make -C "${CT_SRC_DIR}/${CT_KERNEL_FILE}" \ |
yann@523 | 60 |
O=$(pwd) \ |
yann@64 | 61 |
ARCH=${CT_KERNEL_ARCH} \ |
yann@1 | 62 |
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \ |
yann@1 | 63 |
${V_OPT} \ |
yann@654 | 64 |
headers_install |
yann@1 | 65 |
|
yann@858 | 66 |
if [ "${CT_KERNEL_LINUX_INSTALL_CHECK}" = "y" ]; then |
yann@199 | 67 |
CT_DoLog EXTRA "Checking installed headers" |
yann@654 | 68 |
CT_DoExecLog ALL \ |
yann@199 | 69 |
make -C "${CT_SRC_DIR}/${CT_KERNEL_FILE}" \ |
yann@523 | 70 |
O=$(pwd) \ |
yann@199 | 71 |
ARCH=${CT_KERNEL_ARCH} \ |
yann@199 | 72 |
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \ |
yann@199 | 73 |
${V_OPT} \ |
yann@654 | 74 |
headers_check |
yann@199 | 75 |
find "${CT_SYSROOT_DIR}" -type f -name '.check*' -exec rm {} \; |
yann@199 | 76 |
fi |
yann@1 | 77 |
} |
yann@1 | 78 |
|
yann@37 | 79 |
# Use preinstalled headers (most probably by using make headers_install in a |
yann@847 | 80 |
# modified (read: customised) kernel tree, or using pre-2.6.18 headers, such |
yann@847 | 81 |
# as 2.4). In this case, simply copy the headers in place |
yann@37 | 82 |
do_kernel_preinstalled() { |
yann@37 | 83 |
CT_DoLog EXTRA "Copying preinstalled kernel headers" |
yann@37 | 84 |
|
yann@37 | 85 |
mkdir -p "${CT_SYSROOT_DIR}/usr" |
yann@858 | 86 |
cd "${CT_KERNEL_LINUX_CUSTOM_DIR}" |
yann@858 | 87 |
CT_DoExecLog ALL cp -rv include "${CT_SYSROOT_DIR}/usr" |
yann@37 | 88 |
} |