2 # Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
8 # 1. Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer,
10 # without modification.
11 # 2. Redistributions in binary form must reproduce at minimum a disclaimer
12 # similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13 # redistribution must be conditioned upon including a substantially
14 # similar Disclaimer requirement for further binary redistribution.
15 # 3. Neither the names of the above-listed copyright holders nor the names
16 # of any contributors may be used to endorse or promote products derived
17 # from this software without specific prior written permission.
19 # Alternatively, this software may be distributed under the terms of the
20 # GNU General Public License ("GPL") version 2 as published by the Free
21 # Software Foundation.
24 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 # LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
27 # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
28 # THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
29 # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
32 # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
34 # THE POSSIBILITY OF SUCH DAMAGES.
36 # $Id: //depot/sw/linuxsrc/src/802_11/madwifi/madwifi/Makefile $
40 # Makefile for the HAL-based Atheros driver.
43 obj := $(firstword $(obj) $(SUBDIRS) .)
46 include $(TOP)/Makefile.inc
48 obj-y := ath/ ath_hal/ ath_rate/ net80211/
58 modules: configcheck $(TOP)/svnversion.h
60 for i in $(obj-y); do \
61 $(MAKE) -C $$i || exit 1; \
64 $(MAKE) -C $(KERNELPATH) SUBDIRS=$(shell pwd) modules
67 $(addprefix $(obj)/, $(obj-y:/=)): $(TOP)/svnversion.h
71 if [ -d .svn ]; then \
72 ver=$$(svnversion -nc . | sed -e 's/^[^:]*://;s/[A-Za-z]//'); \
73 echo "#define SVNVERSION \"svn r$$ver\"" > $@.tmp; \
74 elif [ -d .git ]; then \
75 ver=$$(git svn log --oneline --limit 1 | cut -d\ -f1); \
76 echo "#define SVNVERSION \"svn $$ver\"" > $@.tmp; \
77 elif [ -s SNAPSHOT ]; then \
78 ver=$$(sed -e '/^Revision: */!d;s///;q' SNAPSHOT); \
79 echo "#define SVNVERSION \"svn r$$ver\"" > $@.tmp; \
83 diff $@ $@.tmp >/dev/null 2>&1 || cp -f $@.tmp $@; rm -f $@.tmp
85 # conflicts with the 'tools' subdirectory
88 $(MAKE) -C $(TOOLS) all || exit 1
91 install: install-modules install-tools
93 .PHONY: install-modules
94 install-modules: modules
95 @# check if there are modules left from an old installation
96 @# might cause make to abort the build
97 sh scripts/find-madwifi-modules.sh -r $(KERNELRELEASE) $(DESTDIR)
99 for i in $(obj-y); do \
100 $(MAKE) -C $$i install || exit 1; \
103 (export KMODPATH=$(KMODPATH); /sbin/depmod -ae $(KERNELRELEASE))
106 .PHONY: install-tools
108 $(MAKE) -C $(TOOLS) install || exit 1
110 .PHONY: uninstall ininstall-modules
111 uninstall: uninstall-tools uninstall-modules
113 sh scripts/find-madwifi-modules.sh -r $(KERNELRELEASE) $(DESTDIR)
115 .PHONY: list-modules find-modules
116 list-modules: find-modules
118 sh scripts/find-madwifi-modules.sh -l $(KERNELRELEASE)
120 .PHONY: uninstall-tools
122 $(MAKE) -C $(TOOLS) uninstall
124 .PHONY: reinstall reinstall-tools reinstall-modules
125 reinstall: uninstall install
126 reinstall-tools: uninstall-tools install-tools
127 reinstall-modules: uninstall-modules install-modules
131 for i in $(obj-y); do \
132 $(MAKE) -C $$i clean; \
134 -$(MAKE) -C $(TOOLS) clean
136 rm -f modules.order *.symvers Module.markers svnversion.h
140 @echo "The following settings will be used for compilation:"
142 @echo "KERNELRELEASE: $(KERNELRELEASE)"
143 @echo "KERNELPATH : $(KERNELPATH)"
144 @echo "KERNELCONF : $(KERNELCONF)"
145 @echo "KMODPATH : $(KMODPATH)"
146 @echo "KMODSUF : $(KMODSUF)"
150 @echo -n "Checking requirements... "
152 @# check if specified rate control is available
153 @if [ ! -d $(ATH_RATE) ]; then \
155 echo "Selected rate control $(ATH_RATE) not available."; \
163 sh scripts/make-release.bash
167 bash scripts/madwifi-unload
170 configcheck: sanitycheck
171 @echo -n "Checking kernel configuration... "
173 @# check kernel version
174 @case $(KERNELRELEASE) in \
178 echo "Only kernel versions 2.4.x and above are supported."; \
179 echo "You have $(KERNELRELEASE)."; \
183 @# check kernel configuration
184 @if [ -z "$(CONFIG_SYSCTL)" ]; then \
186 echo "Please enable sysctl support."; \
190 ifeq ($(strip $(BUS)),PCI)
192 @if [ -z "$(CONFIG_PCI)" ]; then \
194 echo "Please enable PCI support."; \
199 @# check wireless extensions support is enabled
200 @if [ -z "$(CONFIG_NET_RADIO)$(CONFIG_WIRELESS_EXT)" ]; then \
202 echo "Please enable wireless extensions."; \
206 @# check crypto support is enabled
207 @if [ -z "$(CONFIG_CRYPTO)" ]; then \
209 echo "Please enable crypto API."; \