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