summaryrefslogtreecommitdiff
path: root/classes/module.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/module.bbclass')
-rw-r--r--classes/module.bbclass40
1 files changed, 40 insertions, 0 deletions
diff --git a/classes/module.bbclass b/classes/module.bbclass
index e69de29bb2..eef98292a7 100644
--- a/classes/module.bbclass
+++ b/classes/module.bbclass
@@ -0,0 +1,40 @@
+RDEPENDS += "kernel (${KERNEL_VERSION}) update-modules"
+DEPENDS += "virtual/kernel"
+
+inherit module-base
+
+MODULE_MAKE_FLAGS = '\
+ KERNEL_PATH=${STAGING_KERNEL_DIR}\
+ KERNEL_SRC=${STAGING_KERNEL_DIR}\
+ KDIR=${STAGING_KERNEL_DIR}\
+ KERNELDIR=${STAGING_KERNEL_DIR}\
+ KERNEL_VERSION=${KERNEL_VERSION}\
+ CC="${KERNEL_CC}" LD="${KERNEL_LD}"\
+ AR="${KERNEL_AR}"\
+ '
+
+module_do_compile() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake ${MODULE_MAKE_FLAGS} ${MAKE_TARGETS}
+}
+
+module_do_install() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" ${MODULE_MAKE_FLAGS} modules_install
+}
+
+pkg_postinst_append () {
+ if [ -n "$D" ]; then
+ exit 1
+ fi
+ depmod -a
+ update-modules || true
+}
+
+pkg_postrm_append () {
+ update-modules || true
+}
+
+EXPORT_FUNCTIONS do_compile do_install
+
+FILES_${PN} = "/etc /lib/modules"