| 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.88 2008/10/31 23:37:06 gengor Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.93 2008/11/05 12:00:19 dsd Exp $ |
| 4 | |
4 | |
| 5 | # Author(s): John Mylchreest <johnm@gentoo.org>, |
5 | # Author(s): John Mylchreest <johnm@gentoo.org>, |
| 6 | # Stefan Schweizer <genstef@gentoo.org> |
6 | # Stefan Schweizer <genstef@gentoo.org> |
| 7 | # Maintainer: kernel-misc@gentoo.org |
7 | # Maintainer: kernel-misc@gentoo.org |
| 8 | # |
8 | # |
| … | |
… | |
| 41 | |
41 | |
| 42 | # @ECLASS-VARIABLE: MODULE_NAMES |
42 | # @ECLASS-VARIABLE: MODULE_NAMES |
| 43 | # @DESCRIPTION: |
43 | # @DESCRIPTION: |
| 44 | # It's a string containing the modules to be built automatically using the default |
44 | # It's a string containing the modules to be built automatically using the default |
| 45 | # src_compile/src_install. It will only make ${BUILD_TARGETS} once in any directory. |
45 | # src_compile/src_install. It will only make ${BUILD_TARGETS} once in any directory. |
| 46 | |
|
|
| 47 | # |
46 | # |
| 48 | # The structure of each MODULE_NAMES entry is as follows: |
47 | # The structure of each MODULE_NAMES entry is as follows: |
| 49 | # |
48 | # |
| 50 | # modulename(libdir:srcdir:objdir) |
49 | # modulename(libdir:srcdir:objdir) |
| 51 | # |
50 | # |
| 52 | # where: |
51 | # where: |
| 53 | # |
52 | # |
| 54 | # modulename = name of the module file excluding the .ko |
53 | # modulename = name of the module file excluding the .ko |
| 55 | # libdir = place in system modules directory where module is installed: |
54 | # libdir = place in system modules directory where module is installed (by default it's misc) |
| 56 | # srcdir = place for ebuild to cd to before running make |
55 | # srcdir = place for ebuild to cd to before running make (by default it's ${S}) |
| 57 | # objdir = place the .ko and objects are located after make runs |
56 | # objdir = place the .ko and objects are located after make runs (by default it's set to srcdir) |
| 58 | # |
57 | # |
| 59 | # To get an idea of how these variables are used, here's a few lines |
58 | # To get an idea of how these variables are used, here's a few lines |
| 60 | # of code from around line 540 in this eclass: |
59 | # of code from around line 540 in this eclass: |
| 61 | # |
60 | # |
| 62 | # einfo "Installing ${modulename} module" |
61 | # einfo "Installing ${modulename} module" |
| … | |
… | |
| 135 | EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm |
134 | EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm |
| 136 | |
135 | |
| 137 | IUSE="kernel_linux" |
136 | IUSE="kernel_linux" |
| 138 | SLOT="0" |
137 | SLOT="0" |
| 139 | DESCRIPTION="Based on the $ECLASS eclass" |
138 | DESCRIPTION="Based on the $ECLASS eclass" |
| 140 | RESTRICT="distcc" |
|
|
| 141 | RDEPEND="kernel_linux? ( virtual/modutils )" |
139 | RDEPEND="kernel_linux? ( virtual/modutils )" |
| 142 | DEPEND="${RDEPEND} |
140 | DEPEND="${RDEPEND} |
| 143 | sys-apps/sed" |
141 | sys-apps/sed" |
| 144 | |
142 | |
| 145 | # eclass utilities |
143 | # eclass utilities |
| … | |
… | |
| 614 | ABI="${KERNEL_ABI}" |
612 | ABI="${KERNEL_ABI}" |
| 615 | |
613 | |
| 616 | BUILD_TARGETS=${BUILD_TARGETS:-clean module} |
614 | BUILD_TARGETS=${BUILD_TARGETS:-clean module} |
| 617 | strip_modulenames; |
615 | strip_modulenames; |
| 618 | cd "${S}" |
616 | cd "${S}" |
|
|
617 | touch Module.symvers |
| 619 | for i in ${MODULE_NAMES} |
618 | for i in ${MODULE_NAMES} |
| 620 | do |
619 | do |
| 621 | unset libdir srcdir objdir |
620 | unset libdir srcdir objdir |
| 622 | for n in $(find_module_params ${i}) |
621 | for n in $(find_module_params ${i}) |
| 623 | do |
622 | do |
| … | |
… | |
| 628 | objdir=${objdir:-${srcdir}} |
627 | objdir=${objdir:-${srcdir}} |
| 629 | |
628 | |
| 630 | if [ ! -f "${srcdir}/.built" ]; |
629 | if [ ! -f "${srcdir}/.built" ]; |
| 631 | then |
630 | then |
| 632 | cd ${srcdir} |
631 | cd ${srcdir} |
|
|
632 | ln -s "${S}"/Module.symvers Module.symvers |
| 633 | einfo "Preparing ${modulename} module" |
633 | einfo "Preparing ${modulename} module" |
| 634 | if [[ -n ${ECONF_PARAMS} ]] |
634 | if [[ -n ${ECONF_PARAMS} ]] |
| 635 | then |
635 | then |
| 636 | econf ${ECONF_PARAMS} || \ |
636 | econf ${ECONF_PARAMS} || \ |
| 637 | die "Unable to run econf ${ECONF_PARAMS}" |
637 | die "Unable to run econf ${ECONF_PARAMS}" |