aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 8b20ba7f8371f407e00cb1bf50cb0bdb85f2170c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#$Id: Makefile,v 1.38 2004/08/13 22:42:06 jal2 Exp $

VERSION = 0.12beta16

CC=gcc

KERNEL_VERSION = $(shell uname -r)

KERNEL_SRC = /lib/modules/$(KERNEL_VERSION)/build
KERNEL_HEADERS = $(KERNEL_SRC)/include
FW_DL=

# compile for firmware download from user space
# if no firmware header files are available
ifeq ($(wildcard fw-pkg*.h),)
FW_DL += -DCONFIG_AT76C503_FIRMWARE_DOWNLOAD
DVERSION = $(VERSION)-fwdl
else
DVERSION = $(VERSION)
endif

MODULES = at76c503.o usbdfu.o at76c503-i3861.o at76c503-rfmd.o at76c503-rfmd-acc.o \
          at76c505-rfmd.o at76c503-i3863.o at76c505-rfmd2958.o at76c505a-rfmd2958.o

SRCS = at76c503.c usbdfu.c at76c503-rfmd.c at76c505-rfmd.c at76c503-rfmd-acc.c \
       at76c503-i3861.c at76c503-i3863.c at76c505-rfmd2958.c at76c505a-rfmd2958.c

HDRS = at76c503.h ieee802_11.h usbdfu.h at76c503-fw_skel.c fw-empty.h
FW_HDRS= fw-pkg-505-rfmd2958-1.101.0-86.h  fw-pkg-i3863.h  \
	fw-pkg-rfmd-1.101.0-84.h fw-pkg-i3861.h \
	fw-pkg-rfmd-0.90.2-140.h \
	fw-pkg-r505.h fw-pkg-rfmd-acc-1.101.0-84.h \
	fw-pkg-505a-rfmd2958-1.102.0-113.h

SCRIPTS = fwbin2h fwbin2pkg.sh fwconvert fwversion

DISTFILES = $(SRCS) $(HDRS) $(FW_HDRS) Makefile README COPYING \
            CHANGELOG gen_fw.c
TOPDISTFILES = 
DISTNAME = at76c503-$(VERSION)
DISTDIR = ../dist

# delete any old module in this tree before installing a new one
DEL_MODULE_DIR = $(DESTDIR)/lib/modules/$(KERNEL_VERSION)
MODULE_DIR = $(DESTDIR)/lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/
DEPMOD = /sbin/depmod

# if Rules.make exists in the kernel tree, we assume 2.4 style modules
# if it doesn't assume 2.5 style
OLDMAKE = $(wildcard $(KERNEL_SRC)/Rules.make)

ifeq (,$(OLDMAKE))
# 2.5 style modules, get the kernel makefiles to do the work

SRCDIR = $(shell pwd)
MODVERDIR = $(SRCDIR)/.tmp_versions

obj-m := $(MODULES)

all: modules

modules:
	mkdir -p .tmp_versions
	-cp $(KERNEL_SRC)/.tmp_versions/*.mod $(MODVERDIR)
	$(MAKE) -C $(KERNEL_SRC) SUBDIRS=$(SRCDIR) MODVERDIR=$(MODVERDIR) \
		EXTRA_CFLAGS="-DDRIVER_VERSION=\\\"v$(DVERSION)\\\" $(FW_DL)" modules

mv_old:
	for i in $(MODULES:%.o=%.ko); do \
	  find $(DEL_MODULE_DIR) -name $$i -exec rm -f {} {}.orig \; ;done 

install: all mv_old
	mkdir -p $(MODULE_DIR)
#	for i in $(MODULES:%.o=%.ko); do find $(DEL_MODULE_DIR) -name $$i -exec mv $$i $$i.orig \; done
	install -m 644 -o 0 -g 0 $(MODULES:%.o=%.ko) $(MODULE_DIR)
	$(DEPMOD) -ae

uninstall:
	for f in $(MODULES:%.o=%.ko); do rm $(MODULE_DIR)/$$f; done

else
# 2.4 style modules

CPPFLAGS = -D__KERNEL__ \
	-DMODULE -DEXPORT_SYMTAB \
	-DDRIVER_VERSION=\"v$(DVERSION)\" \
	-I$(KERNEL_HEADERS)
CFLAGS = -O2 -Wall -Wstrict-prototypes -pipe -fno-strict-aliasing \
	 $(FW_DL) \
         -fno-common -Wno-sign-compare -Wno-unused

MODVER = $(shell if cat $(KERNEL_HEADERS)/linux/autoconf.h 2>/dev/null | \
grep -q '^[[:space:]]*\#define[[:space:]]*CONFIG_MODVERSIONS[[:space:]]*1'; \
then echo 1; else echo 0; fi)

ifeq ($(MODVER),1)
MFLAG = -DMODVERSIONS -include $(KERNEL_HEADERS)/linux/modversions.h
endif

CCDEP = $(CC) $(CFLAGS) -M
TAR = tar

all: $(MODULES)

mv_old:
	for i in $(MODULES); do \
	  find $(DEL_MODULE_DIR) -name $$i -exec rm -f {} {}.orig \; ;done 

install: all mv_old
	mkdir -p $(MODULE_DIR)
	for f in $(MODULES); do install -m 644 -o 0 -g 0 $$f $(MODULE_DIR)/$$f; done
	/sbin/depmod -a

uninstall:
	for f in $(MODULES); do rm $(MODULE_DIR)/$$f; done

.PHONY: dist

%.o: %.c
	$(CC) -MD $(CFLAGS) $(CPPFLAGS) $(MFLAG) -c $<

%.s: %.c
	$(CC) -MD $(CFLAGS) $(CPPFLAGS) -S $<

%.i: %.c
	$(CC) -MD $(CPPFLAGS) -E $< -o $@

-include $(SRCS:%.c=%.d)

endif

TAGS:
	rm -f TAGS
	etags --append $(SRCS) $(HDRS)

clean:
	rm -f core *.o *~ a.out *.d
	rm -f *.ko *.mod.c .*.cmd
	rm -f *.s *.i
	rm -rf .tmp_versions

dist:
	[ -d $(DISTNAME) ] && rm -rf $(DISTNAME) || true
	mkdir $(DISTNAME)
	cp -aR $(DISTFILES) $(DISTNAME)
	mkdir $(DISTNAME)/scripts
	(cd scripts ; cp -aR $(SCRIPTS) ../$(DISTNAME)/scripts)
	tar zcvf $(DISTNAME).tar.gz $(DISTNAME)
	cd $(DISTNAME) ; rm $(FW_HDRS) ; cd ..
	mv $(DISTNAME) $(DISTNAME)-fwdl
	tar zcvf $(DISTNAME)-fwdl.tar.gz $(DISTNAME)-fwdl
	rm -rf $(DISTNAME)-fwdl