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

Diff of /eclass/linux-mod.eclass

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

Revision 1.70 Revision 1.78
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 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-mod.eclass,v 1.70 2007/01/01 22:27:01 swegener Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.78 2008/01/22 21:05:32 dsd Exp $
4 4
5# Description: This eclass is used to interface with linux-info in such a way 5# Description: This eclass is used to interface with linux-info in such a way
6# to provide the functionality required and initial functions 6# to provide the functionality required and initial functions
7# required to install external modules against a kernel source 7# required to install external modules against a kernel source
8# tree. 8# tree.
9# 9#
10# Maintainer: John Mylchreest <johnm@gentoo.org>, Stefan Schweizer <genstef@gentoo.org> 10# Author(s): John Mylchreest <johnm@gentoo.org>,
11# Copyright 2004 Gentoo Linux 11# Stefan Schweizer <genstef@gentoo.org>
12# Maintainer: kernel-misc@gentoo.org
12# 13#
13# Please direct your bugs to the current eclass maintainer :) 14# Please direct your bugs to the current eclass maintainer :)
14 15
15# A Couple of env vars are available to effect usage of this eclass 16# A Couple of env vars are available to effect usage of this eclass
16# These are as follows: 17# These are as follows:
181} 182}
182 183
183update_modules() { 184update_modules() {
184 debug-print-function ${FUNCNAME} $* 185 debug-print-function ${FUNCNAME} $*
185 186
186 if [ -x /sbin/modules-update ] && \ 187 if [ -x /sbin/update-modules ] && \
187 grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then 188 grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
188 ebegin "Updating modules.conf" 189 ebegin "Updating modules.conf"
189 /sbin/modules-update 190 /sbin/update-modules
191 eend $?
192 elif [ -x /sbin/update-modules ] && \
193 grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
194 ebegin "Updating modules.conf"
195 /sbin/update-modules
190 eend $? 196 eend $?
191 fi 197 fi
192} 198}
193 199
194move_old_moduledb() { 200move_old_moduledb() {
214 220
215 if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then 221 if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
216 [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR} 222 [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
217 touch ${MODULEDB_DIR}/moduledb 223 touch ${MODULEDB_DIR}/moduledb
218 fi 224 fi
225
219 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then 226 if ! grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb ; then
220 einfo "Adding module to moduledb." 227 einfo "Adding module to moduledb."
221 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb 228 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
222 fi 229 fi
223} 230}
224 231
226 debug-print-function ${FUNCNAME} $* 233 debug-print-function ${FUNCNAME} $*
227 234
228 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/ 235 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
229 move_old_moduledb 236 move_old_moduledb
230 237
231 if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then 238 if grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb ; then
232 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb." 239 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
233 sed -ie "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb 240 sed -i -e "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
234 fi 241 fi
235} 242}
236 243
237set_kvobj() { 244set_kvobj() {
238 debug-print-function ${FUNCNAME} $* 245 debug-print-function ${FUNCNAME} $*
454 461
455linux-mod_pkg_setup() { 462linux-mod_pkg_setup() {
456 debug-print-function ${FUNCNAME} $* 463 debug-print-function ${FUNCNAME} $*
457 464
458 linux-info_pkg_setup; 465 linux-info_pkg_setup;
466 require_configured_kernel
459 check_kernel_built; 467 check_kernel_built;
460 strip_modulenames; 468 strip_modulenames;
461 [[ -n ${MODULE_NAMES} ]] && check_modules_supported 469 [[ -n ${MODULE_NAMES} ]] && check_modules_supported
462 set_kvobj; 470 set_kvobj;
463 # Commented out with permission from johnm until a fixed version for arches 471 # Commented out with permission from johnm until a fixed version for arches
481 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}" 489 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}"
482 ARCH="$(tc-arch-kernel)" 490 ARCH="$(tc-arch-kernel)"
483 ABI="${KERNEL_ABI}" 491 ABI="${KERNEL_ABI}"
484 492
485 BUILD_TARGETS=${BUILD_TARGETS:-clean module} 493 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
494 strip_modulenames;
495 cd "${S}"
496 for i in ${MODULE_NAMES}
497 do
498 unset libdir srcdir objdir
499 for n in $(find_module_params ${i})
500 do
501 eval ${n/:*}=${n/*:/}
502 done
503 libdir=${libdir:-misc}
504 srcdir=${srcdir:-${S}}
505 objdir=${objdir:-${srcdir}}
506
507 if [ ! -f "${srcdir}/.built" ];
508 then
509 cd ${srcdir}
510 einfo "Preparing ${modulename} module"
511 if [[ -n ${ECONF_PARAMS} ]]
512 then
513 econf ${ECONF_PARAMS} || \
514 die "Unable to run econf ${ECONF_PARAMS}"
515 fi
516
517 emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \
518 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
519 || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
520 touch ${srcdir}/.built
521 cd ${OLDPWD}
522 fi
523 done
524
525 ARCH="${myARCH}"
526 ABI="${myABI}"
527}
528
529linux-mod_src_install() {
530 debug-print-function ${FUNCNAME} $*
531
532 local modulename libdir srcdir objdir i n
533
486 strip_modulenames; 534 strip_modulenames;
487 for i in ${MODULE_NAMES} 535 for i in ${MODULE_NAMES}
488 do 536 do
489 unset libdir srcdir objdir 537 unset libdir srcdir objdir
490 for n in $(find_module_params ${i}) 538 for n in $(find_module_params ${i})
493 done 541 done
494 libdir=${libdir:-misc} 542 libdir=${libdir:-misc}
495 srcdir=${srcdir:-${S}} 543 srcdir=${srcdir:-${S}}
496 objdir=${objdir:-${srcdir}} 544 objdir=${objdir:-${srcdir}}
497 545
498 if [ ! -f "${srcdir}/.built" ];
499 then
500 cd ${srcdir}
501 einfo "Preparing ${modulename} module"
502 if [[ -n ${ECONF_PARAMS} ]]
503 then
504 econf ${ECONF_PARAMS} || \
505 die "Unable to run econf ${ECONF_PARAMS}"
506 fi
507
508 emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \
509 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
510 || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
511 touch ${srcdir}/.built
512 cd ${OLDPWD}
513 fi
514 done
515
516 ARCH="${myARCH}"
517 ABI="${myABI}"
518}
519
520linux-mod_src_install() {
521 debug-print-function ${FUNCNAME} $*
522
523 local modulename libdir srcdir objdir i n
524
525 strip_modulenames;
526 for i in ${MODULE_NAMES}
527 do
528 unset libdir srcdir objdir
529 for n in $(find_module_params ${i})
530 do
531 eval ${n/:*}=${n/*:/}
532 done
533 libdir=${libdir:-misc}
534 srcdir=${srcdir:-${S}}
535 objdir=${objdir:-${srcdir}}
536
537 einfo "Installing ${modulename} module" 546 einfo "Installing ${modulename} module"
538 cd ${objdir} || die "${objdir} does not exist" 547 cd ${objdir} || die "${objdir} does not exist"
539 insinto /lib/modules/${KV_FULL}/${libdir} 548 insinto /lib/modules/${KV_FULL}/${libdir}
540 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed" 549 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
541 cd ${OLDPWD} 550 cd ${OLDPWD}
545} 554}
546 555
547linux-mod_pkg_preinst() { 556linux-mod_pkg_preinst() {
548 debug-print-function ${FUNCNAME} $* 557 debug-print-function ${FUNCNAME} $*
549 558
550 [ -d ${IMAGE}/lib/modules ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false 559 [ -d "${D}lib/modules" ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false
551 [ -d ${IMAGE}/etc/modules.d ] && UPDATE_MODULES=true || UPDATE_MODULES=false 560 [ -d "${D}etc/modules.d" ] && UPDATE_MODULES=true || UPDATE_MODULES=false
552 [ -d ${IMAGE}/lib/modules ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false 561 [ -d "${D}lib/modules" ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
553} 562}
554 563
555linux-mod_pkg_postinst() { 564linux-mod_pkg_postinst() {
556 debug-print-function ${FUNCNAME} $* 565 debug-print-function ${FUNCNAME} $*
557 566

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.78

  ViewVC Help
Powered by ViewVC 1.1.20