]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/classes/module.bbclass
external kernel modules: PARALLEL_INSTALL fixes
[familiar-h63xx-build.git] / org.handhelds.familiar / classes / module.bbclass
1 RDEPENDS += "kernel (${KERNEL_VERSION})"
2 DEPENDS += "virtual/kernel"
3
4 inherit module-base
5
6 KERNEL_MAJOR_VERSION = "${@'.'.join(bb.data.getVar('KERNEL_VERSION', d, 1).split('.')[:2])}"
7
8 python populate_packages_prepend() {
9         v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0"
10         if v == "1":
11                 kv = bb.data.getVar("KERNEL_MAJOR_VERSION", d, 1)
12                 packages = bb.data.getVar("PACKAGES", d, 1)
13                 repl_vers = bb.data.getVar("PARALLEL_INSTALL_REPLACE_VERSIONS", d, 1)
14                 for p in packages.split():
15                         pkg = bb.data.getVar("PKG_%s" % p, d, 1) or p
16                         newpkg = "%s-%s" % (pkg, kv)
17                         bb.data.setVar("PKG_%s" % p, newpkg, d)
18                         rprovides = bb.data.getVar("RPROVIDES_%s" % p, d, 1)
19                         if rprovides:
20                                 rprovides = "%s %s" % (rprovides, pkg)
21                         else:
22                                 rprovides = pkg
23                         bb.data.setVar("RPROVIDES_%s" % p, rprovides, d)
24
25                         # kv was changed from KERNEL_VERSION to KERNEL_MAJOR_VERSION.
26                         # now fix the upgrade path...
27                         if repl_vers:
28                                 repl_pkgs = []
29                                 for v in repl_vers.split():
30                                         repl_pkgs.append("%s-%s" % (pkg, v))
31                                 for i in ["PROVIDES", "CONFLICTS", "REPLACES"]:
32                                         val = bb.data.getVar("R%s_%s" % (i, p), d, 1)
33                                         if val:
34                                                 old = val.split()
35                                                 add = []
36                                                 for k in repl_pkgs:
37                                                         if not k in old:
38                                                                 add.append(k)
39                                                 val = "%s %s" % (val, " ".join(add))
40                                         else:
41                                                 val = "%s" % " ".join(repl_pkgs)
42                                         bb.data.setVar("R%s_%s" % (i, p), val, d)
43 }
44
45 module_do_compile() {
46         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
47         oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
48                    KERNEL_SRC=${STAGING_KERNEL_DIR}    \
49                    KERNEL_VERSION=${KERNEL_VERSION}    \
50                    CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
51                    ${MAKE_TARGETS}
52 }
53
54 module_do_install() {
55         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
56         oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" modules_install
57 }
58
59 pkg_postinst_append () {
60         if [ -n "$D" ]; then
61                 exit 1
62         fi
63         depmod -A
64         update-modules || true
65 }
66
67 pkg_postrm_append () {
68         update-modules || true
69 }
70
71 EXPORT_FUNCTIONS do_compile do_install
72
73 FILES_${PN} = "/etc /lib/modules"