/[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.61 Revision 1.64
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.61 2006/03/25 16:43:09 betelgeuse Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.64 2006/05/11 08:23:43 johnm 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.
81# The order of these is important as both of linux-info and eutils contain 81# The order of these is important as both of linux-info and eutils contain
82# set_arch_to_kernel and set_arch_to_portage functions and the ones in eutils 82# set_arch_to_kernel and set_arch_to_portage functions and the ones in eutils
83# are deprecated in favor of the ones in linux-info. 83# are deprecated in favor of the ones in linux-info.
84# See http://bugs.gentoo.org/show_bug.cgi?id=127506 84# See http://bugs.gentoo.org/show_bug.cgi?id=127506
85 85
86inherit eutils linux-info 86inherit eutils linux-info multilib
87EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm 87EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm
88 88
89IUSE="" # don't put pcmcia here, rather in the ebuilds that actually support pcmcia 89IUSE="" # don't put pcmcia here, rather in the ebuilds that actually support pcmcia
90SLOT="0" 90SLOT="0"
91DESCRIPTION="Based on the $ECLASS eclass" 91DESCRIPTION="Based on the $ECLASS eclass"
462# -------------------------------- 462# --------------------------------
463 463
464linux-mod_pkg_setup() { 464linux-mod_pkg_setup() {
465 linux-info_pkg_setup; 465 linux-info_pkg_setup;
466 check_kernel_built; 466 check_kernel_built;
467 check_modules_supported; 467 strip_modulenames;
468 [[ -n ${MODULE_NAMES} ]] && check_modules_supported
468 set_kvobj; 469 set_kvobj;
469 # Commented out with permission from johnm until a fixed version for arches 470 # Commented out with permission from johnm until a fixed version for arches
470 # who intentionally use different kernel and userland compilers can be 471 # who intentionally use different kernel and userland compilers can be
471 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005 472 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
472 #check_vermagic; 473 #check_vermagic;
473} 474}
474 475
475linux-mod_src_compile() { 476strip_modulenames() {
476 local modulename libdir srcdir objdir i n myARCH="${ARCH}" 477 local i
477 ARCH="$(tc-arch-kernel)"
478
479 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
480
481 for i in ${MODULE_IGNORE} 478 for i in ${MODULE_IGNORE}; do
482 do
483 MODULE_NAMES=${MODULE_NAMES//${i}(*} 479 MODULE_NAMES=${MODULE_NAMES//${i}(*}
484 done 480 done
481}
485 482
483linux-mod_src_compile() {
484 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}"
485 ARCH="$(tc-arch-kernel)"
486 ABI="${KERNEL_ABI}"
487 CC_HOSTCC=$(tc-getBUILD_CC)
488 CC_CC=$(tc-getCC)
489
490 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
491 strip_modulenames;
486 for i in ${MODULE_NAMES} 492 for i in ${MODULE_NAMES}
487 do 493 do
488 unset libdir srcdir objdir 494 unset libdir srcdir objdir
489 for n in $(find_module_params ${i}) 495 for n in $(find_module_params ${i})
490 do 496 do
502 then 508 then
503 econf ${ECONF_PARAMS} || \ 509 econf ${ECONF_PARAMS} || \
504 die "Unable to run econf ${ECONF_PARAMS}" 510 die "Unable to run econf ${ECONF_PARAMS}"
505 fi 511 fi
506 512
513 emake HOSTCC=${CC_HOSTCC} CC=${CC_CC}\
507 emake ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ 514 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
508 || die "Unable to make \ 515 || die "Unable to make \
509 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." 516 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
510 touch ${srcdir}/.built 517 touch ${srcdir}/.built
511 cd ${OLDPWD} 518 cd ${OLDPWD}
512 fi 519 fi
513 done 520 done
514 521
515 ARCH="${myARCH}" 522 ARCH="${myARCH}"
523 ABI="${myABI}"
516} 524}
517 525
518linux-mod_src_install() { 526linux-mod_src_install() {
519 local modulename libdir srcdir objdir i n 527 local modulename libdir srcdir objdir i n
520 528
521 for i in ${MODULE_IGNORE} 529 strip_modulenames;
522 do
523 MODULE_NAMES=${MODULE_NAMES//${i}(*}
524 done
525
526 for i in ${MODULE_NAMES} 530 for i in ${MODULE_NAMES}
527 do 531 do
528 unset libdir srcdir objdir 532 unset libdir srcdir objdir
529 for n in $(find_module_params ${i}) 533 for n in $(find_module_params ${i})
530 do 534 do

Legend:
Removed from v.1.61  
changed lines
  Added in v.1.64

  ViewVC Help
Powered by ViewVC 1.1.20