summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/kmod/Config.in6
-rw-r--r--package/kmod/kmod.mk26
2 files changed, 32 insertions, 0 deletions
diff --git a/package/kmod/Config.in b/package/kmod/Config.in
index c5e8ca819..6fdd92c44 100644
--- a/package/kmod/Config.in
+++ b/package/kmod/Config.in
@@ -4,3 +4,9 @@ config BR2_PACKAGE_KMOD
handle kernel modules
http://git.kernel.org/?p=utils/kernel/kmod/kmod.git
+
+config BR2_PACKAGE_KMOD_TOOLS
+ bool "kmod utilities"
+ help
+ Install kmod module utilities (depmod, insmod, lsmod,
+ modinfo, modprobe, rmmod).
diff --git a/package/kmod/kmod.mk b/package/kmod/kmod.mk
index f71087c65..55cbdbbfd 100644
--- a/package/kmod/kmod.mk
+++ b/package/kmod/kmod.mk
@@ -4,4 +4,30 @@ KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod/
KMOD_INSTALL_STAGING = YES
KMOD_DEPENDENCIES = host-pkg-config
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+KMOD_DEPENDENCIES += zlib
+KMOD_CONF_OPT += --with-zlib
+endif
+
+ifeq ($(BR2_PACKAGE_XZ),y)
+KMOD_DEPENDENCIES += xz
+KMOD_CONF_OPT += --with-xz
+endif
+
+ifeq ($(BR2_PACKAGE_KMOD_TOOLS),y)
+# take precedence over busybox / module-init-tools implementations
+KMOD_DEPENDENCIES += \
+ $(if $(BR2_PACKAGE_BUSYBOX),busybox) \
+ $(if $(BR2_PACKAGE_MODULE_INIT_TOOLS),module-init-tools)
+
+define KMOD_INSTALL_TOOLS
+ for i in depmod insmod lsmod modinfo modprobe rmmod; \
+ do ln -sf ../usr/bin/kmod $(TARGET_DIR)/sbin/$$i; done
+endef
+
+KMOD_POST_INSTALL_TARGET_HOOKS += KMOD_INSTALL_TOOLS
+else
+KMOD_CONF_OPT += --disable-tools
+endif
+
$(eval $(call AUTOTARGETS))