diff options
author | Felix Fietkau <nbd@openwrt.org> | 2006-10-17 16:13:10 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2006-10-17 16:13:10 +0000 |
commit | 547b127d7a3102e29c0dfdc25bee0dbab89b99bd (patch) | |
tree | b2d558c741c6224edd8c6b399b1e3db935337c8f /include/kernel.mk | |
parent | 92ced53400b669a55faf915599b402cf58b55b76 (diff) | |
download | upstream-547b127d7a3102e29c0dfdc25bee0dbab89b99bd.tar.gz upstream-547b127d7a3102e29c0dfdc25bee0dbab89b99bd.tar.bz2 upstream-547b127d7a3102e29c0dfdc25bee0dbab89b99bd.zip |
make kernel module packaging code reusable and use it in madwifi
SVN-Revision: 5189
Diffstat (limited to 'include/kernel.mk')
-rw-r--r-- | include/kernel.mk | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/include/kernel.mk b/include/kernel.mk index 580e3951d1..9273817250 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -59,6 +59,69 @@ else LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux endif + +define KernelPackage/Defaults + FILES:= + KCONFIG:=m + AUTOLOAD:= +endef + +define ModuleAutoLoad + export modules=; \ + add_module() { \ + mkdir -p $(2)/etc/modules.d; \ + echo "$$$$$$$$2" > $(2)/etc/modules.d/$$$$$$$$1-$(1); \ + modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$1-$(1)"; \ + }; \ + $(3) \ + if [ -n "$$$$$$$$modules" ]; then \ + mkdir -p $(2)/etc/modules.d; \ + echo "#!/bin/sh" > $(2)/CONTROL/postinst; \ + echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \ + echo ". /etc/functions.sh" >> $(2)/CONTROL/postinst; \ + echo "load_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \ + chmod 0755 $(2)/CONTROL/postinst; \ + fi +endef + + +define KernelPackage + NAME:=$(1) + $(eval $(call KernelPackage/Defaults)) + $(eval $(call KernelPackage/$(1))) + $(eval $(call KernelPackage/$(1)/$(KERNEL))) + $(eval $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL))) + + define Package/kmod-$(1) + TITLE:=$(TITLE) + SECTION:=kernel + CATEGORY:=Kernel modules + DEFAULT:=m + DESCRIPTION:=$(DESCRIPTION) + EXTRA_DEPENDS:='kernel (=$(PKG_VERSION)-$(PKG_RELEASE))' + $(call KernelPackage/$(1)) + $(call KernelPackage/$(1)/$(KERNEL)) + $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL)) + endef + + ifeq ($(findstring m,$(KCONFIG)),m) + ifneq ($(strip $(FILES)),) + define Package/kmod-$(1)/install + mkdir -p $$(1)/lib/modules/$(LINUX_VERSION) + $(CP) $$(FILES) $$(1)/lib/modules/$(LINUX_VERSION)/ + $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD)) + $(call KernelPackage/$(1)/install,$$(1)) + endef + endif + endif + $$(eval $$(call BuildPackage,kmod-$(1))) +endef + +define AutoLoad + add_module $(1) "$(2)"; +endef + + # FIXME: remove this crap define KMOD_template ifeq ($$(strip $(4)),) |