/[gentoo-x86]/eclass/linux-mod.eclass
Gentoo

Contents of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.61 - (hide annotations) (download)
Sat Mar 25 16:43:09 2006 UTC (8 years, 3 months ago) by betelgeuse
Branch: MAIN
Changes since 1.60: +6 -2 lines
We need to inherit eutils before linux-info so that set_arch_to_kernel and set_arch_to_portage functions from linux-info are used instead of the ones in eutils. Fixes bug #127506.

1 johnm 1.1 # Copyright 1999-2004 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 betelgeuse 1.61 # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.60 2006/03/03 21:04:58 johnm Exp $
4 johnm 1.1
5 johnm 1.10 # Description: This eclass is used to interface with linux-info in such a way
6     # to provide the functionality required and initial functions
7     # required to install external modules against a kernel source
8     # tree.
9     #
10     # Maintainer: John Mylchreest <johnm@gentoo.org>
11     # Copyright 2004 Gentoo Linux
12     #
13     # Please direct your bugs to the current eclass maintainer :)
14    
15     # A Couple of env vars are available to effect usage of this eclass
16     # These are as follows:
17 swegener 1.49 #
18 johnm 1.26 # Env Var Option Default Description
19     # KERNEL_DIR <string> /usr/src/linux The directory containing kernel
20     # the target kernel sources.
21     # ECONF_PARAMS <string> The parameters to pass to econf.
22     # If this is not set, then econf
23     # isn't run.
24     # BUILD_PARAMS <string> The parameters to pass to emake.
25     # BUILD_TARGETS <string> clean modules The build targets to pass to
26     # make.
27     # MODULE_NAMES <string> This is the modules which are
28 swegener 1.49 # to be built automatically using
29     # the default pkg_compile/install.
30     # They are explained properly
31     # below. It will only make
32 johnm 1.26 # BUILD_TARGETS once in any
33     # directory.
34 johnm 1.10
35     # MODULE_NAMES - Detailed Overview
36 swegener 1.49 #
37 johnm 1.10 # The structure of each MODULE_NAMES entry is as follows:
38 johnm 1.26 # modulename(libdir:srcdir:objdir)
39 johnm 1.10 # for example:
40 johnm 1.26 # MODULE_NAMES="module_pci(pci:${S}/pci:${S}) module_usb(usb:${S}/usb:${S})"
41 swegener 1.49 #
42 johnm 1.10 # what this would do is
43     # cd ${S}/pci
44     # make ${BUILD_PARAMS} ${BUILD_TARGETS}
45 johnm 1.26 # cd ${S}
46 johnm 1.10 # insinto /lib/modules/${KV_FULL}/pci
47     # doins module_pci.${KV_OBJ}
48     #
49     # cd ${S}/usb
50     # make ${BUILD_PARAMS} ${BUILD_TARGETS}
51 johnm 1.26 # cd ${S}
52 johnm 1.10 # insinto /lib/modules/${KV_FULL}/usb
53     # doins module_usb.${KV_OBJ}
54     #
55 johnm 1.26 # if the srcdir isnt specified, it assumes ${S}
56     # if the libdir isnt specified, it assumes misc.
57     # if the objdir isnt specified, it assumes srcdir
58    
59     # There is also support for automatyed modules.d file generation.
60     # This can be explicitly enabled by setting any of the following variables.
61     #
62     #
63     # MODULESD_${modulename}_ENABLED This enables the modules.d file
64     # generation even if we dont
65     # specify any additional info.
66     # MODULESD_${modulename}_EXAMPLES This is a bash array containing
67     # a list of examples which should
68     # be used. If you want us to try and
69     # take a guess. Set this to "guess"
70     # MODULESD_${modulename}_ALIASES This is a bash array containing
71     # a list of associated aliases.
72     # MODULESD_${modulename}_ADDITIONS This is a bash array containing
73     # A list of additional things to
74     # add to the bottom of the file.
75     # This can be absolutely anything.
76     # Each entry is a new line.
77     # MODULES_${modulename}_DOCS This is a string list which contains
78     # the full path to any associated
79     # documents for $modulename
80    
81 betelgeuse 1.61 # 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
85 johnm 1.1
86 betelgeuse 1.61 inherit eutils linux-info
87 johnm 1.37 EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm
88 johnm 1.1
89 agriffis 1.48 IUSE="" # don't put pcmcia here, rather in the ebuilds that actually support pcmcia
90 johnm 1.26 SLOT="0"
91 johnm 1.1 DESCRIPTION="Based on the $ECLASS eclass"
92 brix 1.46 RDEPEND="virtual/modutils
93 brix 1.39 pcmcia? ( virtual/pcmcia )"
94 brix 1.58 DEPEND="sys-apps/sed
95 brix 1.50 pcmcia? ( virtual/pcmcia )"
96 johnm 1.26
97 johnm 1.1 # eclass utilities
98     # ----------------------------------
99    
100 johnm 1.53 check_vermagic() {
101     local curr_gcc_ver=$(gcc -dumpversion)
102     local tmpfile old_chost old_gcc_ver result=0
103    
104 johnm 1.54 tmpfile=`find ${KV_DIR}/ -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`
105 johnm 1.53 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 johnm 1.54 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 johnm 1.53 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     }
136    
137 johnm 1.33 unpack_pcmcia_sources() {
138     # So while the two eclasses exist side-by-side and also the ebuilds inherit
139     # both we need to check for PCMCIA_SOURCE_DIR, and if we find it, then we
140     # bail out and assume pcmcia.eclass is working on it.
141     [[ -n ${PCMCIA_SOURCE_DIR} ]] && return 1
142    
143     if [[ -f "${1}" ]]; then
144     PCMCIA_SOURCE_DIR="${WORKDIR}/pcmcia-cs/"
145 swegener 1.49
146 johnm 1.33 ebegin "Decompressing pcmcia-cs sources"
147     mkdir -p ${PCMCIA_SOURCE_DIR}
148     tar -xjf ${1} -C ${PCMCIA_SOURCE_DIR}
149     eend $?
150    
151     if [[ -f ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version ]]; then
152     PCMCIA_VERSION=$(cat ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version)
153     einfo "Found pcmcia-cs-${PCMCIA_VERSION}"
154     fi
155     fi
156     }
157    
158     # Dummy function for compatibility.
159     pcmcia_configure() { return 0; }
160    
161     pcmcia_src_unpack() {
162     local pcmcia_tbz="${ROOT}/usr/src/pcmcia-cs/pcmcia-cs-build-env.tbz2"
163    
164     # if the kernel has pcmcia support built in, then we just ignore all this.
165     if linux_chkconfig_present PCMCIA; then
166     einfo "Kernel based PCMCIA support has been detected."
167     else
168     if kernel_is 2 4; then
169     unpack_pcmcia_sources ${pcmcia_tbz};
170     else
171     einfo "We have detected that you are running a 2.6 kernel"
172     einfo "but you are not using the built-in PCMCIA support."
173     einfo "We will assume you know what you are doing, but please"
174     einfo "consider using the built in PCMCIA support instead."
175 johnm 1.60 epause 10
176 johnm 1.33
177     unpack_pcmcia_sources ${pcmcia_tbz};
178     fi
179     fi
180     }
181    
182 johnm 1.1 use_m() {
183     # if we haven't determined the version yet, we need too.
184     get_version;
185 swegener 1.49
186 johnm 1.1 # if the kernel version is greater than 2.6.6 then we should use
187 johnm 1.8 # M= instead of SUBDIRS=
188 johnm 1.1 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \
189     return 0 || return 1
190     }
191    
192     convert_to_m() {
193     if use_m
194     then
195 johnm 1.32 [ ! -f "${1}" ] && \
196     die "convert_to_m() requires a filename as an argument"
197 johnm 1.8 ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS="
198 johnm 1.1 sed -i 's:SUBDIRS=:M=:g' ${1}
199     eend $?
200     fi
201     }
202    
203     update_depmod() {
204     # if we haven't determined the version yet, we need too.
205     get_version;
206 swegener 1.49
207 johnm 1.1 ebegin "Updating module dependencies for ${KV_FULL}"
208 johnm 1.5 if [ -r ${KV_OUT_DIR}/System.map ]
209 johnm 1.1 then
210 johnm 1.5 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL}
211 johnm 1.18 eend $?
212 johnm 1.1 else
213     ewarn
214 johnm 1.5 ewarn "${KV_OUT_DIR}/System.map not found."
215 johnm 1.1 ewarn "You must manually update the kernel module dependencies using depmod."
216 johnm 1.18 eend 1
217 johnm 1.1 ewarn
218     fi
219     }
220    
221 johnm 1.3 update_modules() {
222 kingtaco 1.31 if [ -x /sbin/modules-update ] && \
223     grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
224 johnm 1.3 ebegin "Updating modules.conf"
225     /sbin/modules-update
226     eend $?
227     fi
228     }
229    
230 johnm 1.41 move_old_moduledb() {
231     local OLDDIR=${ROOT}/usr/share/module-rebuild/
232     local NEWDIR=${ROOT}/var/lib/module-rebuild/
233 swegener 1.49
234 johnm 1.41 if [[ -f ${OLDDIR}/moduledb ]]; then
235     [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
236 johnm 1.42 [[ ! -f ${NEWDIR}/moduledb ]] && \
237     mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
238     rm -f ${OLDDIR}/*
239 johnm 1.41 rmdir ${OLDDIR}
240     fi
241     }
242    
243 johnm 1.37 update_moduledb() {
244 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
245 johnm 1.41 move_old_moduledb
246 johnm 1.40
247     if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
248     [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
249     touch ${MODULEDB_DIR}/moduledb
250 johnm 1.37 fi
251 johnm 1.40 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
252 johnm 1.37 einfo "Adding module to moduledb."
253 johnm 1.40 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
254 swegener 1.49 fi
255 johnm 1.37 }
256    
257     remove_moduledb() {
258 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
259 johnm 1.41 move_old_moduledb
260 johnm 1.40
261     if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
262 johnm 1.37 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
263 johnm 1.59 sed -ie "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
264 johnm 1.37 fi
265     }
266    
267 johnm 1.1 set_kvobj() {
268     if kernel_is 2 6
269     then
270     KV_OBJ="ko"
271     else
272     KV_OBJ="o"
273     fi
274 johnm 1.26 # Do we really need to know this?
275     # Lets silence it.
276     # einfo "Using KV_OBJ=${KV_OBJ}"
277 johnm 1.1 }
278    
279 johnm 1.11 generate_modulesd() {
280     # This function will generate the neccessary modules.d file from the
281     # information contained in the modules exported parms
282 johnm 1.26
283 johnm 1.54 local currm_path currm currm_t t myIFS myVAR
284 johnm 1.26 local module_docs module_enabled module_aliases \
285     module_additions module_examples module_modinfo module_opts
286    
287     for currm_path in ${@}
288 johnm 1.11 do
289 johnm 1.26 currm=${currm_path//*\/}
290     currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
291 johnm 1.54 currm_t=${currm}
292     while [[ -z ${currm_t//*-*} ]]; do
293     currm_t=${currm_t/-/_}
294     done
295 johnm 1.26
296 johnm 1.54 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"
297     module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"
298     module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"
299     module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"
300     module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"
301 johnm 1.26
302 johnm 1.27 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
303     [[ ${module_additions} -eq 0 ]] && unset module_additions
304     [[ ${module_examples} -eq 0 ]] && unset module_examples
305 johnm 1.26
306 swegener 1.49 # If we specify we dont want it, then lets exit, otherwise we assume
307 johnm 1.26 # that if its set, we do want it.
308     [[ ${module_enabled} == no ]] && return 0
309    
310     # unset any unwanted variables.
311     for t in ${!module_*}
312 johnm 1.11 do
313 johnm 1.26 [[ -z ${!t} ]] && unset ${t}
314 johnm 1.11 done
315    
316 johnm 1.26 [[ -z ${!module_*} ]] && return 0
317    
318     # OK so now if we have got this far, then we know we want to continue
319     # and generate the modules.d file.
320     module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
321     module_config="${T}/modulesd-${currm}"
322    
323 johnm 1.11 ebegin "Preparing file for modules.d"
324 johnm 1.26 #-----------------------------------------------------------------------
325     echo "# modules.d configuration file for ${currm}" >> ${module_config}
326     #-----------------------------------------------------------------------
327     [[ -n ${module_docs} ]] && \
328     echo "# For more information please read:" >> ${module_config}
329     for t in ${module_docs}
330 johnm 1.11 do
331 johnm 1.26 echo "# ${t//*\/}" >> ${module_config}
332 johnm 1.11 done
333 johnm 1.26 echo >> ${module_config}
334 johnm 1.11
335 johnm 1.26 #-----------------------------------------------------------------------
336 johnm 1.27 if [[ ${module_aliases} -gt 0 ]]
337 johnm 1.11 then
338     echo "# Internal Aliases - Do not edit" >> ${module_config}
339     echo "# ------------------------------" >> ${module_config}
340 johnm 1.12
341 johnm 1.26 for((t=0; t<${module_aliases}; t++))
342 johnm 1.11 do
343 johnm 1.26 echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" \
344     >> ${module_config}
345 johnm 1.12 done
346 johnm 1.26 echo '' >> ${module_config}
347 johnm 1.11 fi
348    
349 johnm 1.26 #-----------------------------------------------------------------------
350     if [[ -n ${module_modinfo} ]]
351 johnm 1.11 then
352     echo >> ${module_config}
353     echo "# Configurable module parameters" >> ${module_config}
354     echo "# ------------------------------" >> ${module_config}
355 johnm 1.26 myIFS="${IFS}"
356 johnm 1.11 IFS="$(echo -en "\n\b")"
357 swegener 1.49
358 johnm 1.26 for t in ${module_modinfo}
359 johnm 1.11 do
360 johnm 1.26 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
361     if [[ -n ${myVAR} ]]
362 johnm 1.11 then
363 johnm 1.26 module_opts="${module_opts} ${t%%:*}:${myVAR}"
364 johnm 1.11 fi
365 johnm 1.26 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
366 swegener 1.49 done
367 johnm 1.26 IFS="${myIFS}"
368     echo '' >> ${module_config}
369     fi
370    
371     #-----------------------------------------------------------------------
372     if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]
373     then
374     # So lets do some guesswork eh?
375     if [[ -n ${module_opts} ]]
376     then
377     echo "# For Example..." >> ${module_config}
378     echo "# --------------" >> ${module_config}
379     for t in ${module_opts}
380     do
381     echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config}
382     done
383     echo '' >> ${module_config}
384     fi
385 johnm 1.27 elif [[ ${module_examples} -gt 0 ]]
386 johnm 1.26 then
387     echo "# For Example..." >> ${module_config}
388     echo "# --------------" >> ${module_config}
389     for((t=0; t<${module_examples}; t++))
390     do
391     echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" \
392     >> ${module_config}
393 johnm 1.11 done
394 johnm 1.26 echo '' >> ${module_config}
395 johnm 1.11 fi
396 johnm 1.26
397     #-----------------------------------------------------------------------
398 johnm 1.27 if [[ ${module_additions} -gt 0 ]]
399 johnm 1.11 then
400 johnm 1.26 for((t=0; t<${module_additions}; t++))
401 johnm 1.11 do
402 johnm 1.26 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
403     >> ${module_config}
404 johnm 1.11 done
405 johnm 1.26 echo '' >> ${module_config}
406 johnm 1.11 fi
407 swegener 1.49
408 johnm 1.26 #-----------------------------------------------------------------------
409    
410 johnm 1.12 # then we install it
411 johnm 1.11 insinto /etc/modules.d
412 johnm 1.27 newins ${module_config} ${currm_path//*\/}
413    
414 johnm 1.12 # and install any documentation we might have.
415 johnm 1.26 [[ -n ${module_docs} ]] && dodoc ${module_docs}
416 johnm 1.11 done
417     eend 0
418 johnm 1.26 return 0
419 johnm 1.11 }
420    
421 johnm 1.18 find_module_params() {
422     local matched_offset=0 matched_opts=0 test="${@}" temp_var result
423     local i=0 y=0 z=0
424 swegener 1.49
425 johnm 1.18 for((i=0; i<=${#test}; i++))
426     do
427     case ${test:${i}:1} in
428     \() matched_offset[0]=${i};;
429     \:) matched_opts=$((${matched_opts} + 1));
430     matched_offset[${matched_opts}]="${i}";;
431     \)) matched_opts=$((${matched_opts} + 1));
432     matched_offset[${matched_opts}]="${i}";;
433     esac
434     done
435 swegener 1.49
436 johnm 1.18 for((i=0; i<=${matched_opts}; i++))
437     do
438     # i = offset were working on
439     # y = last offset
440     # z = current offset - last offset
441     # temp_var = temporary name
442     case ${i} in
443     0) tempvar=${test:0:${matched_offset[0]}};;
444     *) y=$((${matched_offset[$((${i} - 1))]} + 1))
445     z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
446     z=$((${z} - 1))
447     tempvar=${test:${y}:${z}};;
448     esac
449 swegener 1.49
450 johnm 1.18 case ${i} in
451     0) result="${result} modulename:${tempvar}";;
452     1) result="${result} libdir:${tempvar}";;
453     2) result="${result} srcdir:${tempvar}";;
454     3) result="${result} objdir:${tempvar}";;
455     esac
456     done
457 swegener 1.49
458 johnm 1.18 echo ${result}
459     }
460    
461 johnm 1.1 # default ebuild functions
462     # --------------------------------
463    
464     linux-mod_pkg_setup() {
465 johnm 1.6 linux-info_pkg_setup;
466     check_kernel_built;
467 johnm 1.1 check_modules_supported;
468     set_kvobj;
469 weeve 1.55 # Commented out with permission from johnm until a fixed version for arches
470     # who intentionally use different kernel and userland compilers can be
471     # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
472     #check_vermagic;
473 johnm 1.1 }
474    
475     linux-mod_src_compile() {
476 johnm 1.26 local modulename libdir srcdir objdir i n myARCH="${ARCH}"
477 johnm 1.52 ARCH="$(tc-arch-kernel)"
478 johnm 1.26
479 johnm 1.16 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
480 swegener 1.49
481 johnm 1.20 for i in ${MODULE_IGNORE}
482     do
483     MODULE_NAMES=${MODULE_NAMES//${i}(*}
484     done
485 johnm 1.1
486 johnm 1.9 for i in ${MODULE_NAMES}
487 johnm 1.1 do
488 johnm 1.23 unset libdir srcdir objdir
489 johnm 1.18 for n in $(find_module_params ${i})
490     do
491     eval ${n/:*}=${n/*:/}
492     done
493     libdir=${libdir:-misc}
494     srcdir=${srcdir:-${S}}
495     objdir=${objdir:-${srcdir}}
496 swegener 1.49
497 johnm 1.18 if [ ! -f "${srcdir}/.built" ];
498 johnm 1.16 then
499 johnm 1.18 cd ${srcdir}
500 johnm 1.16 einfo "Preparing ${modulename} module"
501 johnm 1.22 if [[ -n ${ECONF_PARAMS} ]]
502     then
503     econf ${ECONF_PARAMS} || \
504     die "Unable to run econf ${ECONF_PARAMS}"
505     fi
506    
507 johnm 1.21 emake ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
508 johnm 1.18 || die "Unable to make \
509     ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
510     touch ${srcdir}/.built
511 johnm 1.16 cd ${OLDPWD}
512     fi
513 johnm 1.1 done
514 johnm 1.26
515     ARCH="${myARCH}"
516 johnm 1.1 }
517    
518     linux-mod_src_install() {
519 johnm 1.18 local modulename libdir srcdir objdir i n
520 swegener 1.49
521 johnm 1.20 for i in ${MODULE_IGNORE}
522     do
523     MODULE_NAMES=${MODULE_NAMES//${i}(*}
524     done
525 johnm 1.1
526 johnm 1.9 for i in ${MODULE_NAMES}
527 johnm 1.1 do
528 johnm 1.23 unset libdir srcdir objdir
529 johnm 1.18 for n in $(find_module_params ${i})
530     do
531     eval ${n/:*}=${n/*:/}
532     done
533     libdir=${libdir:-misc}
534     srcdir=${srcdir:-${S}}
535     objdir=${objdir:-${srcdir}}
536 johnm 1.1
537     einfo "Installing ${modulename} module"
538 vapier 1.56 cd ${objdir} || die "${objdir} does not exist"
539 brix 1.57 insinto /lib/modules/${KV_FULL}/${libdir}
540 vapier 1.56 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
541 johnm 1.16 cd ${OLDPWD}
542 swegener 1.49
543 johnm 1.26 generate_modulesd ${objdir}/${modulename}
544 johnm 1.1 done
545     }
546    
547     linux-mod_pkg_postinst() {
548     update_depmod;
549 johnm 1.3 update_modules;
550 johnm 1.37 update_moduledb;
551 johnm 1.1 }
552 johnm 1.37
553     linux-mod_pkg_postrm() {
554     remove_moduledb;
555     }

  ViewVC Help
Powered by ViewVC 1.1.20