From 378a89660ea7f2c85a6e3a765898872788a838d1 Mon Sep 17 00:00:00 2001
From: nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Fri, 28 Oct 2011 13:10:43 +0000
Subject: kernel: build kmod even for modules built-in

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28649 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 include/kernel.mk | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

(limited to 'include')

diff --git a/include/kernel.mk b/include/kernel.mk
index 467172e93..9e94dce3b 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -1,5 +1,5 @@
 # 
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -82,16 +82,18 @@ define ModuleAutoLoad
 		mods="$$$$$$$$2"; \
 		boot="$$$$$$$$3"; \
 		shift 3; \
-		mkdir -p $(2)/etc/modules.d; \
-		( \
-			[ "$$$$$$$$boot" = "1" ] && { \
-				echo '# May be required for rootfs' ; \
-			} ; \
-			for mod in $$$$$$$$mods; do \
-				echo "$$$$$$$$mod"; \
-			done \
-		) > $(2)/etc/modules.d/$$$$$$$$priority-$(1); \
-		modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$priority-$(1)"; \
+		for mod in $$$$$$$$mods; do \
+			if [ -e $(2)/$(MODULES_SUBDIR)/$$$$$$$$mod.ko ]; then \
+				mkdir -p $(2)/etc/modules.d; \
+				echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$$$$$$$$priority-$(1); \
+			fi; \
+		done; \
+		if [ -e $(2)/etc/modules.d/$$$$$$$$priority-$(1) ]; then \
+			if [ "$$$$$$$$boot" = "1" ]; then \
+				echo '# May be required for rootfs' >> $(2)/etc/modules.d/$$$$$$$$priority-$(1); \
+			fi; \
+			modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$priority-$(1)"; \
+		fi; \
 	}; \
 	$(3) \
 	if [ -n "$$$$$$$$modules" ]; then \
@@ -147,11 +149,17 @@ $(call KernelPackage/$(1)/config)
 
   $(call KernelPackage/depends)
 
-  ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),)
+  ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),)
     ifneq ($(strip $(FILES)),)
       define Package/kmod-$(1)/install
-		  mkdir -p $$(1)/$(MODULES_SUBDIR)
-		  $(CP) -L $$(FILES) $$(1)/$(MODULES_SUBDIR)/
+		  @for mod in $$(FILES); do \
+			if [ -e $$$$$$$$mod ]; then \
+				mkdir -p $$(1)/$(MODULES_SUBDIR) ; \
+				$(CP) -L $$$$$$$$mod $$(1)/$(MODULES_SUBDIR)/ ; \
+			else \
+				echo "WARNING: module '$$$$$$$$mod' does not exist, is it built-in?" ; \
+			fi; \
+		  done;
 		  $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD))
 		  $(call KernelPackage/$(1)/install,$$(1))
       endef
-- 
cgit v1.2.3