madwifi/Makefile

197 lines
5.3 KiB
Makefile

#
# Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer,
# without modification.
# 2. Redistributions in binary form must reproduce at minimum a disclaimer
# similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
# redistribution must be conditioned upon including a substantially
# similar Disclaimer requirement for further binary redistribution.
# 3. Neither the names of the above-listed copyright holders nor the names
# of any contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# Alternatively, this software may be distributed under the terms of the
# GNU General Public License ("GPL") version 2 as published by the Free
# Software Foundation.
#
# NO WARRANTY
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGES.
#
# $Id: //depot/sw/linuxsrc/src/802_11/madwifi/madwifi/Makefile $
#
#
# Makefile for the HAL-based Atheros driver.
#
obj := $(firstword $(obj) $(SUBDIRS) .)
TOP = $(obj)
include $(TOP)/Makefile.inc
obj-y := ath/ ath_hal/ ath_rate/ net80211/
ifdef CRYPTO_TESTING
obj-y += regression/
endif
.PHONY: all
all: modules tools
.PHONY: modules
modules: configcheck
$(MAKE) -C $(KERNELPATH) SUBDIRS=$(shell pwd) modules
# conflicts with the 'tools' subdirectory
.PHONY: tools
tools:
$(MAKE) -C $(TOOLS) all || exit 1
.PHONY: install
install: install-modules install-tools
.PHONY: install-modules
install-modules: modules
@# check if there are modules left from an old installation
@# might cause make to abort the build
sh scripts/find-madwifi-modules.sh -r $(KERNELRELEASE) $(DESTDIR)
for i in $(obj-y); do \
$(MAKE) -C $$i install || exit 1; \
done
$(MAKE) depmod
.PHONY: install-tools
install-tools: tools
$(MAKE) -C $(TOOLS) install || exit 1
.PHONY: uninstall
uninstall: uninstall-tools uninstall-modules
.PHONY: uninstall-modules
uninstall-modules:
sh scripts/find-madwifi-modules.sh -r $(KERNELRELEASE) $(DESTDIR)
$(MAKE) depmod
.PHONY: list-modules find-modules
list-modules: find-modules
find-modules:
sh scripts/find-madwifi-modules.sh -l $(KERNELRELEASE)
.PHONY: uninstall-tools
uninstall-tools:
$(MAKE) -C $(TOOLS) uninstall
.PHONY: reinstall reinstall-tools reinstall-modules
reinstall: uninstall install
reinstall-tools: uninstall-tools install-tools
reinstall-modules: uninstall-modules install-modules
.PHONY: clean
clean:
for i in $(obj-y); do \
$(MAKE) -C $$i clean; \
done
-$(MAKE) -C $(TOOLS) clean
rm -rf .tmp_versions
rm -f modules.order *.symvers Module.markers
.PHONY: info
info:
@echo "The following settings will be used for compilation:"
@echo "BUS : $(BUS)"
@echo "KERNELRELEASE: $(KERNELRELEASE)"
@echo "KERNELPATH : $(KERNELPATH)"
@echo "KERNELCONF : $(KERNELCONF)"
@echo "KMODPATH : $(KMODPATH)"
@echo "KMODSUF : $(KMODSUF)"
.PHONY: sanitycheck
sanitycheck:
@echo -n "Checking requirements... "
@# check if specified rate control is available
@if [ ! -d $(ATH_RATE) ]; then \
echo "FAILED"; \
echo "Selected rate control $(ATH_RATE) not available."; \
exit 1; \
fi
@echo "ok."
.PHONY: release
release:
sh scripts/make-release.bash
.PHONY: unload
unload:
bash scripts/madwifi-unload
.PHONY: configcheck
configcheck: sanitycheck
@echo -n "Checking kernel configuration... "
@# check kernel version
@case $(KERNELRELEASE) in \
2.6.*) ;; \
[3-9].*) ;; \
*) echo "FAILED"; \
echo "Only kernel versions 2.6.13 and above are supported."; \
echo "You have $(KERNELRELEASE)."; \
exit 1 ;; \
esac
@# check kernel configuration
@if [ -z "$(CONFIG_SYSCTL)" ]; then \
echo "FAILED"; \
echo "Please enable sysctl support."; \
exit 1; \
fi
ifeq ($(strip $(BUS)),PCI)
@# check PCI support
@if [ -z "$(CONFIG_PCI)" ]; then \
echo "FAILED"; \
echo "Please enable PCI support."; \
exit 1; \
fi
endif
@# check wireless extensions support is enabled
@if [ -z "$(CONFIG_NET_RADIO)$(CONFIG_WIRELESS_EXT)" ]; then \
echo "FAILED"; \
echo "Please enable wireless extensions."; \
exit 1; \
fi
@# check crypto support is enabled
@if [ -z "$(CONFIG_CRYPTO)" ]; then \
echo "FAILED"; \
echo "Please enable crypto API."; \
exit 1; \
fi
@echo "ok."
.PHONY: depmod
depmod:
ifeq ($(DESTDIR),)
(export KMODPATH=$(KMODPATH); /sbin/depmod -ae $(KERNELRELEASE))
endif