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

Contents of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.70 - (hide annotations) (download)
Mon Jan 1 22:27:01 2007 UTC (7 years, 3 months ago) by swegener
Branch: MAIN
Changes since 1.69: +3 -3 lines
Apply whitespace checks from repoman to eclasses.

1 johnm 1.1 # Copyright 1999-2004 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 swegener 1.70 # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.69 2006/11/25 10:16:04 genstef 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 genstef 1.68 # Maintainer: John Mylchreest <johnm@gentoo.org>, Stefan Schweizer <genstef@gentoo.org>
11 johnm 1.10 # 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 blubb 1.62 inherit eutils linux-info multilib
87 genstef 1.65 EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm
88 johnm 1.1
89 genstef 1.67 IUSE="kernel_linux"
90 johnm 1.26 SLOT="0"
91 johnm 1.1 DESCRIPTION="Based on the $ECLASS eclass"
92 genstef 1.67 RDEPEND="kernel_linux? ( virtual/modutils )"
93 genstef 1.65 DEPEND="${RDEPEND}
94 vapier 1.66 sys-apps/sed"
95 johnm 1.26
96 johnm 1.1 # eclass utilities
97     # ----------------------------------
98    
99 johnm 1.53 check_vermagic() {
100 genstef 1.69 debug-print-function ${FUNCNAME} $*
101    
102 johnm 1.53 local curr_gcc_ver=$(gcc -dumpversion)
103     local tmpfile old_chost old_gcc_ver result=0
104    
105 johnm 1.54 tmpfile=`find ${KV_DIR}/ -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`
106 johnm 1.53 tmpfile=${tmpfile//*usr/lib}
107     tmpfile=${tmpfile//\/include*}
108     old_chost=${tmpfile//*gcc\/}
109     old_chost=${old_chost//\/*}
110     old_gcc_ver=${tmpfile//*\/}
111    
112 johnm 1.54 if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
113     ewarn ""
114     ewarn "Unable to detect what version of GCC was used to compile"
115     ewarn "the kernel. Build will continue, but you may experience problems."
116     elif [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
117 johnm 1.53 ewarn ""
118     ewarn "The version of GCC you are using (${curr_gcc_ver}) does"
119     ewarn "not match the version of GCC used to compile the"
120     ewarn "kernel (${old_gcc_ver})."
121     result=1
122     elif [[ ${CHOST} != ${old_chost} ]]; then
123     ewarn ""
124     ewarn "The current CHOST (${CHOST}) does not match the chost"
125     ewarn "used when compiling the kernel (${old_chost})."
126     result=1
127     fi
128    
129     if [[ ${result} -gt 0 ]]; then
130     ewarn ""
131     ewarn "Build will not continue, because you will experience problems."
132     ewarn "To fix this either change the version of GCC you wish to use"
133     ewarn "to match the kernel, or recompile the kernel first."
134     die "GCC Version Mismatch."
135     fi
136     }
137    
138 johnm 1.1 use_m() {
139 genstef 1.69 debug-print-function ${FUNCNAME} $*
140    
141 johnm 1.1 # if we haven't determined the version yet, we need too.
142     get_version;
143 swegener 1.49
144 johnm 1.1 # if the kernel version is greater than 2.6.6 then we should use
145 johnm 1.8 # M= instead of SUBDIRS=
146 johnm 1.1 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \
147     return 0 || return 1
148     }
149    
150     convert_to_m() {
151 genstef 1.69 debug-print-function ${FUNCNAME} $*
152    
153 johnm 1.1 if use_m
154     then
155 johnm 1.32 [ ! -f "${1}" ] && \
156     die "convert_to_m() requires a filename as an argument"
157 johnm 1.8 ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS="
158 johnm 1.1 sed -i 's:SUBDIRS=:M=:g' ${1}
159     eend $?
160     fi
161     }
162    
163     update_depmod() {
164 genstef 1.69 debug-print-function ${FUNCNAME} $*
165    
166 johnm 1.1 # if we haven't determined the version yet, we need too.
167     get_version;
168 swegener 1.49
169 johnm 1.1 ebegin "Updating module dependencies for ${KV_FULL}"
170 johnm 1.5 if [ -r ${KV_OUT_DIR}/System.map ]
171 johnm 1.1 then
172 johnm 1.5 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL}
173 johnm 1.18 eend $?
174 johnm 1.1 else
175     ewarn
176 johnm 1.5 ewarn "${KV_OUT_DIR}/System.map not found."
177 johnm 1.1 ewarn "You must manually update the kernel module dependencies using depmod."
178 johnm 1.18 eend 1
179 johnm 1.1 ewarn
180     fi
181     }
182    
183 johnm 1.3 update_modules() {
184 genstef 1.69 debug-print-function ${FUNCNAME} $*
185    
186 kingtaco 1.31 if [ -x /sbin/modules-update ] && \
187     grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
188 johnm 1.3 ebegin "Updating modules.conf"
189     /sbin/modules-update
190     eend $?
191     fi
192     }
193    
194 johnm 1.41 move_old_moduledb() {
195 genstef 1.69 debug-print-function ${FUNCNAME} $*
196    
197 johnm 1.41 local OLDDIR=${ROOT}/usr/share/module-rebuild/
198     local NEWDIR=${ROOT}/var/lib/module-rebuild/
199 swegener 1.49
200 johnm 1.41 if [[ -f ${OLDDIR}/moduledb ]]; then
201     [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
202 johnm 1.42 [[ ! -f ${NEWDIR}/moduledb ]] && \
203     mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
204     rm -f ${OLDDIR}/*
205 johnm 1.41 rmdir ${OLDDIR}
206     fi
207     }
208    
209 johnm 1.37 update_moduledb() {
210 genstef 1.69 debug-print-function ${FUNCNAME} $*
211    
212 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
213 johnm 1.41 move_old_moduledb
214 johnm 1.40
215     if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
216     [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
217     touch ${MODULEDB_DIR}/moduledb
218 johnm 1.37 fi
219 johnm 1.40 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
220 johnm 1.37 einfo "Adding module to moduledb."
221 johnm 1.40 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
222 swegener 1.49 fi
223 johnm 1.37 }
224    
225     remove_moduledb() {
226 genstef 1.69 debug-print-function ${FUNCNAME} $*
227    
228 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
229 johnm 1.41 move_old_moduledb
230 johnm 1.40
231     if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
232 johnm 1.37 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
233 johnm 1.59 sed -ie "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
234 johnm 1.37 fi
235     }
236    
237 johnm 1.1 set_kvobj() {
238 genstef 1.69 debug-print-function ${FUNCNAME} $*
239    
240 johnm 1.1 if kernel_is 2 6
241     then
242     KV_OBJ="ko"
243     else
244     KV_OBJ="o"
245     fi
246 johnm 1.26 # Do we really need to know this?
247     # Lets silence it.
248     # einfo "Using KV_OBJ=${KV_OBJ}"
249 johnm 1.1 }
250    
251 genstef 1.68 get-KERNEL_CC() {
252 genstef 1.69 debug-print-function ${FUNCNAME} $*
253    
254 genstef 1.68 local kernel_cc
255     if [ -n "${KERNEL_ABI}" ]; then
256     # In future, an arch might want to define CC_$ABI
257     #kernel_cc="$(get_abi_CC)"
258 swegener 1.70 #[ -z "${kernel_cc}" ] &&
259 genstef 1.68 kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))"
260     else
261     kernel_cc=$(tc-getCC)
262     fi
263     echo "${kernel_cc}"
264     }
265    
266 johnm 1.11 generate_modulesd() {
267 genstef 1.69 debug-print-function ${FUNCNAME} $*
268    
269 johnm 1.11 # This function will generate the neccessary modules.d file from the
270     # information contained in the modules exported parms
271 johnm 1.26
272 johnm 1.54 local currm_path currm currm_t t myIFS myVAR
273 johnm 1.26 local module_docs module_enabled module_aliases \
274     module_additions module_examples module_modinfo module_opts
275    
276     for currm_path in ${@}
277 johnm 1.11 do
278 johnm 1.26 currm=${currm_path//*\/}
279     currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
280 johnm 1.54 currm_t=${currm}
281     while [[ -z ${currm_t//*-*} ]]; do
282     currm_t=${currm_t/-/_}
283     done
284 johnm 1.26
285 johnm 1.54 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"
286     module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"
287     module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"
288     module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"
289     module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"
290 johnm 1.26
291 johnm 1.27 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
292     [[ ${module_additions} -eq 0 ]] && unset module_additions
293     [[ ${module_examples} -eq 0 ]] && unset module_examples
294 johnm 1.26
295 swegener 1.49 # If we specify we dont want it, then lets exit, otherwise we assume
296 johnm 1.26 # that if its set, we do want it.
297     [[ ${module_enabled} == no ]] && return 0
298    
299     # unset any unwanted variables.
300     for t in ${!module_*}
301 johnm 1.11 do
302 johnm 1.26 [[ -z ${!t} ]] && unset ${t}
303 johnm 1.11 done
304    
305 johnm 1.26 [[ -z ${!module_*} ]] && return 0
306    
307     # OK so now if we have got this far, then we know we want to continue
308     # and generate the modules.d file.
309     module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
310     module_config="${T}/modulesd-${currm}"
311    
312 johnm 1.11 ebegin "Preparing file for modules.d"
313 johnm 1.26 #-----------------------------------------------------------------------
314     echo "# modules.d configuration file for ${currm}" >> ${module_config}
315     #-----------------------------------------------------------------------
316     [[ -n ${module_docs} ]] && \
317     echo "# For more information please read:" >> ${module_config}
318     for t in ${module_docs}
319 johnm 1.11 do
320 johnm 1.26 echo "# ${t//*\/}" >> ${module_config}
321 johnm 1.11 done
322 johnm 1.26 echo >> ${module_config}
323 johnm 1.11
324 johnm 1.26 #-----------------------------------------------------------------------
325 johnm 1.27 if [[ ${module_aliases} -gt 0 ]]
326 johnm 1.11 then
327     echo "# Internal Aliases - Do not edit" >> ${module_config}
328     echo "# ------------------------------" >> ${module_config}
329 johnm 1.12
330 johnm 1.26 for((t=0; t<${module_aliases}; t++))
331 johnm 1.11 do
332 johnm 1.26 echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" \
333     >> ${module_config}
334 johnm 1.12 done
335 johnm 1.26 echo '' >> ${module_config}
336 johnm 1.11 fi
337    
338 johnm 1.26 #-----------------------------------------------------------------------
339     if [[ -n ${module_modinfo} ]]
340 johnm 1.11 then
341     echo >> ${module_config}
342     echo "# Configurable module parameters" >> ${module_config}
343     echo "# ------------------------------" >> ${module_config}
344 johnm 1.26 myIFS="${IFS}"
345 johnm 1.11 IFS="$(echo -en "\n\b")"
346 swegener 1.49
347 johnm 1.26 for t in ${module_modinfo}
348 johnm 1.11 do
349 johnm 1.26 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
350     if [[ -n ${myVAR} ]]
351 johnm 1.11 then
352 johnm 1.26 module_opts="${module_opts} ${t%%:*}:${myVAR}"
353 johnm 1.11 fi
354 johnm 1.26 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
355 swegener 1.49 done
356 johnm 1.26 IFS="${myIFS}"
357     echo '' >> ${module_config}
358     fi
359    
360     #-----------------------------------------------------------------------
361     if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]
362     then
363     # So lets do some guesswork eh?
364     if [[ -n ${module_opts} ]]
365     then
366     echo "# For Example..." >> ${module_config}
367     echo "# --------------" >> ${module_config}
368     for t in ${module_opts}
369     do
370     echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config}
371     done
372     echo '' >> ${module_config}
373     fi
374 johnm 1.27 elif [[ ${module_examples} -gt 0 ]]
375 johnm 1.26 then
376     echo "# For Example..." >> ${module_config}
377     echo "# --------------" >> ${module_config}
378     for((t=0; t<${module_examples}; t++))
379     do
380     echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" \
381     >> ${module_config}
382 johnm 1.11 done
383 johnm 1.26 echo '' >> ${module_config}
384 johnm 1.11 fi
385 johnm 1.26
386     #-----------------------------------------------------------------------
387 johnm 1.27 if [[ ${module_additions} -gt 0 ]]
388 johnm 1.11 then
389 johnm 1.26 for((t=0; t<${module_additions}; t++))
390 johnm 1.11 do
391 johnm 1.26 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
392     >> ${module_config}
393 johnm 1.11 done
394 johnm 1.26 echo '' >> ${module_config}
395 johnm 1.11 fi
396 swegener 1.49
397 johnm 1.26 #-----------------------------------------------------------------------
398    
399 johnm 1.12 # then we install it
400 johnm 1.11 insinto /etc/modules.d
401 johnm 1.27 newins ${module_config} ${currm_path//*\/}
402    
403 johnm 1.12 # and install any documentation we might have.
404 johnm 1.26 [[ -n ${module_docs} ]] && dodoc ${module_docs}
405 johnm 1.11 done
406     eend 0
407 johnm 1.26 return 0
408 johnm 1.11 }
409    
410 johnm 1.18 find_module_params() {
411 genstef 1.69 debug-print-function ${FUNCNAME} $*
412    
413 johnm 1.18 local matched_offset=0 matched_opts=0 test="${@}" temp_var result
414     local i=0 y=0 z=0
415 swegener 1.49
416 johnm 1.18 for((i=0; i<=${#test}; i++))
417     do
418     case ${test:${i}:1} in
419     \() matched_offset[0]=${i};;
420     \:) matched_opts=$((${matched_opts} + 1));
421     matched_offset[${matched_opts}]="${i}";;
422     \)) matched_opts=$((${matched_opts} + 1));
423     matched_offset[${matched_opts}]="${i}";;
424     esac
425     done
426 swegener 1.49
427 johnm 1.18 for((i=0; i<=${matched_opts}; i++))
428     do
429     # i = offset were working on
430     # y = last offset
431     # z = current offset - last offset
432     # temp_var = temporary name
433     case ${i} in
434     0) tempvar=${test:0:${matched_offset[0]}};;
435     *) y=$((${matched_offset[$((${i} - 1))]} + 1))
436     z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
437     z=$((${z} - 1))
438     tempvar=${test:${y}:${z}};;
439     esac
440 swegener 1.49
441 johnm 1.18 case ${i} in
442     0) result="${result} modulename:${tempvar}";;
443     1) result="${result} libdir:${tempvar}";;
444     2) result="${result} srcdir:${tempvar}";;
445     3) result="${result} objdir:${tempvar}";;
446     esac
447     done
448 swegener 1.49
449 johnm 1.18 echo ${result}
450     }
451    
452 johnm 1.1 # default ebuild functions
453     # --------------------------------
454    
455     linux-mod_pkg_setup() {
456 genstef 1.69 debug-print-function ${FUNCNAME} $*
457    
458 johnm 1.6 linux-info_pkg_setup;
459     check_kernel_built;
460 johnm 1.63 strip_modulenames;
461     [[ -n ${MODULE_NAMES} ]] && check_modules_supported
462 johnm 1.1 set_kvobj;
463 weeve 1.55 # Commented out with permission from johnm until a fixed version for arches
464     # who intentionally use different kernel and userland compilers can be
465     # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
466     #check_vermagic;
467 johnm 1.1 }
468    
469 johnm 1.63 strip_modulenames() {
470 genstef 1.69 debug-print-function ${FUNCNAME} $*
471    
472 johnm 1.63 local i
473     for i in ${MODULE_IGNORE}; do
474     MODULE_NAMES=${MODULE_NAMES//${i}(*}
475     done
476     }
477    
478 johnm 1.1 linux-mod_src_compile() {
479 genstef 1.69 debug-print-function ${FUNCNAME} $*
480    
481 blubb 1.62 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}"
482 johnm 1.52 ARCH="$(tc-arch-kernel)"
483 blubb 1.62 ABI="${KERNEL_ABI}"
484 johnm 1.26
485 johnm 1.16 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
486 johnm 1.63 strip_modulenames;
487 johnm 1.9 for i in ${MODULE_NAMES}
488 johnm 1.1 do
489 johnm 1.23 unset libdir srcdir objdir
490 johnm 1.18 for n in $(find_module_params ${i})
491     do
492     eval ${n/:*}=${n/*:/}
493     done
494     libdir=${libdir:-misc}
495     srcdir=${srcdir:-${S}}
496     objdir=${objdir:-${srcdir}}
497 swegener 1.49
498 johnm 1.18 if [ ! -f "${srcdir}/.built" ];
499 johnm 1.16 then
500 johnm 1.18 cd ${srcdir}
501 johnm 1.16 einfo "Preparing ${modulename} module"
502 johnm 1.22 if [[ -n ${ECONF_PARAMS} ]]
503     then
504     econf ${ECONF_PARAMS} || \
505     die "Unable to run econf ${ECONF_PARAMS}"
506     fi
507    
508 genstef 1.69 emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \
509 johnm 1.64 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
510 vapier 1.66 || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
511 johnm 1.18 touch ${srcdir}/.built
512 johnm 1.16 cd ${OLDPWD}
513     fi
514 johnm 1.1 done
515 johnm 1.26
516     ARCH="${myARCH}"
517 blubb 1.62 ABI="${myABI}"
518 johnm 1.1 }
519    
520     linux-mod_src_install() {
521 genstef 1.69 debug-print-function ${FUNCNAME} $*
522    
523 johnm 1.18 local modulename libdir srcdir objdir i n
524 swegener 1.49
525 johnm 1.63 strip_modulenames;
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 genstef 1.65 linux-mod_pkg_preinst() {
548 genstef 1.69 debug-print-function ${FUNCNAME} $*
549    
550 genstef 1.65 [ -d ${IMAGE}/lib/modules ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false
551     [ -d ${IMAGE}/etc/modules.d ] && UPDATE_MODULES=true || UPDATE_MODULES=false
552     [ -d ${IMAGE}/lib/modules ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
553     }
554    
555 johnm 1.1 linux-mod_pkg_postinst() {
556 genstef 1.69 debug-print-function ${FUNCNAME} $*
557    
558 genstef 1.65 ${UPDATE_DEPMOD} && update_depmod;
559     ${UPDATE_MODULES} && update_modules;
560     ${UPDATE_MODULEDB} && update_moduledb;
561 johnm 1.1 }
562 johnm 1.37
563     linux-mod_pkg_postrm() {
564 swegener 1.70 debug-print-function ${FUNCNAME} $*
565 johnm 1.37 remove_moduledb;
566     }

  ViewVC Help
Powered by ViewVC 1.1.20