1##### CLEAR VARS
2
3DRV_CFLAGS =
4DRV_WPA_CFLAGS =
5DRV_AP_CFLAGS =
6DRV_OBJS =
7DRV_WPA_OBJS =
8DRV_AP_OBJS =
9DRV_LIBS =
10DRV_WPA_LIBS =
11DRV_AP_LIBS =
12
13##### COMMON DRIVERS
14
15ifdef CONFIG_DRIVER_WIRED
16DRV_CFLAGS += -DCONFIG_DRIVER_WIRED
17DRV_OBJS += ../src/drivers/driver_wired.o
18endif
19
20ifdef CONFIG_DRIVER_MACSEC_QCA
21DRV_CFLAGS += -DCONFIG_DRIVER_MACSEC_QCA
22DRV_OBJS += ../src/drivers/driver_macsec_qca.o
23endif
24
25ifdef CONFIG_DRIVER_NL80211
26DRV_CFLAGS += -DCONFIG_DRIVER_NL80211
27DRV_OBJS += ../src/drivers/driver_nl80211.o
28DRV_OBJS += ../src/drivers/driver_nl80211_capa.o
29DRV_OBJS += ../src/drivers/driver_nl80211_event.o
30DRV_OBJS += ../src/drivers/driver_nl80211_monitor.o
31DRV_OBJS += ../src/drivers/driver_nl80211_scan.o
32DRV_OBJS += ../src/utils/radiotap.o
33ifdef CONFIG_DRIVER_NL80211_QCA
34DRV_CFLAGS += -DCONFIG_DRIVER_NL80211_QCA
35endif
36NEED_SME=y
37NEED_AP_MLME=y
38NEED_NETLINK=y
39NEED_LINUX_IOCTL=y
40NEED_RFKILL=y
41
42ifdef CONFIG_LIBNL32
43  DRV_LIBS += -lnl-3
44  DRV_LIBS += -lnl-genl-3
45  DRV_CFLAGS += -DCONFIG_LIBNL20
46  ifdef LIBNL_INC
47    DRV_CFLAGS += -I$(LIBNL_INC)
48  else
49    PKG_CONFIG ?= pkg-config
50    DRV_CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0)
51  endif
52ifdef CONFIG_LIBNL3_ROUTE
53  DRV_LIBS += -lnl-route-3
54  DRV_CFLAGS += -DCONFIG_LIBNL3_ROUTE
55endif
56else
57  ifdef CONFIG_LIBNL_TINY
58    DRV_LIBS += -lnl-tiny
59  else
60    ifndef CONFIG_OSX
61      DRV_LIBS += -lnl
62    endif
63  endif
64
65  ifdef CONFIG_LIBNL20
66    ifndef CONFIG_LIBNL_TINY
67      DRV_LIBS += -lnl-genl
68    endif
69    DRV_CFLAGS += -DCONFIG_LIBNL20
70  endif
71endif
72endif
73
74ifdef CONFIG_DRIVER_BSD
75ifndef CONFIG_L2_PACKET
76CONFIG_L2_PACKET=freebsd
77endif
78DRV_CFLAGS += -DCONFIG_DRIVER_BSD
79DRV_OBJS += ../src/drivers/driver_bsd.o
80CONFIG_L2_FREEBSD=y
81CONFIG_DNET_PCAP=y
82endif
83
84ifdef CONFIG_DRIVER_OPENBSD
85ifndef CONFIG_L2_PACKET
86CONFIG_L2_PACKET=freebsd
87endif
88DRV_CFLAGS += -DCONFIG_DRIVER_OPENBSD
89DRV_OBJS += ../src/drivers/driver_openbsd.o
90endif
91
92ifdef CONFIG_DRIVER_NONE
93DRV_CFLAGS += -DCONFIG_DRIVER_NONE
94DRV_OBJS += ../src/drivers/driver_none.o
95endif
96
97##### PURE AP DRIVERS
98
99ifdef CONFIG_DRIVER_HOSTAP
100DRV_AP_CFLAGS += -DCONFIG_DRIVER_HOSTAP
101DRV_AP_OBJS += ../src/drivers/driver_hostap.o
102CONFIG_WIRELESS_EXTENSION=y
103NEED_AP_MLME=y
104NEED_NETLINK=y
105NEED_LINUX_IOCTL=y
106endif
107
108ifdef CONFIG_DRIVER_ATHEROS
109DRV_AP_CFLAGS += -DCONFIG_DRIVER_ATHEROS
110DRV_AP_OBJS += ../src/drivers/driver_atheros.o
111CONFIG_L2_PACKET=linux
112NEED_NETLINK=y
113NEED_LINUX_IOCTL=y
114ifdef ATH_GCM_SUPPORT
115CFLAGS += -DATH_GCM_SUPPORT
116endif
117endif
118
119##### PURE CLIENT DRIVERS
120
121ifdef CONFIG_DRIVER_WEXT
122DRV_WPA_CFLAGS += -DCONFIG_DRIVER_WEXT
123CONFIG_WIRELESS_EXTENSION=y
124NEED_NETLINK=y
125NEED_LINUX_IOCTL=y
126NEED_RFKILL=y
127endif
128
129ifdef CONFIG_DRIVER_NDIS
130DRV_WPA_CFLAGS += -DCONFIG_DRIVER_NDIS
131DRV_WPA_OBJS += ../src/drivers/driver_ndis.o
132ifdef CONFIG_NDIS_EVENTS_INTEGRATED
133DRV_WPA_OBJS += ../src/drivers/driver_ndis_.o
134endif
135ifndef CONFIG_L2_PACKET
136CONFIG_L2_PACKET=pcap
137endif
138CONFIG_WINPCAP=y
139ifdef CONFIG_USE_NDISUIO
140DRV_WPA_CFLAGS += -DCONFIG_USE_NDISUIO
141endif
142endif
143
144ifdef CONFIG_DRIVER_ROBOSWITCH
145DRV_WPA_CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH
146DRV_WPA_OBJS += ../src/drivers/driver_roboswitch.o
147endif
148
149ifdef CONFIG_WIRELESS_EXTENSION
150DRV_WPA_CFLAGS += -DCONFIG_WIRELESS_EXTENSION
151DRV_WPA_OBJS += ../src/drivers/driver_wext.o
152NEED_RFKILL=y
153endif
154
155ifdef NEED_NETLINK
156DRV_OBJS += ../src/drivers/netlink.o
157endif
158
159ifdef NEED_LINUX_IOCTL
160DRV_OBJS += ../src/drivers/linux_ioctl.o
161endif
162
163ifdef NEED_RFKILL
164DRV_OBJS += ../src/drivers/rfkill.o
165endif
166
167ifdef CONFIG_VLAN_NETLINK
168ifdef CONFIG_FULL_DYNAMIC_VLAN
169ifdef CONFIG_LIBNL32
170  DRV_LIBS += -lnl-3
171  DRV_LIBS += -lnl-genl-3
172  DRV_LIBS += -lnl-route-3
173  DRV_CFLAGS += -DCONFIG_LIBNL20
174else
175  ifdef CONFIG_LIBNL_TINY
176    DRV_LIBS += -lnl-tiny
177  else
178    DRV_LIBS += -lnl
179  endif
180
181  ifdef CONFIG_LIBNL20
182    DRV_LIBS += -lnl-genl
183    DRV_LIBS += -lnl-route
184    DRV_CFLAGS += -DCONFIG_LIBNL20
185  endif
186endif
187endif
188endif
189
190##### COMMON VARS
191DRV_BOTH_CFLAGS := $(DRV_CFLAGS) $(DRV_WPA_CFLAGS) $(DRV_AP_CFLAGS)
192DRV_WPA_CFLAGS += $(DRV_CFLAGS)
193DRV_AP_CFLAGS += $(DRV_CFLAGS)
194
195DRV_BOTH_LIBS := $(DRV_LIBS) $(DRV_WPA_LIBS) $(DRV_AP_LIBS)
196DRV_WPA_LIBS += $(DRV_LIBS)
197DRV_AP_LIBS += $(DRV_LIBS)
198
199DRV_BOTH_OBJS := $(DRV_OBJS) $(DRV_WPA_OBJS) $(DRV_AP_OBJS)
200DRV_WPA_OBJS += $(DRV_OBJS)
201DRV_AP_OBJS += $(DRV_OBJS)
202
203DRV_BOTH_LDFLAGS := $(DRV_LDFLAGS) $(DRV_WPA_LDFLAGS) $(DRV_AP_LDFLAGS)
204DRV_WPA_LDFLAGS += $(DRV_LDFLAGS)
205DRV_AP_LDFLAGS += $(DRV_LDFLAGS)
206