blob: d2478184675706569569a09b6c7956266c0ba502 [file] [log] [blame]
KMODDIR?= updates
KMODDIR_ARG:= "INSTALL_MOD_DIR=$(KMODDIR)"
ifneq ($(origin $(KLIB)), undefined)
KMODPATH_ARG:= "INSTALL_MOD_PATH=$(KLIB)"
else
KLIB:= /lib/modules/$(shell uname -r)
endif
export KLIB_BUILD ?= $(KLIB)/build
# Sometimes not available in the path
MODPROBE := /sbin/modprobe
MADWIFI=$(shell $(MODPROBE) -l ath_pci)
ifneq ($(KERNELRELEASE),)
include $(M)/$(COMPAT_CONFIG)
NOSTDINC_FLAGS := -I$(M)/include/ -include $(M)/include/net/compat.h $(CFLAGS)
obj-y := net/wireless/ net/mac80211/
ifeq ($(ONLY_CORE),)
obj-y += net/ieee80211/ \
drivers/ssb/ \
drivers/misc/ \
drivers/net/ \
drivers/net/usb/ \
drivers/net/wireless/
endif
else
export PWD := $(shell pwd)
# These exported as they are used by the scripts
# to check config and compat autoconf
export COMPAT_CONFIG=config.mk
export CONFIG_CHECK=.$(COMPAT_CONFIG)_md5sum.txt
export COMPAT_AUTOCONF=include/linux/compat_autoconf.h
-export CREL=$(shell cat $(PWD)/compat-release)
export CREL_PRE:=.compat_autoconf_
export CREL_CHECK:=$(CREL_PRE)$(CREL)
include $(PWD)/$(COMPAT_CONFIG)
all: modules
modules: $(CREL_CHECK)
@./scripts/check_config.sh
$(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
# With the above and this we make sure we generate a new compat autoconf per
# new relase of compat-wireless-2.6 OR when the user updates the
# $(COMPAT_CONFIG) file
$(CREL_CHECK):
@# Force to regenerate compat autoconf
@rm -f $(CONFIG_CHECK)
@./scripts/check_config.sh
@touch $@
@md5sum $(COMPAT_CONFIG) > $(CONFIG_CHECK)
install: uninstall modules
$(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
modules_install
@# All the scripts we can use
@mkdir -p /usr/lib/compat-wireless/
@install scripts/modlib.sh /usr/lib/compat-wireless/
@install scripts/madwifi-unload /usr/sbin/
@# This is to allow switching between drivers without blacklisting
@install scripts/athenable /usr/sbin/
@install scripts/b43enable /usr/sbin/
@install scripts/athload /usr/sbin/
@install scripts/b43load /usr/sbin/
@if [ ! -z $(MADWIFI) ]; then \
echo ;\
echo -n "Note: madwifi detected, we're going to disable it. " ;\
echo "If you would like to enable it later you can run:" ;\
echo " sudo athenable madwifi" ;\
echo ;\
echo Running athenable ath5k...;\
/usr/sbin/athenable ath5k ;\
fi
@/sbin/depmod -ae
@echo
@echo "Currently detected wireless subsystem modules:"
@echo
@$(MODPROBE) -l mac80211
@# rc80211_simple is a module only on 2.6.22 and 2.6.23
@$(MODPROBE) -l cfg80211
@$(MODPROBE) -l adm8211
@$(MODPROBE) -l at76_usb
@$(MODPROBE) -l ath5k
@$(MODPROBE) -l ath9k
@$(MODPROBE) -l b43
@$(MODPROBE) -l b43legacy
@$(MODPROBE) -l ssb
@$(MODPROBE) -l iwl3945
@$(MODPROBE) -l iwl4965
@$(MODPROBE) -l ipw2100
@$(MODPROBE) -l ipw2200
@$(MODPROBE) -l ieee80211
@$(MODPROBE) -l ieee80211_crypt
@$(MODPROBE) -l libertas_cs
@$(MODPROBE) -l ub8xxx
@$(MODPROBE) -l p54_pci
@$(MODPROBE) -l p54_usb
@$(MODPROBE) -l rt2400pci
@$(MODPROBE) -l rt2500pci
@$(MODPROBE) -l rt2500usb
@$(MODPROBE) -l rt61pci
@$(MODPROBE) -l rt73usb
@$(MODPROBE) -l usbnet
@$(MODPROBE) -l cdc_ether
@$(MODPROBE) -l rndis_host
@$(MODPROBE) -l rndis_wlan
@$(MODPROBE) -l rtl8180
@$(MODPROBE) -l rtl8187
@# rc80211_simple is no longer a module
@#$(MODPROBE) -l rc80211_simple
@$(MODPROBE) -l zd1211rw
@echo
@echo Now run:
@echo
@echo make unload
@echo
@echo And then load the wireless module you need. If unsure run:
@echo
@echo make load
@echo
uninstall:
@# New location, matches upstream
@rm -rf $(KLIB)/$(KMODDIR)/net/mac80211/
@rm -rf $(KLIB)/$(KMODDIR)/net/wireless/
@rm -rf $(KLIB)/$(KMODDIR)/net/ieee80211/
@rm -rf $(KLIB)/$(KMODDIR)/drivers/ssb/
@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/usb/
@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/wireless/
@# Lets only remove the stuff we are sure we are providing
@# on the misc directory.
@rm -f $(KLIB)/$(KMODDIR)/drivers/misc/eeprom_93cx6.ko
@/sbin/depmod -ae
@if [ -x /usr/sbin/athenable ]; then /usr/sbin/athenable madwifi; fi
@if [ -x /usr/sbin/b43enable ]; then /usr/sbin/b43enable bcm43xx; fi
@echo
@echo "Your old wireless subsystem modules were left intact:"
@echo
@$(MODPROBE) -l mac80211
@$(MODPROBE) -l cfg80211
@# rc80211_simple is a module on 2.6.22 and 2.6.23 though
@$(MODPROBE) -l adm8211
@$(MODPROBE) -l ath5k
@$(MODPROBE) -l ath9k
@$(MODPROBE) -l at76_usb
@$(MODPROBE) -l b43
@$(MODPROBE) -l b43legacy
@$(MODPROBE) -l ssb
@$(MODPROBE) -l rc80211_simple
@$(MODPROBE) -l iwl3945
@$(MODPROBE) -l iwl4965
@$(MODPROBE) -l ipw2100
@$(MODPROBE) -l ipw2200
@$(MODPROBE) -l ieee80211
@$(MODPROBE) -l ieee80211_crypt
@$(MODPROBE) -l libertas_cs
@$(MODPROBE) -l mac80211
@$(MODPROBE) -l ub8xxx
@$(MODPROBE) -l p54pci
@$(MODPROBE) -l p54usb
@$(MODPROBE) -l rt2400pci
@$(MODPROBE) -l rt2500pci
@$(MODPROBE) -l rt2500usb
@$(MODPROBE) -l rt61pci
@$(MODPROBE) -l rt73usb
@$(MODPROBE) -l usbnet
@$(MODPROBE) -l cdc_ether
@$(MODPROBE) -l rndis_host
@$(MODPROBE) -l rndis_wlan
@$(MODPROBE) -l rtl8180
@$(MODPROBE) -l rtl8187
@# rc80211_simple is no longer a module
@#$(MODPROBE) -l rc80211_simple
@$(MODPROBE) -l zd1211rw
@# Old kernels have ieee80211softmac, this will be removed soon :)
@$(MODPROBE) -l ieee80211softmac
@
@echo
clean:
@rm -f compat-release
@if [ -d net -a -d $(KLIB_BUILD) ]; then \
$(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean ;\
fi
@rm -f $(CREL_PRE)*
unload:
@./scripts/unload.sh
load: unload
@./scripts/load.sh
.PHONY: all clean install uninstall unload load
endif
clean-files += Module.symvers modules.order $(CREL_CHECK) $(CONFIG_CHECK)