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

Contents of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.60 - (hide annotations) (download)
Fri Mar 3 21:04:58 2006 UTC (8 years, 6 months ago) by johnm
Branch: MAIN
Changes since 1.59: +3 -3 lines
Fixes QA bug #124324, thanks Ciaran

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

  ViewVC Help
Powered by ViewVC 1.1.20