KERNELRELEASE := $(shell $(MAKE) -sC $(KERNEL_DIR) O=$(KBUILD_OUTPUT) ARCH=$(TARGET_ARCH) kernelrelease)
KERNEL_MODULES_DEP := $(TARGET_OUT)/lib/modules/$(KERNELRELEASE)/modules.dep
endif
-$(KERNEL_MODULES_DEP): $(INSTALLED_KERNEL_TARGET)
+$(TARGET_OUT_INTERMEDIATES)/%.kmodule: $(INSTALLED_KERNEL_TARGET)
+ $(hide) cp -an $(EXTRA_KERNEL_MODULE_PATH_$*) $(TARGET_OUT_INTERMEDIATES)/$*.kmodule
+ @echo Building additional kernel module $*
+ $(mk_kernel) M=$(CURDIR)/$@ modules
+
+$(KERNEL_MODULES_DEP): $(INSTALLED_KERNEL_TARGET) $(patsubst %,$(TARGET_OUT_INTERMEDIATES)/%.kmodule,$(TARGET_EXTRA_KERNEL_MODULES))
$(hide) rm -rf $(TARGET_OUT)/lib/modules
$(mk_kernel) INSTALL_MOD_PATH=$(CURDIR)/$(TARGET_OUT) modules_install
+ + $(hide) for kmod in $(TARGET_EXTRA_KERNEL_MODULES) ; do \
+ echo Installing additional kernel module $${kmod} ; \
+ $(subst +,,$(subst $(hide),,$(mk_kernel))) INSTALL_MOD_PATH=$(CURDIR)/$(TARGET_OUT) M=$(CURDIR)/$(TARGET_OUT_INTERMEDIATES)/$${kmod}.kmodule modules_install ; \
+ done
$(hide) rm -f $(TARGET_OUT)/lib/modules/*/{build,source}
endif
# rules to get source of Broadcom 802.11a/b/g/n hybrid device driver
# based on broadcomsetup.sh of Kyle Evans
-WL_ENABLED := $(shell grep ^CONFIG_WL=[my] $(KERNEL_CONFIG_FILE))
+WL_ENABLED := $(shell grep ^CONFIG_WL=[my] $(KERNEL_DOTCONFIG_FILE))
WL_PATH := drivers/net/wireless/wl
WL_SRC := $(KERNEL_DIR)/$(WL_PATH)/hybrid-portsrc_x86_32-v5_100_82_112.tar.gz
$(WL_SRC):
@echo Downloading $(@F)...
- $(hide) curl http://www.broadcom.com/docs/linux_sta/$(@F) > $@ && tar zxf $@ -C $(@D) --overwrite && (cd $(KERNEL_DIR); git checkout $(WL_PATH)) && \
- sed -i '/<linux\/wireless.h>/ a#include <linux/semaphore.h>' $(@D)/src/wl/sys/wl_iw.h && \
- sed -i 's/init_MUTEX(&wl->sem)/\n#ifndef init_MUTEX\nsema_init(\&wl->sem,1)\n#else\ninit_MUTEX(\&wl->sem)\n#endif\n/' $(@D)/src/wl/sys/wl_linux.c
+ $(hide) curl http://www.broadcom.com/docs/linux_sta/$(@F) > $@ && tar zxf $@ -C $(@D) --overwrite && \
+ (cd kernel/$(WL_PATH); patch Makefile < Makefile.patch; patch src/wl/sys/wl_iw.h < wl_iw.h.patch)
$(INSTALLED_KERNEL_TARGET): $(if $(WL_ENABLED),$(WL_SRC))
installclean: FILES += $(KBUILD_OUTPUT) $(INSTALLED_KERNEL_TARGET)