author | Titus von Boxberg <tvb377@gmx.de> |
Wed Feb 03 00:24:24 2010 +0100 (2010-02-03) | |
changeset 1797 | 42c618ca576e |
parent 1746 | 5851a36db763 |
child 1901 | bdb3a98e064b |
permissions | -rw-r--r-- |
yann@1345 | 1 |
# This file declares functions to install the kernel headers for linux |
yann@1345 | 2 |
# Copyright 2007 Yann E. MORIN |
yann@1345 | 3 |
# Licensed under the GPL v2. See COPYING in the root of this package |
yann@1345 | 4 |
|
yann@1345 | 5 |
CT_DoKernelTupleValues() { |
yann@1345 | 6 |
if [ "${CT_ARCH_USE_MMU}" = "y" ]; then |
yann@1345 | 7 |
CT_TARGET_KERNEL="linux" |
yann@1345 | 8 |
else |
yann@1345 | 9 |
CT_TARGET_KERNEL="uclinux" |
yann@1345 | 10 |
fi |
yann@1345 | 11 |
} |
yann@1345 | 12 |
|
yann@1345 | 13 |
# Download the kernel |
yann@1345 | 14 |
do_kernel_get() { |
yann@1345 | 15 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then |
yann@1345 | 16 |
CT_GetFile "linux-${CT_KERNEL_VERSION}" \ |
yann@1345 | 17 |
{ftp,http}://ftp.{de.,eu.,}kernel.org/pub/linux/kernel/v2.{6{,/testing},4,2} |
yann@1345 | 18 |
fi |
yann@1345 | 19 |
return 0 |
yann@1345 | 20 |
} |
yann@1345 | 21 |
|
yann@1345 | 22 |
# Extract kernel |
yann@1345 | 23 |
do_kernel_extract() { |
yann@1345 | 24 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then |
yann@1345 | 25 |
CT_Extract "linux-${CT_KERNEL_VERSION}" |
yann@1345 | 26 |
CT_Patch "linux-${CT_KERNEL_VERSION}" |
yann@1345 | 27 |
fi |
yann@1345 | 28 |
return 0 |
yann@1345 | 29 |
} |
yann@1345 | 30 |
|
yann@1345 | 31 |
# Wrapper to the actual headers install method |
yann@1345 | 32 |
do_kernel_headers() { |
yann@1345 | 33 |
CT_DoStep INFO "Installing kernel headers" |
yann@1345 | 34 |
|
yann@1345 | 35 |
if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then |
yann@1345 | 36 |
do_kernel_custom |
yann@1345 | 37 |
else |
yann@1345 | 38 |
do_kernel_install |
yann@1345 | 39 |
fi |
yann@1345 | 40 |
|
yann@1345 | 41 |
CT_EndStep |
yann@1345 | 42 |
} |
yann@1345 | 43 |
|
yann@1345 | 44 |
# Install kernel headers using headers_install from kernel sources. |
yann@1345 | 45 |
do_kernel_install() { |
yann@1345 | 46 |
CT_DoLog DEBUG "Using kernel's headers_install" |
yann@1345 | 47 |
|
yann@1345 | 48 |
mkdir -p "${CT_BUILD_DIR}/build-kernel-headers" |
yann@1345 | 49 |
cd "${CT_BUILD_DIR}/build-kernel-headers" |
yann@1345 | 50 |
|
yann@1345 | 51 |
V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}" |
yann@1345 | 52 |
|
yann@1345 | 53 |
CT_DoLog EXTRA "Installing kernel headers" |
yann@1345 | 54 |
CT_DoExecLog ALL \ |
yann@1345 | 55 |
make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" \ |
yann@1345 | 56 |
O=$(pwd) \ |
yann@1746 | 57 |
ARCH=${CT_ARCH} \ |
yann@1345 | 58 |
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \ |
yann@1345 | 59 |
${V_OPT} \ |
yann@1345 | 60 |
headers_install |
yann@1345 | 61 |
|
yann@1345 | 62 |
if [ "${CT_KERNEL_LINUX_INSTALL_CHECK}" = "y" ]; then |
yann@1345 | 63 |
CT_DoLog EXTRA "Checking installed headers" |
yann@1345 | 64 |
CT_DoExecLog ALL \ |
yann@1345 | 65 |
make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" \ |
yann@1345 | 66 |
O=$(pwd) \ |
yann@1746 | 67 |
ARCH=${CT_ARCH} \ |
yann@1345 | 68 |
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \ |
yann@1345 | 69 |
${V_OPT} \ |
yann@1345 | 70 |
headers_check |
yann@1345 | 71 |
find "${CT_SYSROOT_DIR}" -type f -name '.check*' -exec rm {} \; |
yann@1345 | 72 |
fi |
yann@1345 | 73 |
} |
yann@1345 | 74 |
|
yann@1345 | 75 |
# Use custom headers (most probably by using make headers_install in a |
yann@1345 | 76 |
# modified (read: customised) kernel tree, or using pre-2.6.18 headers, such |
yann@1345 | 77 |
# as 2.4). In this case, simply copy the headers in place |
yann@1345 | 78 |
do_kernel_custom() { |
yann@1345 | 79 |
local tar_opt |
yann@1345 | 80 |
|
yann@1345 | 81 |
CT_DoLog EXTRA "Installing custom kernel headers" |
yann@1345 | 82 |
|
yann@1345 | 83 |
mkdir -p "${CT_SYSROOT_DIR}/usr" |
yann@1345 | 84 |
cd "${CT_SYSROOT_DIR}/usr" |
yann@1345 | 85 |
if [ "${CT_KERNEL_LINUX_CUSTOM_IS_TARBALL}" = "y" ]; then |
yann@1345 | 86 |
case "${CT_KERNEL_LINUX_CUSTOM_PATH}" in |
yann@1345 | 87 |
*.tar) ;; |
yann@1345 | 88 |
*.tgz) tar_opt=--gzip;; |
yann@1345 | 89 |
*.tar.gz) tar_opt=--gzip;; |
yann@1345 | 90 |
*.tar.bz2) tar_opt=--bzip2;; |
yann@1345 | 91 |
*.tar.lzma) tar_opt=--lzma;; |
yann@1345 | 92 |
esac |
yann@1345 | 93 |
CT_DoExecLog ALL tar x ${tar_opt} -vf ${CT_KERNEL_LINUX_CUSTOM_PATH} |
yann@1345 | 94 |
else |
yann@1345 | 95 |
CT_DoExecLog ALL cp -rv "${CT_KERNEL_LINUX_CUSTOM_PATH}/include" . |
yann@1345 | 96 |
fi |
yann@1345 | 97 |
} |