summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile192
1 files changed, 192 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..c1e1f565
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,192 @@
+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/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
+ @$(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
+ @echo
+ @echo "Your old wireless subsystem modules were left intact:"
+ @echo
+ @$(MODPROBE) -l mac80211
+ @$(MODPROBE) -l cfg80211
+ @$(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
+ @$(MODPROBE) -l zd1211rw
+ @
+ @echo
+
+clean:
+ @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)