/[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.60 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.60 2006/03/03 21:04:58 johnm 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.
76# Each entry is a new line. 76# Each entry is a new line.
77# MODULES_${modulename}_DOCS This is a string list which contains 77# MODULES_${modulename}_DOCS This is a string list which contains
78# the full path to any associated 78# the full path to any associated
79# documents for $modulename 79# documents for $modulename
80 80
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
83# are deprecated in favor of the ones in linux-info.
84# See http://bugs.gentoo.org/show_bug.cgi?id=127506
81 85
82inherit linux-info eutils 86inherit eutils linux-info multilib
83EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm 87EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm
84 88
85IUSE="" # 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
86SLOT="0" 90SLOT="0"
87DESCRIPTION="Based on the $ECLASS eclass" 91DESCRIPTION="Based on the $ECLASS eclass"
458# -------------------------------- 462# --------------------------------
459 463
460linux-mod_pkg_setup() { 464linux-mod_pkg_setup() {
461 linux-info_pkg_setup; 465 linux-info_pkg_setup;
462 check_kernel_built; 466 check_kernel_built;
463 check_modules_supported; 467 strip_modulenames;
468 [[ -n ${MODULE_NAMES} ]] && check_modules_supported
464 set_kvobj; 469 set_kvobj;
465 # 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
466 # who intentionally use different kernel and userland compilers can be 471 # who intentionally use different kernel and userland compilers can be
467 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005 472 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
468 #check_vermagic; 473 #check_vermagic;
469} 474}
470 475
471linux-mod_src_compile() { 476strip_modulenames() {
472 local modulename libdir srcdir objdir i n myARCH="${ARCH}" 477 local i
473 ARCH="$(tc-arch-kernel)"
474
475 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
476
477 for i in ${MODULE_IGNORE} 478 for i in ${MODULE_IGNORE}; do
478 do
479 MODULE_NAMES=${MODULE_NAMES//${i}(*} 479 MODULE_NAMES=${MODULE_NAMES//${i}(*}
480 done 480 done
481}
481 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;
482 for i in ${MODULE_NAMES} 492 for i in ${MODULE_NAMES}
483 do 493 do
484 unset libdir srcdir objdir 494 unset libdir srcdir objdir
485 for n in $(find_module_params ${i}) 495 for n in $(find_module_params ${i})
486 do 496 do
498 then 508 then
499 econf ${ECONF_PARAMS} || \ 509 econf ${ECONF_PARAMS} || \
500 die "Unable to run econf ${ECONF_PARAMS}" 510 die "Unable to run econf ${ECONF_PARAMS}"
501 fi 511 fi
502 512
513 emake HOSTCC=${CC_HOSTCC} CC=${CC_CC}\
503 emake ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ 514 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
504 || die "Unable to make \ 515 || die "Unable to make \
505 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." 516 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
506 touch ${srcdir}/.built 517 touch ${srcdir}/.built
507 cd ${OLDPWD} 518 cd ${OLDPWD}
508 fi 519 fi
509 done 520 done
510 521
511 ARCH="${myARCH}" 522 ARCH="${myARCH}"
523 ABI="${myABI}"
512} 524}
513 525
514linux-mod_src_install() { 526linux-mod_src_install() {
515 local modulename libdir srcdir objdir i n 527 local modulename libdir srcdir objdir i n
516 528
517 for i in ${MODULE_IGNORE} 529 strip_modulenames;
518 do
519 MODULE_NAMES=${MODULE_NAMES//${i}(*}
520 done
521
522 for i in ${MODULE_NAMES} 530 for i in ${MODULE_NAMES}
523 do 531 do
524 unset libdir srcdir objdir 532 unset libdir srcdir objdir
525 for n in $(find_module_params ${i}) 533 for n in $(find_module_params ${i})
526 do 534 do

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

  ViewVC Help
Powered by ViewVC 1.1.20