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

Contents of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.74 - (hide annotations) (download)
Mon Apr 16 19:20:28 2007 UTC (7 years, 5 months ago) by vapier
Branch: MAIN
Changes since 1.73: +3 -3 lines
modules-update -> update-modules

1 johnm 1.1 # Copyright 1999-2004 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 vapier 1.74 # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.73 2007/04/16 08:13:40 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 genstef 1.73 if [ -x /sbin/update-modules ] && \
187     grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
188     ebegin "Updating modules.conf"
189     /sbin/update-modules
190     eend $?
191 vapier 1.74 elif [ -x /sbin/update-modules ] && \
192 kingtaco 1.31 grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
193 johnm 1.3 ebegin "Updating modules.conf"
194 vapier 1.74 /sbin/update-modules
195 johnm 1.3 eend $?
196     fi
197     }
198    
199 johnm 1.41 move_old_moduledb() {
200 genstef 1.69 debug-print-function ${FUNCNAME} $*
201    
202 johnm 1.41 local OLDDIR=${ROOT}/usr/share/module-rebuild/
203     local NEWDIR=${ROOT}/var/lib/module-rebuild/
204 swegener 1.49
205 johnm 1.41 if [[ -f ${OLDDIR}/moduledb ]]; then
206     [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
207 johnm 1.42 [[ ! -f ${NEWDIR}/moduledb ]] && \
208     mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
209     rm -f ${OLDDIR}/*
210 johnm 1.41 rmdir ${OLDDIR}
211     fi
212     }
213    
214 johnm 1.37 update_moduledb() {
215 genstef 1.69 debug-print-function ${FUNCNAME} $*
216    
217 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
218 johnm 1.41 move_old_moduledb
219 johnm 1.40
220     if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
221     [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
222     touch ${MODULEDB_DIR}/moduledb
223 johnm 1.37 fi
224 vapier 1.72
225     if ! grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb ; then
226 johnm 1.37 einfo "Adding module to moduledb."
227 johnm 1.40 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
228 swegener 1.49 fi
229 johnm 1.37 }
230    
231     remove_moduledb() {
232 genstef 1.69 debug-print-function ${FUNCNAME} $*
233    
234 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
235 johnm 1.41 move_old_moduledb
236 johnm 1.40
237 vapier 1.72 if grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb ; then
238 johnm 1.37 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
239 dsd 1.71 sed -i -e "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
240 johnm 1.37 fi
241     }
242    
243 johnm 1.1 set_kvobj() {
244 genstef 1.69 debug-print-function ${FUNCNAME} $*
245    
246 johnm 1.1 if kernel_is 2 6
247     then
248     KV_OBJ="ko"
249     else
250     KV_OBJ="o"
251     fi
252 johnm 1.26 # Do we really need to know this?
253     # Lets silence it.
254     # einfo "Using KV_OBJ=${KV_OBJ}"
255 johnm 1.1 }
256    
257 genstef 1.68 get-KERNEL_CC() {
258 genstef 1.69 debug-print-function ${FUNCNAME} $*
259    
260 genstef 1.68 local kernel_cc
261     if [ -n "${KERNEL_ABI}" ]; then
262     # In future, an arch might want to define CC_$ABI
263     #kernel_cc="$(get_abi_CC)"
264 swegener 1.70 #[ -z "${kernel_cc}" ] &&
265 genstef 1.68 kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))"
266     else
267     kernel_cc=$(tc-getCC)
268     fi
269     echo "${kernel_cc}"
270     }
271    
272 johnm 1.11 generate_modulesd() {
273 genstef 1.69 debug-print-function ${FUNCNAME} $*
274    
275 johnm 1.11 # This function will generate the neccessary modules.d file from the
276     # information contained in the modules exported parms
277 johnm 1.26
278 johnm 1.54 local currm_path currm currm_t t myIFS myVAR
279 johnm 1.26 local module_docs module_enabled module_aliases \
280     module_additions module_examples module_modinfo module_opts
281    
282     for currm_path in ${@}
283 johnm 1.11 do
284 johnm 1.26 currm=${currm_path//*\/}
285     currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
286 johnm 1.54 currm_t=${currm}
287     while [[ -z ${currm_t//*-*} ]]; do
288     currm_t=${currm_t/-/_}
289     done
290 johnm 1.26
291 johnm 1.54 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"
292     module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"
293     module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"
294     module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"
295     module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"
296 johnm 1.26
297 johnm 1.27 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
298     [[ ${module_additions} -eq 0 ]] && unset module_additions
299     [[ ${module_examples} -eq 0 ]] && unset module_examples
300 johnm 1.26
301 swegener 1.49 # If we specify we dont want it, then lets exit, otherwise we assume
302 johnm 1.26 # that if its set, we do want it.
303     [[ ${module_enabled} == no ]] && return 0
304    
305     # unset any unwanted variables.
306     for t in ${!module_*}
307 johnm 1.11 do
308 johnm 1.26 [[ -z ${!t} ]] && unset ${t}
309 johnm 1.11 done
310    
311 johnm 1.26 [[ -z ${!module_*} ]] && return 0
312    
313     # OK so now if we have got this far, then we know we want to continue
314     # and generate the modules.d file.
315     module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
316     module_config="${T}/modulesd-${currm}"
317    
318 johnm 1.11 ebegin "Preparing file for modules.d"
319 johnm 1.26 #-----------------------------------------------------------------------
320     echo "# modules.d configuration file for ${currm}" >> ${module_config}
321     #-----------------------------------------------------------------------
322     [[ -n ${module_docs} ]] && \
323     echo "# For more information please read:" >> ${module_config}
324     for t in ${module_docs}
325 johnm 1.11 do
326 johnm 1.26 echo "# ${t//*\/}" >> ${module_config}
327 johnm 1.11 done
328 johnm 1.26 echo >> ${module_config}
329 johnm 1.11
330 johnm 1.26 #-----------------------------------------------------------------------
331 johnm 1.27 if [[ ${module_aliases} -gt 0 ]]
332 johnm 1.11 then
333     echo "# Internal Aliases - Do not edit" >> ${module_config}
334     echo "# ------------------------------" >> ${module_config}
335 johnm 1.12
336 johnm 1.26 for((t=0; t<${module_aliases}; t++))
337 johnm 1.11 do
338 johnm 1.26 echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" \
339     >> ${module_config}
340 johnm 1.12 done
341 johnm 1.26 echo '' >> ${module_config}
342 johnm 1.11 fi
343    
344 johnm 1.26 #-----------------------------------------------------------------------
345     if [[ -n ${module_modinfo} ]]
346 johnm 1.11 then
347     echo >> ${module_config}
348     echo "# Configurable module parameters" >> ${module_config}
349     echo "# ------------------------------" >> ${module_config}
350 johnm 1.26 myIFS="${IFS}"
351 johnm 1.11 IFS="$(echo -en "\n\b")"
352 swegener 1.49
353 johnm 1.26 for t in ${module_modinfo}
354 johnm 1.11 do
355 johnm 1.26 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
356     if [[ -n ${myVAR} ]]
357 johnm 1.11 then
358 johnm 1.26 module_opts="${module_opts} ${t%%:*}:${myVAR}"
359 johnm 1.11 fi
360 johnm 1.26 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
361 swegener 1.49 done
362 johnm 1.26 IFS="${myIFS}"
363     echo '' >> ${module_config}
364     fi
365    
366     #-----------------------------------------------------------------------
367     if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]
368     then
369     # So lets do some guesswork eh?
370     if [[ -n ${module_opts} ]]
371     then
372     echo "# For Example..." >> ${module_config}
373     echo "# --------------" >> ${module_config}
374     for t in ${module_opts}
375     do
376     echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config}
377     done
378     echo '' >> ${module_config}
379     fi
380 johnm 1.27 elif [[ ${module_examples} -gt 0 ]]
381 johnm 1.26 then
382     echo "# For Example..." >> ${module_config}
383     echo "# --------------" >> ${module_config}
384     for((t=0; t<${module_examples}; t++))
385     do
386     echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" \
387     >> ${module_config}
388 johnm 1.11 done
389 johnm 1.26 echo '' >> ${module_config}
390 johnm 1.11 fi
391 johnm 1.26
392     #-----------------------------------------------------------------------
393 johnm 1.27 if [[ ${module_additions} -gt 0 ]]
394 johnm 1.11 then
395 johnm 1.26 for((t=0; t<${module_additions}; t++))
396 johnm 1.11 do
397 johnm 1.26 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
398     >> ${module_config}
399 johnm 1.11 done
400 johnm 1.26 echo '' >> ${module_config}
401 johnm 1.11 fi
402 swegener 1.49
403 johnm 1.26 #-----------------------------------------------------------------------
404    
405 johnm 1.12 # then we install it
406 johnm 1.11 insinto /etc/modules.d
407 johnm 1.27 newins ${module_config} ${currm_path//*\/}
408    
409 johnm 1.12 # and install any documentation we might have.
410 johnm 1.26 [[ -n ${module_docs} ]] && dodoc ${module_docs}
411 johnm 1.11 done
412     eend 0
413 johnm 1.26 return 0
414 johnm 1.11 }
415    
416 johnm 1.18 find_module_params() {
417 genstef 1.69 debug-print-function ${FUNCNAME} $*
418    
419 johnm 1.18 local matched_offset=0 matched_opts=0 test="${@}" temp_var result
420     local i=0 y=0 z=0
421 swegener 1.49
422 johnm 1.18 for((i=0; i<=${#test}; i++))
423     do
424     case ${test:${i}:1} in
425     \() matched_offset[0]=${i};;
426     \:) matched_opts=$((${matched_opts} + 1));
427     matched_offset[${matched_opts}]="${i}";;
428     \)) matched_opts=$((${matched_opts} + 1));
429     matched_offset[${matched_opts}]="${i}";;
430     esac
431     done
432 swegener 1.49
433 johnm 1.18 for((i=0; i<=${matched_opts}; i++))
434     do
435     # i = offset were working on
436     # y = last offset
437     # z = current offset - last offset
438     # temp_var = temporary name
439     case ${i} in
440     0) tempvar=${test:0:${matched_offset[0]}};;
441     *) y=$((${matched_offset[$((${i} - 1))]} + 1))
442     z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
443     z=$((${z} - 1))
444     tempvar=${test:${y}:${z}};;
445     esac
446 swegener 1.49
447 johnm 1.18 case ${i} in
448     0) result="${result} modulename:${tempvar}";;
449     1) result="${result} libdir:${tempvar}";;
450     2) result="${result} srcdir:${tempvar}";;
451     3) result="${result} objdir:${tempvar}";;
452     esac
453     done
454 swegener 1.49
455 johnm 1.18 echo ${result}
456     }
457    
458 johnm 1.1 # default ebuild functions
459     # --------------------------------
460    
461     linux-mod_pkg_setup() {
462 genstef 1.69 debug-print-function ${FUNCNAME} $*
463    
464 johnm 1.6 linux-info_pkg_setup;
465     check_kernel_built;
466 johnm 1.63 strip_modulenames;
467     [[ -n ${MODULE_NAMES} ]] && check_modules_supported
468 johnm 1.1 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 johnm 1.63 strip_modulenames() {
476 genstef 1.69 debug-print-function ${FUNCNAME} $*
477    
478 johnm 1.63 local i
479     for i in ${MODULE_IGNORE}; do
480     MODULE_NAMES=${MODULE_NAMES//${i}(*}
481     done
482     }
483    
484 johnm 1.1 linux-mod_src_compile() {
485 genstef 1.69 debug-print-function ${FUNCNAME} $*
486    
487 blubb 1.62 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}"
488 johnm 1.52 ARCH="$(tc-arch-kernel)"
489 blubb 1.62 ABI="${KERNEL_ABI}"
490 johnm 1.26
491 johnm 1.16 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
492 johnm 1.63 strip_modulenames;
493 johnm 1.9 for i in ${MODULE_NAMES}
494 johnm 1.1 do
495 johnm 1.23 unset libdir srcdir objdir
496 johnm 1.18 for n in $(find_module_params ${i})
497     do
498     eval ${n/:*}=${n/*:/}
499     done
500     libdir=${libdir:-misc}
501     srcdir=${srcdir:-${S}}
502     objdir=${objdir:-${srcdir}}
503 swegener 1.49
504 johnm 1.18 if [ ! -f "${srcdir}/.built" ];
505 johnm 1.16 then
506 johnm 1.18 cd ${srcdir}
507 johnm 1.16 einfo "Preparing ${modulename} module"
508 johnm 1.22 if [[ -n ${ECONF_PARAMS} ]]
509     then
510     econf ${ECONF_PARAMS} || \
511     die "Unable to run econf ${ECONF_PARAMS}"
512     fi
513    
514 genstef 1.69 emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \
515 johnm 1.64 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
516 vapier 1.66 || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
517 johnm 1.18 touch ${srcdir}/.built
518 johnm 1.16 cd ${OLDPWD}
519     fi
520 johnm 1.1 done
521 johnm 1.26
522     ARCH="${myARCH}"
523 blubb 1.62 ABI="${myABI}"
524 johnm 1.1 }
525    
526     linux-mod_src_install() {
527 genstef 1.69 debug-print-function ${FUNCNAME} $*
528    
529 johnm 1.18 local modulename libdir srcdir objdir i n
530 swegener 1.49
531 johnm 1.63 strip_modulenames;
532 johnm 1.9 for i in ${MODULE_NAMES}
533 johnm 1.1 do
534 johnm 1.23 unset libdir srcdir objdir
535 johnm 1.18 for n in $(find_module_params ${i})
536     do
537     eval ${n/:*}=${n/*:/}
538     done
539     libdir=${libdir:-misc}
540     srcdir=${srcdir:-${S}}
541     objdir=${objdir:-${srcdir}}
542 johnm 1.1
543     einfo "Installing ${modulename} module"
544 vapier 1.56 cd ${objdir} || die "${objdir} does not exist"
545 brix 1.57 insinto /lib/modules/${KV_FULL}/${libdir}
546 vapier 1.56 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
547 johnm 1.16 cd ${OLDPWD}
548 swegener 1.49
549 johnm 1.26 generate_modulesd ${objdir}/${modulename}
550 johnm 1.1 done
551     }
552    
553 genstef 1.65 linux-mod_pkg_preinst() {
554 genstef 1.69 debug-print-function ${FUNCNAME} $*
555    
556 genstef 1.65 [ -d ${IMAGE}/lib/modules ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false
557     [ -d ${IMAGE}/etc/modules.d ] && UPDATE_MODULES=true || UPDATE_MODULES=false
558     [ -d ${IMAGE}/lib/modules ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
559     }
560    
561 johnm 1.1 linux-mod_pkg_postinst() {
562 genstef 1.69 debug-print-function ${FUNCNAME} $*
563    
564 genstef 1.65 ${UPDATE_DEPMOD} && update_depmod;
565     ${UPDATE_MODULES} && update_modules;
566     ${UPDATE_MODULEDB} && update_moduledb;
567 johnm 1.1 }
568 johnm 1.37
569     linux-mod_pkg_postrm() {
570 swegener 1.70 debug-print-function ${FUNCNAME} $*
571 johnm 1.37 remove_moduledb;
572     }

  ViewVC Help
Powered by ViewVC 1.1.20