Add lots of .PHONY to Makefiles and remove a duplicate rule definition
[madwifi/.git] / ath_hal / Makefile
1 #
2 # Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
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.
18 #
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.
22 #
23 # NO WARRANTY
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.
35 #
36 # $Id: //depot/sw/linuxsrc/src/802_11/madwifi/madwifi/ath/Makefile#12 $
37 #
38
39 #
40 # Makefile for the Atheros WLAN driver.
41 #
42
43 obj := $(firstword $(obj) $(SUBDIRS) .)
44 TOP = $(obj)/..
45
46 include $(TOP)/Makefile.inc
47
48 obj-m           += ath_hal.o
49 ath_hal-objs    := ah_os.o $(TARGET).hal.o
50
51 hostprogs-y     := uudecode
52
53 # For older 2.6 kernels
54 host-progs      := $(hostprogs-y)
55
56 ifdef LINUX24
57 export-objs     := ah_os.o
58 endif
59
60 INCS += -I$(ATH_HAL) -I$(HAL)
61
62 EXTRA_CFLAGS+= $(INCS) $(COPTS) -DOPT_AH_H=\"public/$(TARGET).opt_ah.h\"
63
64 ifneq (,$(filter xscale% arm%,$(TARGET)))
65 LDFLAGS += --no-warn-mismatch
66 endif
67
68 -include $(TOPDIR)/Rules.make
69
70 .PHONY: all
71 all:
72         $(MAKE) -C $(KERNELPATH) SUBDIRS=$(shell pwd) modules
73
74 ifdef LINUX24
75 $(obj)/uudecode: $(obj)/uudecode.c
76         $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
77 endif
78
79 quiet_cmd_uudecode = UUDECODE $@
80       cmd_uudecode = $(obj)/uudecode -o $@ $<
81
82 $(obj)/$(TARGET).hal.o: $(HAL)/public/$(TARGET).hal.o.uu $(obj)/uudecode
83 ifdef LINUX24
84         $(Q)$(obj)/uudecode -o $@ $<
85 else
86         $(call if_changed,uudecode)
87 endif
88         # Replace as many hashed names as possible with meaningful
89         # ones in the symbol table of the binary kernel module for HAL.
90         $(filter-out -O binary -S,$(OBJCOPY)) \
91                 `cat $(TOP)/scripts/hal_unmangle.objcopy` \
92                 $(obj)/$(TARGET).hal.o
93
94 .PHONY: install
95 install:
96         test -d $(DESTDIR)/$(KMODPATH) || mkdir -p $(DESTDIR)/$(KMODPATH)
97         install -m 0644 ath_hal.$(KMODSUF) $(DESTDIR)/$(KMODPATH)
98 ifneq ($(strip $(ALQ)),0)
99         install -m 0644 alq.$(KMODSUF) $(DESTDIR)/$(KMODPATH)
100 endif
101
102 .PHONY: clean
103 clean:
104         rm -f *~ *.o *.ko *.mod.c uudecode .*.cmd
105         rm -f .depend .version .*.o.flags .*.o.d
106         rm -rf .tmp_versions
107
108 ath_hal.o: $(addprefix $(obj)/,$(ath_hal-objs))
109         $(LD) $(LDFLAGS) -o ath_hal.$(KMODSUF) -r $(ath_hal-objs)
110