/[gentoo-x86]/eclass/linux-info.eclass
Gentoo

Diff of /eclass/linux-info.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.36 Revision 1.42
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v 1.36 2006/01/01 01:14:59 swegener Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v 1.42 2006/03/03 22:11:28 johnm Exp $
4# 4#
5# Description: This eclass is used as a central eclass for accessing kernel 5# Description: This eclass is used as a central eclass for accessing kernel
6# related information for sources already installed. 6# related information for sources already installed.
7# It is vital for linux-mod to function correctly, and is split 7# It is vital for linux-mod to function correctly, and is split
8# out so that any ebuild behaviour "templates" are abstracted out 8# out so that any ebuild behaviour "templates" are abstracted out
22# CONFIG_CHECK <string> a list of .config options to check for before 22# CONFIG_CHECK <string> a list of .config options to check for before
23# proceeding with the install. ie: CONFIG_CHECK="MTRR" 23# proceeding with the install. ie: CONFIG_CHECK="MTRR"
24# You can also check that an option doesn't exist by 24# You can also check that an option doesn't exist by
25# prepending it with an exclamation mark (!). 25# prepending it with an exclamation mark (!).
26# ie: CONFIG_CHECK="!MTRR" 26# ie: CONFIG_CHECK="!MTRR"
27# To simply warn about a missing option, prepend a '~'.
27# ERROR_CFG <string> The error message to display when the above check 28# ERROR_CFG <string> The error message to display when the above check
28# fails. <CFG> should reference the appropriate option 29# fails. <CFG> should reference the appropriate option
29# as above. ie: ERROR_MTRR="MTRR exists in the .config 30# as above. ie: ERROR_MTRR="MTRR exists in the .config
30# but shouldn't!!" 31# but shouldn't!!"
31# KBUILD_OUTPUT <string> This is passed on commandline, or can be set from 32# KBUILD_OUTPUT <string> This is passed on commandline, or can be set from
50 51
51# And to ensure all the weirdness with crosscompile 52# And to ensure all the weirdness with crosscompile
52inherit toolchain-funcs versionator 53inherit toolchain-funcs versionator
53 54
54EXPORT_FUNCTIONS pkg_setup 55EXPORT_FUNCTIONS pkg_setup
56
57DEPEND="kernel_linux? ( virtual/linux-sources )"
58RDEPEND=""
55 59
56# Overwritable environment Var's 60# Overwritable environment Var's
57# --------------------------------------- 61# ---------------------------------------
58KERNEL_DIR="${KERNEL_DIR:-${ROOT}usr/src/linux}" 62KERNEL_DIR="${KERNEL_DIR:-${ROOT}usr/src/linux}"
59 63
113 basefname="$(basename ${2})" 117 basefname="$(basename ${2})"
114 basedname="$(dirname ${2})" 118 basedname="$(dirname ${2})"
115 unset ARCH 119 unset ARCH
116 120
117 cd "${basedname}" 121 cd "${basedname}"
118 echo -e "include ${basefname}\ne:\n\t@echo \$(${1})" | \ 122 echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | \
119 make ${BUILD_FIXES} -s -f - e 2>/dev/null 123 make ${BUILD_FIXES} -s -f - 2>/dev/null
120 cd "${workingdir}" 124 cd "${workingdir}"
121 125
122 ARCH=${myARCH} 126 ARCH=${myARCH}
123 fi 127 fi
124} 128}
286 qeinfo "Found kernel object directory:" 290 qeinfo "Found kernel object directory:"
287 qeinfo " ${KV_OUT_DIR}" 291 qeinfo " ${KV_OUT_DIR}"
288 292
289 KV_LOCAL="$(get_localversion ${KV_OUT_DIR})" 293 KV_LOCAL="$(get_localversion ${KV_OUT_DIR})"
290 fi 294 fi
291 # and if we STILL haven't got it, then we better just set it to KV_DIR 295 # and if we STILL have not got it, then we better just set it to KV_DIR
292 KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}" 296 KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}"
293
294 KV_LOCAL="${KV_LOCAL}$(get_localversion ${KV_DIR})"
295 KV_LOCAL="${KV_LOCAL}$(linux_chkconfig_string LOCALVERSION)"
296 KV_LOCAL="${KV_LOCAL//\"/}"
297
298 # And we should set KV_FULL to the full expanded version
299 KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}"
300
301 qeinfo "Found sources for kernel version:"
302 qeinfo " ${KV_FULL}"
303 297
304 if [ ! -s "${KV_OUT_DIR}/.config" ] 298 if [ ! -s "${KV_OUT_DIR}/.config" ]
305 then 299 then
306 qeerror "Could not find a usable .config in the kernel source directory." 300 qeerror "Could not find a usable .config in the kernel source directory."
307 qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources." 301 qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources."
308 qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that" 302 qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that"
309 qeerror "it points to the necessary object directory so that it might find .config." 303 qeerror "it points to the necessary object directory so that it might find .config."
310 return 1 304 return 1
311 fi 305 fi
306
307 KV_LOCAL="${KV_LOCAL}$(get_localversion ${KV_DIR})"
308 KV_LOCAL="${KV_LOCAL}$(linux_chkconfig_string LOCALVERSION)"
309 KV_LOCAL="${KV_LOCAL//\"/}"
310
311 # And we should set KV_FULL to the full expanded version
312 KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}"
313
314 qeinfo "Found sources for kernel version:"
315 qeinfo " ${KV_FULL}"
312 316
313 return 0 317 return 0
314} 318}
315 319
316get_running_version() { 320get_running_version() {
409 temp_config="${config//*:}" 413 temp_config="${config//*:}"
410 config="${config//:*}" 414 config="${config//:*}"
411 if linux_chkconfig_present ${config}; then 415 if linux_chkconfig_present ${config}; then
412 for i in ${MODULE_NAMES}; do 416 for i in ${MODULE_NAMES}; do
413 n="${i//${temp_config}}" 417 n="${i//${temp_config}}"
414 [[ -z ${n//(*} ]] && \ 418 [[ -z ${n//\(*} ]] && \
415 MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}" 419 MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}"
416 done 420 done
417 error=2 421 error=2
418 fi 422 fi
419 else 423 else

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.42

  ViewVC Help
Powered by ViewVC 1.1.20