| 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.69 2006/11/25 10:16:04 genstef Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.75 2007/10/03 12:53:10 phreak 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 | |
| 183 | update_modules() { |
184 | update_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 | |
| 194 | move_old_moduledb() { |
200 | move_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 | |
| 237 | set_kvobj() { |
244 | set_kvobj() { |
| 238 | debug-print-function ${FUNCNAME} $* |
245 | debug-print-function ${FUNCNAME} $* |
| … | |
… | |
| 253 | |
260 | |
| 254 | local kernel_cc |
261 | local kernel_cc |
| 255 | if [ -n "${KERNEL_ABI}" ]; then |
262 | if [ -n "${KERNEL_ABI}" ]; then |
| 256 | # In future, an arch might want to define CC_$ABI |
263 | # In future, an arch might want to define CC_$ABI |
| 257 | #kernel_cc="$(get_abi_CC)" |
264 | #kernel_cc="$(get_abi_CC)" |
| 258 | #[ -z "${kernel_cc}" ] && |
265 | #[ -z "${kernel_cc}" ] && |
| 259 | kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))" |
266 | kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))" |
| 260 | else |
267 | else |
| 261 | kernel_cc=$(tc-getCC) |
268 | kernel_cc=$(tc-getCC) |
| 262 | fi |
269 | fi |
| 263 | echo "${kernel_cc}" |
270 | echo "${kernel_cc}" |
| … | |
… | |
| 559 | ${UPDATE_MODULES} && update_modules; |
566 | ${UPDATE_MODULES} && update_modules; |
| 560 | ${UPDATE_MODULEDB} && update_moduledb; |
567 | ${UPDATE_MODULEDB} && update_moduledb; |
| 561 | } |
568 | } |
| 562 | |
569 | |
| 563 | linux-mod_pkg_postrm() { |
570 | linux-mod_pkg_postrm() { |
| 564 | debug-print-function ${FUNCNAME} $* |
571 | debug-print-function ${FUNCNAME} $* |
| 565 | remove_moduledb; |
572 | remove_moduledb; |
| 566 | } |
573 | } |