/[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.34 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.34 2005/04/11 22:26:28 brix 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.
12# 12#
13# Please direct your bugs to the current eclass maintainer :) 13# Please direct your bugs to the current eclass maintainer :)
14 14
15# A Couple of env vars are available to effect usage of this eclass 15# A Couple of env vars are available to effect usage of this eclass
16# These are as follows: 16# These are as follows:
17# 17#
18# Env Var Option Default Description 18# Env Var Option Default Description
19# KERNEL_DIR <string> /usr/src/linux The directory containing kernel 19# KERNEL_DIR <string> /usr/src/linux The directory containing kernel
20# the target kernel sources. 20# the target kernel sources.
21# ECONF_PARAMS <string> The parameters to pass to econf. 21# ECONF_PARAMS <string> The parameters to pass to econf.
22# If this is not set, then econf 22# If this is not set, then econf
23# isn't run. 23# isn't run.
24# BUILD_PARAMS <string> The parameters to pass to emake. 24# BUILD_PARAMS <string> The parameters to pass to emake.
25# BUILD_TARGETS <string> clean modules The build targets to pass to 25# BUILD_TARGETS <string> clean modules The build targets to pass to
26# make. 26# make.
27# MODULE_NAMES <string> This is the modules which are 27# MODULE_NAMES <string> This is the modules which are
28# to be built automatically using 28# to be built automatically using
29# the default pkg_compile/install. 29# the default pkg_compile/install.
30# They are explained properly 30# They are explained properly
31# below. It will only make 31# below. It will only make
32# BUILD_TARGETS once in any 32# BUILD_TARGETS once in any
33# directory. 33# directory.
34 34
35# MODULE_NAMES - Detailed Overview 35# MODULE_NAMES - Detailed Overview
36# 36#
37# The structure of each MODULE_NAMES entry is as follows: 37# The structure of each MODULE_NAMES entry is as follows:
38# modulename(libdir:srcdir:objdir) 38# modulename(libdir:srcdir:objdir)
39# for example: 39# for example:
40# MODULE_NAMES="module_pci(pci:${S}/pci:${S}) module_usb(usb:${S}/usb:${S})" 40# MODULE_NAMES="module_pci(pci:${S}/pci:${S}) module_usb(usb:${S}/usb:${S})"
41# 41#
42# what this would do is 42# what this would do is
43# cd ${S}/pci 43# cd ${S}/pci
44# make ${BUILD_PARAMS} ${BUILD_TARGETS} 44# make ${BUILD_PARAMS} ${BUILD_TARGETS}
45# cd ${S} 45# cd ${S}
46# insinto /lib/modules/${KV_FULL}/pci 46# insinto /lib/modules/${KV_FULL}/pci
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 86inherit eutils linux-info multilib
83ECLASS=linux-mod
84INHERITED="$INHERITED $ECLASS"
85EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile 87EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm
86 88
89IUSE="" # don't put pcmcia here, rather in the ebuilds that actually support pcmcia
87SLOT="0" 90SLOT="0"
88DESCRIPTION="Based on the $ECLASS eclass" 91DESCRIPTION="Based on the $ECLASS eclass"
89DEPEND="virtual/linux-sources 92RDEPEND="virtual/modutils
90 sys-apps/sed 93 pcmcia? ( virtual/pcmcia )"
91 virtual/modutils 94DEPEND="sys-apps/sed
92 pcmcia? ( sys-apps/pcmcia-cs )" 95 pcmcia? ( virtual/pcmcia )"
93 96
94# eclass utilities 97# eclass utilities
95# ---------------------------------- 98# ----------------------------------
99
100check_vermagic() {
101 local curr_gcc_ver=$(gcc -dumpversion)
102 local tmpfile old_chost old_gcc_ver result=0
103
104 tmpfile=`find ${KV_DIR}/ -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`
105 tmpfile=${tmpfile//*usr/lib}
106 tmpfile=${tmpfile//\/include*}
107 old_chost=${tmpfile//*gcc\/}
108 old_chost=${old_chost//\/*}
109 old_gcc_ver=${tmpfile//*\/}
110
111 if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
112 ewarn ""
113 ewarn "Unable to detect what version of GCC was used to compile"
114 ewarn "the kernel. Build will continue, but you may experience problems."
115 elif [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
116 ewarn ""
117 ewarn "The version of GCC you are using (${curr_gcc_ver}) does"
118 ewarn "not match the version of GCC used to compile the"
119 ewarn "kernel (${old_gcc_ver})."
120 result=1
121 elif [[ ${CHOST} != ${old_chost} ]]; then
122 ewarn ""
123 ewarn "The current CHOST (${CHOST}) does not match the chost"
124 ewarn "used when compiling the kernel (${old_chost})."
125 result=1
126 fi
127
128 if [[ ${result} -gt 0 ]]; then
129 ewarn ""
130 ewarn "Build will not continue, because you will experience problems."
131 ewarn "To fix this either change the version of GCC you wish to use"
132 ewarn "to match the kernel, or recompile the kernel first."
133 die "GCC Version Mismatch."
134 fi
135}
96 136
97unpack_pcmcia_sources() { 137unpack_pcmcia_sources() {
98 # So while the two eclasses exist side-by-side and also the ebuilds inherit 138 # So while the two eclasses exist side-by-side and also the ebuilds inherit
99 # both we need to check for PCMCIA_SOURCE_DIR, and if we find it, then we 139 # both we need to check for PCMCIA_SOURCE_DIR, and if we find it, then we
100 # bail out and assume pcmcia.eclass is working on it. 140 # bail out and assume pcmcia.eclass is working on it.
101 [[ -n ${PCMCIA_SOURCE_DIR} ]] && return 1 141 [[ -n ${PCMCIA_SOURCE_DIR} ]] && return 1
102 142
103 if [[ -f "${1}" ]]; then 143 if [[ -f "${1}" ]]; then
104 PCMCIA_SOURCE_DIR="${WORKDIR}/pcmcia-cs/" 144 PCMCIA_SOURCE_DIR="${WORKDIR}/pcmcia-cs/"
105 145
106 ebegin "Decompressing pcmcia-cs sources" 146 ebegin "Decompressing pcmcia-cs sources"
107 mkdir -p ${PCMCIA_SOURCE_DIR} 147 mkdir -p ${PCMCIA_SOURCE_DIR}
108 tar -xjf ${1} -C ${PCMCIA_SOURCE_DIR} 148 tar -xjf ${1} -C ${PCMCIA_SOURCE_DIR}
109 eend $? 149 eend $?
110 150
130 else 170 else
131 einfo "We have detected that you are running a 2.6 kernel" 171 einfo "We have detected that you are running a 2.6 kernel"
132 einfo "but you are not using the built-in PCMCIA support." 172 einfo "but you are not using the built-in PCMCIA support."
133 einfo "We will assume you know what you are doing, but please" 173 einfo "We will assume you know what you are doing, but please"
134 einfo "consider using the built in PCMCIA support instead." 174 einfo "consider using the built in PCMCIA support instead."
135 sleep 10 175 epause 10
136 176
137 unpack_pcmcia_sources ${pcmcia_tbz}; 177 unpack_pcmcia_sources ${pcmcia_tbz};
138 fi 178 fi
139 fi 179 fi
140} 180}
141 181
142use_m() { 182use_m() {
143 # if we haven't determined the version yet, we need too. 183 # if we haven't determined the version yet, we need too.
144 get_version; 184 get_version;
145 185
146 # if the kernel version is greater than 2.6.6 then we should use 186 # if the kernel version is greater than 2.6.6 then we should use
147 # M= instead of SUBDIRS= 187 # M= instead of SUBDIRS=
148 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \ 188 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \
149 return 0 || return 1 189 return 0 || return 1
150} 190}
161} 201}
162 202
163update_depmod() { 203update_depmod() {
164 # if we haven't determined the version yet, we need too. 204 # if we haven't determined the version yet, we need too.
165 get_version; 205 get_version;
166 206
167 ebegin "Updating module dependencies for ${KV_FULL}" 207 ebegin "Updating module dependencies for ${KV_FULL}"
168 if [ -r ${KV_OUT_DIR}/System.map ] 208 if [ -r ${KV_OUT_DIR}/System.map ]
169 then 209 then
170 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL} 210 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL}
171 eend $? 211 eend $?
185 /sbin/modules-update 225 /sbin/modules-update
186 eend $? 226 eend $?
187 fi 227 fi
188} 228}
189 229
230move_old_moduledb() {
231 local OLDDIR=${ROOT}/usr/share/module-rebuild/
232 local NEWDIR=${ROOT}/var/lib/module-rebuild/
233
234 if [[ -f ${OLDDIR}/moduledb ]]; then
235 [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
236 [[ ! -f ${NEWDIR}/moduledb ]] && \
237 mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
238 rm -f ${OLDDIR}/*
239 rmdir ${OLDDIR}
240 fi
241}
242
243update_moduledb() {
244 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
245 move_old_moduledb
246
247 if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
248 [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
249 touch ${MODULEDB_DIR}/moduledb
250 fi
251 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
252 einfo "Adding module to moduledb."
253 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
254 fi
255}
256
257remove_moduledb() {
258 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
259 move_old_moduledb
260
261 if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
262 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
263 sed -ie "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
264 fi
265}
266
190set_kvobj() { 267set_kvobj() {
191 if kernel_is 2 6 268 if kernel_is 2 6
192 then 269 then
193 KV_OBJ="ko" 270 KV_OBJ="ko"
194 else 271 else
201 278
202generate_modulesd() { 279generate_modulesd() {
203 # This function will generate the neccessary modules.d file from the 280 # This function will generate the neccessary modules.d file from the
204 # information contained in the modules exported parms 281 # information contained in the modules exported parms
205 282
206 local currm_path currm t myIFS myVAR 283 local currm_path currm currm_t t myIFS myVAR
207 local module_docs module_enabled module_aliases \ 284 local module_docs module_enabled module_aliases \
208 module_additions module_examples module_modinfo module_opts 285 module_additions module_examples module_modinfo module_opts
209 286
210 for currm_path in ${@} 287 for currm_path in ${@}
211 do 288 do
212 currm=${currm_path//*\/} 289 currm=${currm_path//*\/}
213 currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]') 290 currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
291 currm_t=${currm}
292 while [[ -z ${currm_t//*-*} ]]; do
293 currm_t=${currm_t/-/_}
294 done
214 295
215 module_docs="$(eval echo \${MODULESD_${currm}_DOCS})" 296 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"
216 module_enabled="$(eval echo \${MODULESD_${currm}_ENABLED})" 297 module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"
217 module_aliases="$(eval echo \${#MODULESD_${currm/-/_}_ALIASES[*]})" 298 module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"
218 module_additions="$(eval echo \${#MODULESD_${currm/-/_}_ADDITIONS[*]})" 299 module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"
219 module_examples="$(eval echo \${#MODULESD_${currm/-/_}_EXAMPLES[*]})" 300 module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"
220 301
221 [[ ${module_aliases} -eq 0 ]] && unset module_aliases 302 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
222 [[ ${module_additions} -eq 0 ]] && unset module_additions 303 [[ ${module_additions} -eq 0 ]] && unset module_additions
223 [[ ${module_examples} -eq 0 ]] && unset module_examples 304 [[ ${module_examples} -eq 0 ]] && unset module_examples
224 305
225 # If we specify we dont want it, then lets exit, otherwise we assume 306 # If we specify we dont want it, then lets exit, otherwise we assume
226 # that if its set, we do want it. 307 # that if its set, we do want it.
227 [[ ${module_enabled} == no ]] && return 0 308 [[ ${module_enabled} == no ]] && return 0
228 309
229 # unset any unwanted variables. 310 # unset any unwanted variables.
230 for t in ${!module_*} 311 for t in ${!module_*}
271 echo >> ${module_config} 352 echo >> ${module_config}
272 echo "# Configurable module parameters" >> ${module_config} 353 echo "# Configurable module parameters" >> ${module_config}
273 echo "# ------------------------------" >> ${module_config} 354 echo "# ------------------------------" >> ${module_config}
274 myIFS="${IFS}" 355 myIFS="${IFS}"
275 IFS="$(echo -en "\n\b")" 356 IFS="$(echo -en "\n\b")"
276 357
277 for t in ${module_modinfo} 358 for t in ${module_modinfo}
278 do 359 do
279 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")" 360 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
280 if [[ -n ${myVAR} ]] 361 if [[ -n ${myVAR} ]]
281 then 362 then
282 module_opts="${module_opts} ${t%%:*}:${myVAR}" 363 module_opts="${module_opts} ${t%%:*}:${myVAR}"
283 fi 364 fi
284 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config} 365 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
285 done 366 done
286 IFS="${myIFS}" 367 IFS="${myIFS}"
287 echo '' >> ${module_config} 368 echo '' >> ${module_config}
288 fi 369 fi
289 370
290 #----------------------------------------------------------------------- 371 #-----------------------------------------------------------------------
321 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \ 402 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
322 >> ${module_config} 403 >> ${module_config}
323 done 404 done
324 echo '' >> ${module_config} 405 echo '' >> ${module_config}
325 fi 406 fi
326 407
327 #----------------------------------------------------------------------- 408 #-----------------------------------------------------------------------
328 409
329 # then we install it 410 # then we install it
330 insinto /etc/modules.d 411 insinto /etc/modules.d
331 newins ${module_config} ${currm_path//*\/} 412 newins ${module_config} ${currm_path//*\/}
335 done 416 done
336 eend 0 417 eend 0
337 return 0 418 return 0
338} 419}
339 420
340display_postinst() {
341 # if we haven't determined the version yet, we need too.
342 get_version;
343
344 local modulename moduledir sourcedir moduletemp file i
345
346 file=${ROOT}/etc/modules.autoload.d/kernel-${KV_MAJOR}.${KV_MINOR}
347 file=${file/\/\///}
348
349 for i in ${MODULE_IGNORE}
350 do
351 MODULE_NAMES=${MODULE_NAMES//${i}(*}
352 done
353
354 if [[ -n ${MODULE_NAMES} ]]
355 then
356 einfo "If you would like to load this module automatically upon boot"
357 einfo "please type the following as root:"
358 for i in ${MODULE_NAMES}
359 do
360 unset libdir srcdir objdir
361 for n in $(find_module_params ${i})
362 do
363 eval ${n/:*}=${n/*:/}
364 done
365 einfo " # echo \"${modulename}\" >> ${file}"
366 done
367 einfo
368 fi
369}
370
371find_module_params() { 421find_module_params() {
372 local matched_offset=0 matched_opts=0 test="${@}" temp_var result 422 local matched_offset=0 matched_opts=0 test="${@}" temp_var result
373 local i=0 y=0 z=0 423 local i=0 y=0 z=0
374 424
375 for((i=0; i<=${#test}; i++)) 425 for((i=0; i<=${#test}; i++))
376 do 426 do
377 case ${test:${i}:1} in 427 case ${test:${i}:1} in
378 \() matched_offset[0]=${i};; 428 \() matched_offset[0]=${i};;
379 \:) matched_opts=$((${matched_opts} + 1)); 429 \:) matched_opts=$((${matched_opts} + 1));
380 matched_offset[${matched_opts}]="${i}";; 430 matched_offset[${matched_opts}]="${i}";;
381 \)) matched_opts=$((${matched_opts} + 1)); 431 \)) matched_opts=$((${matched_opts} + 1));
382 matched_offset[${matched_opts}]="${i}";; 432 matched_offset[${matched_opts}]="${i}";;
383 esac 433 esac
384 done 434 done
385 435
386 for((i=0; i<=${matched_opts}; i++)) 436 for((i=0; i<=${matched_opts}; i++))
387 do 437 do
388 # i = offset were working on 438 # i = offset were working on
389 # y = last offset 439 # y = last offset
390 # z = current offset - last offset 440 # z = current offset - last offset
394 *) y=$((${matched_offset[$((${i} - 1))]} + 1)) 444 *) y=$((${matched_offset[$((${i} - 1))]} + 1))
395 z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]})); 445 z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
396 z=$((${z} - 1)) 446 z=$((${z} - 1))
397 tempvar=${test:${y}:${z}};; 447 tempvar=${test:${y}:${z}};;
398 esac 448 esac
399 449
400 case ${i} in 450 case ${i} in
401 0) result="${result} modulename:${tempvar}";; 451 0) result="${result} modulename:${tempvar}";;
402 1) result="${result} libdir:${tempvar}";; 452 1) result="${result} libdir:${tempvar}";;
403 2) result="${result} srcdir:${tempvar}";; 453 2) result="${result} srcdir:${tempvar}";;
404 3) result="${result} objdir:${tempvar}";; 454 3) result="${result} objdir:${tempvar}";;
405 esac 455 esac
406 done 456 done
407 457
408 echo ${result} 458 echo ${result}
409} 459}
410 460
411# default ebuild functions 461# default ebuild functions
412# -------------------------------- 462# --------------------------------
413 463
414linux-mod_pkg_setup() { 464linux-mod_pkg_setup() {
415 linux-info_pkg_setup; 465 linux-info_pkg_setup;
416 check_kernel_built; 466 check_kernel_built;
417 check_modules_supported; 467 strip_modulenames;
468 [[ -n ${MODULE_NAMES} ]] && check_modules_supported
418 set_kvobj; 469 set_kvobj;
470 # Commented out with permission from johnm until a fixed version for arches
471 # who intentionally use different kernel and userland compilers can be
472 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
473 #check_vermagic;
419} 474}
420 475
421linux-mod_src_compile() { 476strip_modulenames() {
422 local modulename libdir srcdir objdir i n myARCH="${ARCH}" 477 local i
423 unset ARCH
424
425 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
426
427 for i in ${MODULE_IGNORE} 478 for i in ${MODULE_IGNORE}; do
428 do
429 MODULE_NAMES=${MODULE_NAMES//${i}(*} 479 MODULE_NAMES=${MODULE_NAMES//${i}(*}
430 done 480 done
481}
431 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;
432 for i in ${MODULE_NAMES} 492 for i in ${MODULE_NAMES}
433 do 493 do
434 unset libdir srcdir objdir 494 unset libdir srcdir objdir
435 for n in $(find_module_params ${i}) 495 for n in $(find_module_params ${i})
436 do 496 do
437 eval ${n/:*}=${n/*:/} 497 eval ${n/:*}=${n/*:/}
438 done 498 done
439 libdir=${libdir:-misc} 499 libdir=${libdir:-misc}
440 srcdir=${srcdir:-${S}} 500 srcdir=${srcdir:-${S}}
441 objdir=${objdir:-${srcdir}} 501 objdir=${objdir:-${srcdir}}
442 502
443 if [ ! -f "${srcdir}/.built" ]; 503 if [ ! -f "${srcdir}/.built" ];
444 then 504 then
445 cd ${srcdir} 505 cd ${srcdir}
446 einfo "Preparing ${modulename} module" 506 einfo "Preparing ${modulename} module"
447 if [[ -n ${ECONF_PARAMS} ]] 507 if [[ -n ${ECONF_PARAMS} ]]
448 then 508 then
449 econf ${ECONF_PARAMS} || \ 509 econf ${ECONF_PARAMS} || \
450 die "Unable to run econf ${ECONF_PARAMS}" 510 die "Unable to run econf ${ECONF_PARAMS}"
451 fi 511 fi
452 512
513 emake HOSTCC=${CC_HOSTCC} CC=${CC_CC}\
453 emake ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ 514 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
454 || die "Unable to make \ 515 || die "Unable to make \
455 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." 516 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
456 touch ${srcdir}/.built 517 touch ${srcdir}/.built
457 cd ${OLDPWD} 518 cd ${OLDPWD}
458 fi 519 fi
459 done 520 done
460 521
461 ARCH="${myARCH}" 522 ARCH="${myARCH}"
523 ABI="${myABI}"
462} 524}
463 525
464linux-mod_src_install() { 526linux-mod_src_install() {
465 local modulename libdir srcdir objdir i n 527 local modulename libdir srcdir objdir i n
466
467 for i in ${MODULE_IGNORE}
468 do
469 MODULE_NAMES=${MODULE_NAMES//${i}(*}
470 done
471 528
529 strip_modulenames;
472 for i in ${MODULE_NAMES} 530 for i in ${MODULE_NAMES}
473 do 531 do
474 unset libdir srcdir objdir 532 unset libdir srcdir objdir
475 for n in $(find_module_params ${i}) 533 for n in $(find_module_params ${i})
476 do 534 do
479 libdir=${libdir:-misc} 537 libdir=${libdir:-misc}
480 srcdir=${srcdir:-${S}} 538 srcdir=${srcdir:-${S}}
481 objdir=${objdir:-${srcdir}} 539 objdir=${objdir:-${srcdir}}
482 540
483 einfo "Installing ${modulename} module" 541 einfo "Installing ${modulename} module"
484 cd ${objdir} 542 cd ${objdir} || die "${objdir} does not exist"
485 insinto ${ROOT}lib/modules/${KV_FULL}/${libdir} 543 insinto /lib/modules/${KV_FULL}/${libdir}
486 doins ${modulename}.${KV_OBJ} 544 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
487 cd ${OLDPWD} 545 cd ${OLDPWD}
488 546
489 generate_modulesd ${objdir}/${modulename} 547 generate_modulesd ${objdir}/${modulename}
490 done 548 done
491} 549}
492 550
493linux-mod_pkg_postinst() { 551linux-mod_pkg_postinst() {
494 update_depmod; 552 update_depmod;
495 update_modules; 553 update_modules;
496 display_postinst; 554 update_moduledb;
497} 555}
556
557linux-mod_pkg_postrm() {
558 remove_moduledb;
559}

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

  ViewVC Help
Powered by ViewVC 1.1.20