debian:/home/hackphil/Drivers_ipw2200/ipw2200-1.2.0# cat Makefile # # Makefile for the Linux Wireless network device drivers. # # Original makefile by Peter Johanson # # NOTE: This make file can serve as both an external Makefile (launched # directly by the user), or as the sub-dir Makefile used by the kernel # build system. # If CONFIG_IPW* isn't set, we'll assume the user has never configured # their kernel to include this module and set up some defaults. # # NOTE: If you have previously added the IPW project to your kernel # and configured it for inclusion, these settings will be # overridden by your kernel configuration. ifndef CONFIG_IPW2200 EXTERNAL_BUILD=y CONFIG_IPW2200=m CONFIG_IPW2200_DEBUG=y CONFIG_IPW2200_QOS=y # If you are not interested in using monitor mode, simply comment out: # # NOTE: If you have problems compiling due to IW_MODE_MONITOR not being # defined then you need to update the wireless extension version # installed in your kernel, or comment this line out. CONFIG_IPW2200_MONITOR=y # If you are interested in using radiotap headers in monitor mode, # simply uncomment: # # NOTE: To use RADIOTAP you must also enable MONITOR above. #CONFIG_IPW2200_RADIOTAP=y # The above monitor mode provides standard monitor mode. The following # will create a new interface (named rtap%d) which will be sent all # 802.11 frames received on the interface # # NOTE: To use PROMISCUOUS you must also enable MONITOR above. #CONFIG_IPW2200_PROMISCUOUS=y endif # We have to add drivers/net/wireless until ieee802_11.h is in the default # include path EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless ifeq ($(IEEE80211_INC),) IEEE80211_INC := /lib/modules/$(shell uname -r)/include IEEE80211_MODVERDIR=/lib/modules/$(KVER)/net/ieee80211/.tmp_versions else IEEE80211_MODVERDIR=$(IEEE80211_INC)/.tmp_versions endif EXTRA_CFLAGS += -I$(IEEE80211_INC) ifeq ($(CONFIG_IPW2200_DEBUG),y) EXTRA_CFLAGS += -g -Wa,-adhlms=$@.lst endif ifdef KBUILD_EXTMOD EXTRA_CFLAGS += -I$(KBUILD_EXTMOD) -DKBUILD_EXTMOD endif list-m := list-$(CONFIG_IPW2200) += ipw2200 obj-$(CONFIG_IPW2200) += ipw2200.o # # Begin dual Makefile mode here. First we provide support for when we # are being invoked by the kernel build system # ifneq ($(KERNELRELEASE),) # # If you receive a compile message about multiple definitions of # CONFIG_IPW2200_DEBUG, then you have IPW* into the full kernel build, and # these definitions are now being set up by the kernel build system. # # # To correct this, remove any CONFIG_{IPW,IEEE80211}* lines from # $(KSRC)/.config and $(KSRC)/include/linux/autoconf.h # EXTRA_CFLAGS += -DCONFIG_PM ifeq ($(EXTERNAL_BUILD),y) ifeq ($(CONFIG_IPW2200_DEBUG),y) EXTRA_CFLAGS += -DCONFIG_IPW2200_DEBUG endif ifeq ($(CONFIG_IPW2200_MONITOR),y) EXTRA_CFLAGS += -DCONFIG_IPW2200_MONITOR ifeq ($(CONFIG_IPW2200_RADIOTAP),y) EXTRA_CFLAGS += -DCONFIG_IPW2200_RADIOTAP endif ifeq ($(CONFIG_IPW2200_PROMISCUOUS),y) EXTRA_CFLAGS += -DCONFIG_IPW2200_PROMISCUOUS endif endif ifeq ($(CONFIG_IPW2200_QOS),y) EXTRA_CFLAGS += -DCONFIG_IPW2200_QOS endif endif else # Here we begin the portion that is executed if the user invoked this Makefile # directly. # KSRC should be set to the path to your sources # modules are installed into KMISC KVER := $(shell uname -r) KSRC := /lib/modules/$(KVER)/build KMISC := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ KMISC_INC := /lib/modules/$(KVER)/include # KSRC_OUTPUT should be overridden if you are using a 2.6 kernel that # has it's output sent elsewhere via KBUILD_OUTPUT= or O= KSRC_OUTPUT := $(KSRC) PWD=$(shell pwd) VERFILE := $(KSRC_OUTPUT)/include/linux/version.h KERNELRELEASE := $(shell \ if [ -r $(VERFILE) ]; then \ (cat $(VERFILE); echo UTS_RELEASE) | \ $(CC) -I$(KSRC_OUTPUT) $(CFLAGS) -E - | \ tail -n 1 | \ xargs echo; \ else \ uname -r; \ fi) MODPATH := $(DESTDIR)/lib/modules/$(KERNELRELEASE) all: check_inc modules check_inc: @([ ! -e $(IEEE80211_INC)/net/ieee80211.h ] && \ echo -e \ "\n ERROR: ieee80211.h not found in '$(IEEE80211_INC)'.\n\n"\ "You need to install the ieee80211 subsystem from http://ieee80211.sf.net\n"\ "and point this build to the location where you installed those sources, eg.:\n\n"\ "% make IEEE80211_INC=/usr/src/ieee80211/\n\n"\ "will look for ieee80211.h in /usr/src/ieee80211/net/\n") || exit 0 @[ -e $(IEEE80211_INC)/net/ieee80211.h ] clean: rm -f *.mod.c *.mod *.o *.ko .*.cmd .*.flags .lst *.lst rm -rf $(PWD)/tmp Modules.symvers for file in *.{c,h}; do \ sed -i -e "s:\ *$$::g" -e "s:\t*$$::g" $$file; \ done distclean: clean rm -f tags TAGS TMP=$(PWD)/tmp MODVERDIR=$(TMP)/.tmp_versions modules: mkdir -p $(MODVERDIR) -cp $(IEEE80211_MODVERDIR)/*.mod $(MODVERDIR) -cp $(IEEE80211_MODVERDIR)/../Modules.symvers $(PWD) $(MAKE) -C $(KSRC) M=$(PWD) MODVERDIR=$(MODVERDIR) modules patch_kernel: @echo -e \ "\n This will install this IPW2200 driver into your\n"\ " kernel tree located here:\n"\ "\n${KSRC}\n\n"\ " If you would like to instal to a different location, run\n"\ " this as follows: make KSRC=/path/to/kernel patch_kernel \n" @(read -p "Do you wish to continue? [Yn] " reply; \ case $$reply in \ Y|y|"") exit 0 ;; \ *) echo "Terminating patch prcoess." ; exit 1 ;; \ esac) @if [ "$(shell whoami)" != "root" ]; then \ echo -e \ "\nIf this fails, you may need to be root to patch the kernel.\n" ; \ fi @(grep -q "ipw2200" ${KSRC}/drivers/net/wireless/Makefile || \ echo \ "obj-\$$(CONFIG_IPW2200) += ipw2200.o" >> \ ${KSRC}/drivers/net/wireless/Makefile) @cp README.ipw2200 ${KSRC}/Documentation/networking @cp ipw2200.{c,h} ${KSRC}/drivers/net/wireless @cp compat.{c,h} ${KSRC}/drivers/net/wireless @cp in-tree/Kconfig.ipw2200 ${KSRC}/drivers/net/wireless @(grep -q "Kconfig\.ipw2200" ${KSRC}/drivers/net/wireless/Kconfig || \ grep -q "IPW2200" ${KSRC}/drivers/net/wireless/Kconfig || \ sed -i -e "s:^endmenu:source \"drivers/net/wireless/Kconfig.ipw2200\"\n\nendmenu:g" ${KSRC}/drivers/net/wireless/Kconfig) @echo -e "Kernel has been udpated to include this ipw2200 driver.\n" install: modules install -d $(KMISC) install -m 644 -c $(addsuffix .ko,$(list-m)) $(KMISC) /sbin/depmod -a ${KVER} @echo "Don't forget to copy firmware to your hotplug's firmware directory and have the " @echo "hotplug tools in place." @echo "See INSTALL for more information." uninstall: rm -rf $(addprefix $(KMISC),$(addsuffix .ko,$(list-m))) /sbin/depmod -a ${KVER} endif # End of internal build .PHONY: TAGS tags check_inc RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \) -prune -o define all-sources ( find . $(RCS_FIND_IGNORE) -name '*.[chS]' -print ) endef TAGS: $(all-sources) | etags - tags: rm -f $@ CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \ $(all-sources) | xargs ctags $$CTAGSF -a debian:/home/hackphil/Drivers_ipw2200/ipw2200-1.2.0#