Makefile revision 1.3 1 1.1 christos ifndef CC
2 1.1 christos CC=gcc
3 1.1 christos endif
4 1.1 christos
5 1.1 christos ifndef CFLAGS
6 1.1 christos CFLAGS = -MMD -O2 -Wall -g
7 1.1 christos endif
8 1.1 christos
9 1.3 christos ifdef LIBS
10 1.3 christos # If LIBS is set with some global build system defaults, clone those for
11 1.3 christos # LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well.
12 1.3 christos ifndef LIBS_c
13 1.3 christos LIBS_c := $(LIBS)
14 1.3 christos endif
15 1.3 christos ifndef LIBS_p
16 1.3 christos LIBS_p := $(LIBS)
17 1.3 christos endif
18 1.3 christos endif
19 1.3 christos
20 1.1 christos export LIBDIR ?= /usr/local/lib/
21 1.3 christos export INCDIR ?= /usr/local/include/
22 1.1 christos export BINDIR ?= /usr/local/sbin/
23 1.2 roy PKG_CONFIG ?= pkg-config
24 1.1 christos
25 1.2 roy CFLAGS += $(EXTRA_CFLAGS)
26 1.2 roy CFLAGS += -I$(abspath ../src)
27 1.2 roy CFLAGS += -I$(abspath ../src/utils)
28 1.2 roy
29 1.2 roy -include .config
30 1.2 roy
31 1.3 christos ifndef CONFIG_NO_GITVER
32 1.3 christos # Add VERSION_STR postfix for builds from a git repository
33 1.3 christos ifeq ($(wildcard ../.git),../.git)
34 1.3 christos GITVER := $(shell git describe --dirty=+)
35 1.3 christos ifneq ($(GITVER),)
36 1.3 christos CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
37 1.3 christos endif
38 1.3 christos endif
39 1.3 christos endif
40 1.3 christos
41 1.2 roy ifdef CONFIG_TESTING_OPTIONS
42 1.2 roy CFLAGS += -DCONFIG_TESTING_OPTIONS
43 1.2 roy CONFIG_WPS_TESTING=y
44 1.2 roy CONFIG_TDLS_TESTING=y
45 1.2 roy endif
46 1.2 roy
47 1.2 roy BINALL=wpa_supplicant wpa_cli
48 1.2 roy
49 1.2 roy ifndef CONFIG_NO_WPA_PASSPHRASE
50 1.2 roy BINALL += wpa_passphrase
51 1.2 roy endif
52 1.2 roy
53 1.2 roy ALL = $(BINALL)
54 1.2 roy ALL += systemd/wpa_supplicant.service
55 1.2 roy ALL += systemd/wpa_supplicant@.service
56 1.2 roy ALL += systemd/wpa_supplicant-nl80211@.service
57 1.2 roy ALL += systemd/wpa_supplicant-wired@.service
58 1.2 roy ALL += dbus/fi.epitest.hostap.WPASupplicant.service
59 1.2 roy ALL += dbus/fi.w1.wpa_supplicant1.service
60 1.3 christos ifdef CONFIG_BUILD_WPA_CLIENT_SO
61 1.3 christos ALL += libwpa_client.so
62 1.3 christos endif
63 1.1 christos
64 1.1 christos
65 1.1 christos all: verify_config $(ALL) dynamic_eap_methods
66 1.1 christos
67 1.1 christos verify_config:
68 1.1 christos @if [ ! -r .config ]; then \
69 1.1 christos echo 'Building wpa_supplicant requires a configuration file'; \
70 1.1 christos echo '(.config). See README for more instructions. You can'; \
71 1.1 christos echo 'run "cp defconfig .config" to create an example'; \
72 1.1 christos echo 'configuration.'; \
73 1.1 christos exit 1; \
74 1.1 christos fi
75 1.1 christos
76 1.1 christos mkconfig:
77 1.1 christos @if [ -f .config ]; then \
78 1.1 christos echo '.config exists - did not replace it'; \
79 1.1 christos exit 1; \
80 1.1 christos fi
81 1.1 christos echo CONFIG_DRIVER_HOSTAP=y >> .config
82 1.1 christos echo CONFIG_DRIVER_WEXT=y >> .config
83 1.1 christos
84 1.2 roy $(DESTDIR)$(BINDIR)/%: %
85 1.2 roy install -D $(<) $(@)
86 1.2 roy
87 1.2 roy install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
88 1.1 christos $(MAKE) -C ../src install
89 1.3 christos ifdef CONFIG_BUILD_WPA_CLIENT_SO
90 1.3 christos install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
91 1.3 christos install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
92 1.3 christos endif
93 1.1 christos
94 1.2 roy ifdef CONFIG_FIPS
95 1.2 roy CONFIG_NO_RANDOM_POOL=
96 1.2 roy CONFIG_OPENSSL_CMAC=y
97 1.2 roy endif
98 1.2 roy
99 1.1 christos OBJS = config.o
100 1.1 christos OBJS += notify.o
101 1.1 christos OBJS += bss.o
102 1.1 christos OBJS += eap_register.o
103 1.1 christos OBJS += ../src/utils/common.o
104 1.1 christos OBJS += ../src/utils/wpa_debug.o
105 1.1 christos OBJS += ../src/utils/wpabuf.o
106 1.1 christos OBJS_p = wpa_passphrase.o
107 1.1 christos OBJS_p += ../src/utils/common.o
108 1.1 christos OBJS_p += ../src/utils/wpa_debug.o
109 1.1 christos OBJS_p += ../src/utils/wpabuf.o
110 1.1 christos OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
111 1.2 roy OBJS_c += ../src/utils/wpa_debug.o
112 1.2 roy OBJS_c += ../src/utils/common.o
113 1.3 christos OBJS_c += ../src/common/cli.o
114 1.2 roy OBJS += wmm_ac.o
115 1.1 christos
116 1.1 christos ifndef CONFIG_OS
117 1.1 christos ifdef CONFIG_NATIVE_WINDOWS
118 1.1 christos CONFIG_OS=win32
119 1.1 christos else
120 1.1 christos CONFIG_OS=unix
121 1.1 christos endif
122 1.1 christos endif
123 1.1 christos
124 1.1 christos ifeq ($(CONFIG_OS), internal)
125 1.1 christos CFLAGS += -DOS_NO_C_LIB_DEFINES
126 1.1 christos endif
127 1.1 christos
128 1.1 christos OBJS += ../src/utils/os_$(CONFIG_OS).o
129 1.1 christos OBJS_p += ../src/utils/os_$(CONFIG_OS).o
130 1.1 christos OBJS_c += ../src/utils/os_$(CONFIG_OS).o
131 1.1 christos
132 1.1 christos ifdef CONFIG_WPA_TRACE
133 1.1 christos CFLAGS += -DWPA_TRACE
134 1.1 christos OBJS += ../src/utils/trace.o
135 1.1 christos OBJS_p += ../src/utils/trace.o
136 1.1 christos OBJS_c += ../src/utils/trace.o
137 1.2 roy OBJS_priv += ../src/utils/trace.o
138 1.2 roy LIBCTRL += ../src/utils/trace.o
139 1.3 christos LIBCTRLSO += ../src/utils/trace.c
140 1.1 christos LDFLAGS += -rdynamic
141 1.1 christos CFLAGS += -funwind-tables
142 1.1 christos ifdef CONFIG_WPA_TRACE_BFD
143 1.2 roy CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
144 1.2 roy LIBS += -lbfd -ldl -liberty -lz
145 1.2 roy LIBS_p += -lbfd -ldl -liberty -lz
146 1.2 roy LIBS_c += -lbfd -ldl -liberty -lz
147 1.1 christos endif
148 1.1 christos endif
149 1.1 christos
150 1.1 christos ifndef CONFIG_ELOOP
151 1.1 christos CONFIG_ELOOP=eloop
152 1.1 christos endif
153 1.1 christos OBJS += ../src/utils/$(CONFIG_ELOOP).o
154 1.2 roy OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
155 1.2 roy
156 1.3 christos ifndef CONFIG_OSX
157 1.2 roy ifeq ($(CONFIG_ELOOP), eloop)
158 1.2 roy # Using glibc < 2.17 requires -lrt for clock_gettime()
159 1.3 christos # OS X has an alternate implementation
160 1.2 roy LIBS += -lrt
161 1.2 roy LIBS_c += -lrt
162 1.2 roy LIBS_p += -lrt
163 1.2 roy endif
164 1.3 christos endif
165 1.1 christos
166 1.2 roy ifdef CONFIG_ELOOP_POLL
167 1.2 roy CFLAGS += -DCONFIG_ELOOP_POLL
168 1.2 roy endif
169 1.2 roy
170 1.2 roy ifdef CONFIG_ELOOP_EPOLL
171 1.2 roy CFLAGS += -DCONFIG_ELOOP_EPOLL
172 1.2 roy endif
173 1.1 christos
174 1.3 christos ifdef CONFIG_ELOOP_KQUEUE
175 1.3 christos CFLAGS += -DCONFIG_ELOOP_KQUEUE
176 1.3 christos endif
177 1.3 christos
178 1.1 christos ifdef CONFIG_EAPOL_TEST
179 1.1 christos CFLAGS += -Werror -DEAPOL_TEST
180 1.1 christos endif
181 1.1 christos
182 1.2 roy ifdef CONFIG_CODE_COVERAGE
183 1.2 roy CFLAGS += -O0 -fprofile-arcs -ftest-coverage
184 1.2 roy LIBS += -lgcov
185 1.2 roy LIBS_c += -lgcov
186 1.2 roy LIBS_p += -lgcov
187 1.2 roy endif
188 1.2 roy
189 1.2 roy ifdef CONFIG_HT_OVERRIDES
190 1.2 roy CFLAGS += -DCONFIG_HT_OVERRIDES
191 1.2 roy endif
192 1.2 roy
193 1.2 roy ifdef CONFIG_VHT_OVERRIDES
194 1.2 roy CFLAGS += -DCONFIG_VHT_OVERRIDES
195 1.2 roy endif
196 1.2 roy
197 1.1 christos ifndef CONFIG_BACKEND
198 1.1 christos CONFIG_BACKEND=file
199 1.1 christos endif
200 1.1 christos
201 1.1 christos ifeq ($(CONFIG_BACKEND), file)
202 1.1 christos OBJS += config_file.o
203 1.1 christos ifndef CONFIG_NO_CONFIG_BLOBS
204 1.1 christos NEED_BASE64=y
205 1.1 christos endif
206 1.1 christos CFLAGS += -DCONFIG_BACKEND_FILE
207 1.1 christos endif
208 1.1 christos
209 1.1 christos ifeq ($(CONFIG_BACKEND), winreg)
210 1.1 christos OBJS += config_winreg.o
211 1.1 christos endif
212 1.1 christos
213 1.1 christos ifeq ($(CONFIG_BACKEND), none)
214 1.1 christos OBJS += config_none.o
215 1.1 christos endif
216 1.1 christos
217 1.1 christos ifdef CONFIG_NO_CONFIG_WRITE
218 1.1 christos CFLAGS += -DCONFIG_NO_CONFIG_WRITE
219 1.1 christos endif
220 1.1 christos
221 1.1 christos ifdef CONFIG_NO_CONFIG_BLOBS
222 1.1 christos CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
223 1.1 christos endif
224 1.1 christos
225 1.1 christos ifdef CONFIG_NO_SCAN_PROCESSING
226 1.1 christos CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
227 1.1 christos endif
228 1.1 christos
229 1.2 roy ifdef CONFIG_SUITEB
230 1.2 roy CFLAGS += -DCONFIG_SUITEB
231 1.2 roy NEED_SHA256=y
232 1.2 roy NEED_AES_OMAC1=y
233 1.2 roy endif
234 1.2 roy
235 1.2 roy ifdef CONFIG_SUITEB192
236 1.2 roy CFLAGS += -DCONFIG_SUITEB192
237 1.2 roy NEED_SHA384=y
238 1.2 roy endif
239 1.2 roy
240 1.1 christos ifdef CONFIG_IEEE80211W
241 1.1 christos CFLAGS += -DCONFIG_IEEE80211W
242 1.1 christos NEED_SHA256=y
243 1.1 christos NEED_AES_OMAC1=y
244 1.1 christos endif
245 1.1 christos
246 1.1 christos ifdef CONFIG_IEEE80211R
247 1.1 christos CFLAGS += -DCONFIG_IEEE80211R
248 1.1 christos OBJS += ../src/rsn_supp/wpa_ft.o
249 1.2 roy NEED_SHA256=y
250 1.2 roy NEED_AES_OMAC1=y
251 1.2 roy endif
252 1.2 roy
253 1.2 roy ifdef CONFIG_MESH
254 1.1 christos NEED_80211_COMMON=y
255 1.1 christos NEED_SHA256=y
256 1.2 roy NEED_AES_SIV=y
257 1.2 roy NEED_AES_OMAC1=y
258 1.2 roy NEED_AES_CTR=y
259 1.2 roy CONFIG_SAE=y
260 1.2 roy CONFIG_AP=y
261 1.2 roy CFLAGS += -DCONFIG_MESH
262 1.2 roy OBJS += mesh.o
263 1.2 roy OBJS += mesh_mpm.o
264 1.2 roy OBJS += mesh_rsn.o
265 1.2 roy endif
266 1.2 roy
267 1.2 roy ifdef CONFIG_SAE
268 1.2 roy CFLAGS += -DCONFIG_SAE
269 1.2 roy OBJS += ../src/common/sae.o
270 1.2 roy NEED_ECC=y
271 1.2 roy NEED_DH_GROUPS=y
272 1.2 roy endif
273 1.2 roy
274 1.2 roy ifdef CONFIG_WNM
275 1.2 roy CFLAGS += -DCONFIG_WNM
276 1.2 roy OBJS += wnm_sta.o
277 1.2 roy endif
278 1.2 roy
279 1.2 roy ifdef CONFIG_TDLS
280 1.2 roy CFLAGS += -DCONFIG_TDLS
281 1.2 roy OBJS += ../src/rsn_supp/tdls.o
282 1.2 roy NEED_SHA256=y
283 1.1 christos NEED_AES_OMAC1=y
284 1.1 christos endif
285 1.1 christos
286 1.2 roy ifdef CONFIG_TDLS_TESTING
287 1.2 roy CFLAGS += -DCONFIG_TDLS_TESTING
288 1.2 roy endif
289 1.2 roy
290 1.1 christos ifdef CONFIG_PEERKEY
291 1.1 christos CFLAGS += -DCONFIG_PEERKEY
292 1.1 christos endif
293 1.1 christos
294 1.1 christos ifndef CONFIG_NO_WPA
295 1.1 christos OBJS += ../src/rsn_supp/wpa.o
296 1.1 christos OBJS += ../src/rsn_supp/preauth.o
297 1.1 christos OBJS += ../src/rsn_supp/pmksa_cache.o
298 1.1 christos OBJS += ../src/rsn_supp/peerkey.o
299 1.1 christos OBJS += ../src/rsn_supp/wpa_ie.o
300 1.1 christos OBJS += ../src/common/wpa_common.o
301 1.1 christos NEED_AES=y
302 1.1 christos NEED_SHA1=y
303 1.1 christos NEED_MD5=y
304 1.1 christos NEED_RC4=y
305 1.1 christos else
306 1.2 roy CFLAGS += -DCONFIG_NO_WPA
307 1.3 christos ifeq ($(CONFIG_TLS), internal)
308 1.3 christos NEED_SHA1=y
309 1.3 christos NEED_MD5=y
310 1.3 christos endif
311 1.1 christos endif
312 1.1 christos
313 1.1 christos ifdef CONFIG_IBSS_RSN
314 1.1 christos NEED_RSN_AUTHENTICATOR=y
315 1.1 christos CFLAGS += -DCONFIG_IBSS_RSN
316 1.3 christos CFLAGS += -DCONFIG_NO_VLAN
317 1.1 christos OBJS += ibss_rsn.o
318 1.1 christos endif
319 1.1 christos
320 1.2 roy ifdef CONFIG_MATCH_IFACE
321 1.2 roy CFLAGS += -DCONFIG_MATCH_IFACE
322 1.2 roy endif
323 1.2 roy
324 1.2 roy ifdef CONFIG_P2P
325 1.2 roy OBJS += p2p_supplicant.o
326 1.3 christos OBJS += p2p_supplicant_sd.o
327 1.2 roy OBJS += ../src/p2p/p2p.o
328 1.2 roy OBJS += ../src/p2p/p2p_utils.o
329 1.2 roy OBJS += ../src/p2p/p2p_parse.o
330 1.2 roy OBJS += ../src/p2p/p2p_build.o
331 1.2 roy OBJS += ../src/p2p/p2p_go_neg.o
332 1.2 roy OBJS += ../src/p2p/p2p_sd.o
333 1.2 roy OBJS += ../src/p2p/p2p_pd.o
334 1.2 roy OBJS += ../src/p2p/p2p_invitation.o
335 1.2 roy OBJS += ../src/p2p/p2p_dev_disc.o
336 1.2 roy OBJS += ../src/p2p/p2p_group.o
337 1.2 roy OBJS += ../src/ap/p2p_hostapd.o
338 1.2 roy OBJS += ../src/utils/bitfield.o
339 1.2 roy CFLAGS += -DCONFIG_P2P
340 1.2 roy NEED_GAS=y
341 1.2 roy NEED_OFFCHANNEL=y
342 1.2 roy CONFIG_WPS=y
343 1.2 roy CONFIG_AP=y
344 1.2 roy ifdef CONFIG_P2P_STRICT
345 1.2 roy CFLAGS += -DCONFIG_P2P_STRICT
346 1.2 roy endif
347 1.2 roy endif
348 1.2 roy
349 1.2 roy ifdef CONFIG_WIFI_DISPLAY
350 1.2 roy CFLAGS += -DCONFIG_WIFI_DISPLAY
351 1.2 roy OBJS += wifi_display.o
352 1.2 roy endif
353 1.2 roy
354 1.2 roy ifdef CONFIG_HS20
355 1.2 roy OBJS += hs20_supplicant.o
356 1.2 roy CFLAGS += -DCONFIG_HS20
357 1.2 roy CONFIG_INTERWORKING=y
358 1.2 roy NEED_AES_OMAC1=y
359 1.2 roy endif
360 1.2 roy
361 1.2 roy ifdef CONFIG_INTERWORKING
362 1.2 roy OBJS += interworking.o
363 1.2 roy CFLAGS += -DCONFIG_INTERWORKING
364 1.2 roy NEED_GAS=y
365 1.1 christos endif
366 1.1 christos
367 1.3 christos ifdef CONFIG_NO_ROAMING
368 1.3 christos CFLAGS += -DCONFIG_NO_ROAMING
369 1.3 christos endif
370 1.3 christos
371 1.1 christos include ../src/drivers/drivers.mak
372 1.1 christos ifdef CONFIG_AP
373 1.1 christos OBJS_d += $(DRV_BOTH_OBJS)
374 1.1 christos CFLAGS += $(DRV_BOTH_CFLAGS)
375 1.1 christos LDFLAGS += $(DRV_BOTH_LDFLAGS)
376 1.1 christos LIBS += $(DRV_BOTH_LIBS)
377 1.1 christos else
378 1.1 christos NEED_AP_MLME=
379 1.1 christos OBJS_d += $(DRV_WPA_OBJS)
380 1.1 christos CFLAGS += $(DRV_WPA_CFLAGS)
381 1.1 christos LDFLAGS += $(DRV_WPA_LDFLAGS)
382 1.1 christos LIBS += $(DRV_WPA_LIBS)
383 1.1 christos endif
384 1.1 christos
385 1.1 christos ifndef CONFIG_L2_PACKET
386 1.1 christos CONFIG_L2_PACKET=linux
387 1.1 christos endif
388 1.1 christos
389 1.1 christos OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
390 1.1 christos
391 1.1 christos ifeq ($(CONFIG_L2_PACKET), pcap)
392 1.1 christos ifdef CONFIG_WINPCAP
393 1.1 christos CFLAGS += -DCONFIG_WINPCAP
394 1.1 christos LIBS += -lwpcap -lpacket
395 1.1 christos LIBS_w += -lwpcap
396 1.1 christos else
397 1.1 christos LIBS += -ldnet -lpcap
398 1.1 christos endif
399 1.1 christos endif
400 1.1 christos
401 1.1 christos ifeq ($(CONFIG_L2_PACKET), winpcap)
402 1.1 christos LIBS += -lwpcap -lpacket
403 1.1 christos LIBS_w += -lwpcap
404 1.1 christos endif
405 1.1 christos
406 1.1 christos ifeq ($(CONFIG_L2_PACKET), freebsd)
407 1.1 christos LIBS += -lpcap
408 1.1 christos endif
409 1.1 christos
410 1.2 roy ifdef CONFIG_ERP
411 1.2 roy CFLAGS += -DCONFIG_ERP
412 1.2 roy NEED_SHA256=y
413 1.2 roy NEED_HMAC_SHA256_KDF=y
414 1.2 roy endif
415 1.2 roy
416 1.1 christos ifdef CONFIG_EAP_TLS
417 1.1 christos # EAP-TLS
418 1.1 christos ifeq ($(CONFIG_EAP_TLS), dyn)
419 1.1 christos CFLAGS += -DEAP_TLS_DYNAMIC
420 1.1 christos EAPDYN += ../src/eap_peer/eap_tls.so
421 1.1 christos else
422 1.1 christos CFLAGS += -DEAP_TLS
423 1.1 christos OBJS += ../src/eap_peer/eap_tls.o
424 1.1 christos endif
425 1.1 christos TLS_FUNCS=y
426 1.1 christos CONFIG_IEEE8021X_EAPOL=y
427 1.1 christos endif
428 1.1 christos
429 1.2 roy ifdef CONFIG_EAP_UNAUTH_TLS
430 1.2 roy # EAP-UNAUTH-TLS
431 1.2 roy CFLAGS += -DEAP_UNAUTH_TLS
432 1.3 christos ifndef CONFIG_EAP_TLS
433 1.2 roy OBJS += ../src/eap_peer/eap_tls.o
434 1.2 roy TLS_FUNCS=y
435 1.2 roy endif
436 1.2 roy CONFIG_IEEE8021X_EAPOL=y
437 1.2 roy endif
438 1.2 roy
439 1.1 christos ifdef CONFIG_EAP_PEAP
440 1.1 christos # EAP-PEAP
441 1.1 christos ifeq ($(CONFIG_EAP_PEAP), dyn)
442 1.1 christos CFLAGS += -DEAP_PEAP_DYNAMIC
443 1.1 christos EAPDYN += ../src/eap_peer/eap_peap.so
444 1.1 christos else
445 1.1 christos CFLAGS += -DEAP_PEAP
446 1.1 christos OBJS += ../src/eap_peer/eap_peap.o
447 1.1 christos OBJS += ../src/eap_common/eap_peap_common.o
448 1.1 christos endif
449 1.1 christos TLS_FUNCS=y
450 1.1 christos CONFIG_IEEE8021X_EAPOL=y
451 1.1 christos endif
452 1.1 christos
453 1.1 christos ifdef CONFIG_EAP_TTLS
454 1.1 christos # EAP-TTLS
455 1.1 christos ifeq ($(CONFIG_EAP_TTLS), dyn)
456 1.1 christos CFLAGS += -DEAP_TTLS_DYNAMIC
457 1.1 christos EAPDYN += ../src/eap_peer/eap_ttls.so
458 1.1 christos else
459 1.1 christos CFLAGS += -DEAP_TTLS
460 1.1 christos OBJS += ../src/eap_peer/eap_ttls.o
461 1.1 christos endif
462 1.3 christos TLS_FUNCS=y
463 1.3 christos ifndef CONFIG_FIPS
464 1.1 christos MS_FUNCS=y
465 1.1 christos CHAP=y
466 1.3 christos endif
467 1.1 christos CONFIG_IEEE8021X_EAPOL=y
468 1.1 christos endif
469 1.1 christos
470 1.1 christos ifdef CONFIG_EAP_MD5
471 1.1 christos # EAP-MD5
472 1.1 christos ifeq ($(CONFIG_EAP_MD5), dyn)
473 1.1 christos CFLAGS += -DEAP_MD5_DYNAMIC
474 1.1 christos EAPDYN += ../src/eap_peer/eap_md5.so
475 1.1 christos else
476 1.1 christos CFLAGS += -DEAP_MD5
477 1.1 christos OBJS += ../src/eap_peer/eap_md5.o
478 1.1 christos endif
479 1.1 christos CHAP=y
480 1.1 christos CONFIG_IEEE8021X_EAPOL=y
481 1.1 christos endif
482 1.1 christos
483 1.1 christos # backwards compatibility for old spelling
484 1.1 christos ifdef CONFIG_MSCHAPV2
485 1.1 christos ifndef CONFIG_EAP_MSCHAPV2
486 1.1 christos CONFIG_EAP_MSCHAPV2=y
487 1.1 christos endif
488 1.1 christos endif
489 1.1 christos
490 1.1 christos ifdef CONFIG_EAP_MSCHAPV2
491 1.1 christos # EAP-MSCHAPv2
492 1.1 christos ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
493 1.1 christos CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
494 1.1 christos EAPDYN += ../src/eap_peer/eap_mschapv2.so
495 1.1 christos EAPDYN += ../src/eap_peer/mschapv2.so
496 1.1 christos else
497 1.1 christos CFLAGS += -DEAP_MSCHAPv2
498 1.1 christos OBJS += ../src/eap_peer/eap_mschapv2.o
499 1.1 christos OBJS += ../src/eap_peer/mschapv2.o
500 1.1 christos endif
501 1.1 christos MS_FUNCS=y
502 1.1 christos CONFIG_IEEE8021X_EAPOL=y
503 1.1 christos endif
504 1.1 christos
505 1.1 christos ifdef CONFIG_EAP_GTC
506 1.1 christos # EAP-GTC
507 1.1 christos ifeq ($(CONFIG_EAP_GTC), dyn)
508 1.1 christos CFLAGS += -DEAP_GTC_DYNAMIC
509 1.1 christos EAPDYN += ../src/eap_peer/eap_gtc.so
510 1.1 christos else
511 1.1 christos CFLAGS += -DEAP_GTC
512 1.1 christos OBJS += ../src/eap_peer/eap_gtc.o
513 1.1 christos endif
514 1.1 christos CONFIG_IEEE8021X_EAPOL=y
515 1.1 christos endif
516 1.1 christos
517 1.1 christos ifdef CONFIG_EAP_OTP
518 1.1 christos # EAP-OTP
519 1.1 christos ifeq ($(CONFIG_EAP_OTP), dyn)
520 1.1 christos CFLAGS += -DEAP_OTP_DYNAMIC
521 1.1 christos EAPDYN += ../src/eap_peer/eap_otp.so
522 1.1 christos else
523 1.1 christos CFLAGS += -DEAP_OTP
524 1.1 christos OBJS += ../src/eap_peer/eap_otp.o
525 1.1 christos endif
526 1.1 christos CONFIG_IEEE8021X_EAPOL=y
527 1.1 christos endif
528 1.1 christos
529 1.1 christos ifdef CONFIG_EAP_SIM
530 1.1 christos # EAP-SIM
531 1.1 christos ifeq ($(CONFIG_EAP_SIM), dyn)
532 1.1 christos CFLAGS += -DEAP_SIM_DYNAMIC
533 1.1 christos EAPDYN += ../src/eap_peer/eap_sim.so
534 1.1 christos else
535 1.1 christos CFLAGS += -DEAP_SIM
536 1.1 christos OBJS += ../src/eap_peer/eap_sim.o
537 1.1 christos endif
538 1.1 christos CONFIG_IEEE8021X_EAPOL=y
539 1.1 christos CONFIG_EAP_SIM_COMMON=y
540 1.1 christos NEED_AES_CBC=y
541 1.1 christos endif
542 1.1 christos
543 1.1 christos ifdef CONFIG_EAP_LEAP
544 1.1 christos # EAP-LEAP
545 1.1 christos ifeq ($(CONFIG_EAP_LEAP), dyn)
546 1.1 christos CFLAGS += -DEAP_LEAP_DYNAMIC
547 1.1 christos EAPDYN += ../src/eap_peer/eap_leap.so
548 1.1 christos else
549 1.1 christos CFLAGS += -DEAP_LEAP
550 1.1 christos OBJS += ../src/eap_peer/eap_leap.o
551 1.1 christos endif
552 1.1 christos MS_FUNCS=y
553 1.1 christos CONFIG_IEEE8021X_EAPOL=y
554 1.1 christos endif
555 1.1 christos
556 1.1 christos ifdef CONFIG_EAP_PSK
557 1.1 christos # EAP-PSK
558 1.1 christos ifeq ($(CONFIG_EAP_PSK), dyn)
559 1.1 christos CFLAGS += -DEAP_PSK_DYNAMIC
560 1.1 christos EAPDYN += ../src/eap_peer/eap_psk.so
561 1.1 christos else
562 1.1 christos CFLAGS += -DEAP_PSK
563 1.1 christos OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
564 1.1 christos endif
565 1.1 christos CONFIG_IEEE8021X_EAPOL=y
566 1.1 christos NEED_AES=y
567 1.1 christos NEED_AES_OMAC1=y
568 1.1 christos NEED_AES_ENCBLOCK=y
569 1.1 christos NEED_AES_EAX=y
570 1.1 christos endif
571 1.1 christos
572 1.1 christos ifdef CONFIG_EAP_AKA
573 1.1 christos # EAP-AKA
574 1.1 christos ifeq ($(CONFIG_EAP_AKA), dyn)
575 1.1 christos CFLAGS += -DEAP_AKA_DYNAMIC
576 1.1 christos EAPDYN += ../src/eap_peer/eap_aka.so
577 1.1 christos else
578 1.1 christos CFLAGS += -DEAP_AKA
579 1.1 christos OBJS += ../src/eap_peer/eap_aka.o
580 1.1 christos endif
581 1.1 christos CONFIG_IEEE8021X_EAPOL=y
582 1.1 christos CONFIG_EAP_SIM_COMMON=y
583 1.1 christos NEED_AES_CBC=y
584 1.1 christos endif
585 1.1 christos
586 1.2 roy ifdef CONFIG_EAP_PROXY
587 1.2 roy CFLAGS += -DCONFIG_EAP_PROXY
588 1.2 roy OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
589 1.2 roy include eap_proxy_$(CONFIG_EAP_PROXY).mak
590 1.2 roy CONFIG_IEEE8021X_EAPOL=y
591 1.2 roy endif
592 1.2 roy
593 1.1 christos ifdef CONFIG_EAP_AKA_PRIME
594 1.1 christos # EAP-AKA'
595 1.1 christos ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
596 1.1 christos CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
597 1.1 christos else
598 1.1 christos CFLAGS += -DEAP_AKA_PRIME
599 1.1 christos endif
600 1.1 christos NEED_SHA256=y
601 1.1 christos endif
602 1.1 christos
603 1.1 christos ifdef CONFIG_EAP_SIM_COMMON
604 1.1 christos OBJS += ../src/eap_common/eap_sim_common.o
605 1.1 christos NEED_AES=y
606 1.1 christos NEED_FIPS186_2_PRF=y
607 1.1 christos endif
608 1.1 christos
609 1.1 christos ifdef CONFIG_EAP_FAST
610 1.1 christos # EAP-FAST
611 1.1 christos ifeq ($(CONFIG_EAP_FAST), dyn)
612 1.1 christos CFLAGS += -DEAP_FAST_DYNAMIC
613 1.1 christos EAPDYN += ../src/eap_peer/eap_fast.so
614 1.1 christos EAPDYN += ../src/eap_common/eap_fast_common.o
615 1.1 christos else
616 1.1 christos CFLAGS += -DEAP_FAST
617 1.1 christos OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
618 1.1 christos OBJS += ../src/eap_common/eap_fast_common.o
619 1.1 christos endif
620 1.1 christos TLS_FUNCS=y
621 1.1 christos CONFIG_IEEE8021X_EAPOL=y
622 1.1 christos NEED_T_PRF=y
623 1.1 christos endif
624 1.1 christos
625 1.1 christos ifdef CONFIG_EAP_PAX
626 1.1 christos # EAP-PAX
627 1.1 christos ifeq ($(CONFIG_EAP_PAX), dyn)
628 1.1 christos CFLAGS += -DEAP_PAX_DYNAMIC
629 1.1 christos EAPDYN += ../src/eap_peer/eap_pax.so
630 1.1 christos else
631 1.1 christos CFLAGS += -DEAP_PAX
632 1.1 christos OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
633 1.1 christos endif
634 1.1 christos CONFIG_IEEE8021X_EAPOL=y
635 1.1 christos endif
636 1.1 christos
637 1.1 christos ifdef CONFIG_EAP_SAKE
638 1.1 christos # EAP-SAKE
639 1.1 christos ifeq ($(CONFIG_EAP_SAKE), dyn)
640 1.1 christos CFLAGS += -DEAP_SAKE_DYNAMIC
641 1.1 christos EAPDYN += ../src/eap_peer/eap_sake.so
642 1.1 christos else
643 1.1 christos CFLAGS += -DEAP_SAKE
644 1.1 christos OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
645 1.1 christos endif
646 1.1 christos CONFIG_IEEE8021X_EAPOL=y
647 1.1 christos endif
648 1.1 christos
649 1.1 christos ifdef CONFIG_EAP_GPSK
650 1.1 christos # EAP-GPSK
651 1.1 christos ifeq ($(CONFIG_EAP_GPSK), dyn)
652 1.1 christos CFLAGS += -DEAP_GPSK_DYNAMIC
653 1.1 christos EAPDYN += ../src/eap_peer/eap_gpsk.so
654 1.1 christos else
655 1.1 christos CFLAGS += -DEAP_GPSK
656 1.1 christos OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
657 1.1 christos endif
658 1.1 christos CONFIG_IEEE8021X_EAPOL=y
659 1.1 christos ifdef CONFIG_EAP_GPSK_SHA256
660 1.1 christos CFLAGS += -DEAP_GPSK_SHA256
661 1.1 christos endif
662 1.1 christos NEED_SHA256=y
663 1.1 christos NEED_AES_OMAC1=y
664 1.1 christos endif
665 1.1 christos
666 1.2 roy ifdef CONFIG_EAP_PWD
667 1.2 roy CFLAGS += -DEAP_PWD
668 1.2 roy OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
669 1.2 roy CONFIG_IEEE8021X_EAPOL=y
670 1.2 roy NEED_SHA256=y
671 1.2 roy endif
672 1.2 roy
673 1.2 roy ifdef CONFIG_EAP_EKE
674 1.2 roy # EAP-EKE
675 1.2 roy ifeq ($(CONFIG_EAP_EKE), dyn)
676 1.2 roy CFLAGS += -DEAP_EKE_DYNAMIC
677 1.2 roy EAPDYN += ../src/eap_peer/eap_eke.so
678 1.2 roy else
679 1.2 roy CFLAGS += -DEAP_EKE
680 1.2 roy OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
681 1.2 roy endif
682 1.2 roy CONFIG_IEEE8021X_EAPOL=y
683 1.2 roy NEED_DH_GROUPS=y
684 1.2 roy NEED_DH_GROUPS_ALL=y
685 1.2 roy NEED_SHA256=y
686 1.3 christos NEED_AES_CBC=y
687 1.2 roy endif
688 1.2 roy
689 1.1 christos ifdef CONFIG_WPS
690 1.1 christos # EAP-WSC
691 1.1 christos CFLAGS += -DCONFIG_WPS -DEAP_WSC
692 1.1 christos OBJS += wps_supplicant.o
693 1.1 christos OBJS += ../src/utils/uuid.o
694 1.1 christos OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
695 1.1 christos OBJS += ../src/wps/wps.o
696 1.1 christos OBJS += ../src/wps/wps_common.o
697 1.1 christos OBJS += ../src/wps/wps_attr_parse.o
698 1.1 christos OBJS += ../src/wps/wps_attr_build.o
699 1.1 christos OBJS += ../src/wps/wps_attr_process.o
700 1.1 christos OBJS += ../src/wps/wps_dev_attr.o
701 1.1 christos OBJS += ../src/wps/wps_enrollee.o
702 1.1 christos OBJS += ../src/wps/wps_registrar.o
703 1.1 christos CONFIG_IEEE8021X_EAPOL=y
704 1.1 christos NEED_DH_GROUPS=y
705 1.1 christos NEED_SHA256=y
706 1.1 christos NEED_BASE64=y
707 1.1 christos NEED_AES_CBC=y
708 1.1 christos NEED_MODEXP=y
709 1.1 christos
710 1.1 christos ifdef CONFIG_WPS_NFC
711 1.1 christos CFLAGS += -DCONFIG_WPS_NFC
712 1.1 christos OBJS += ../src/wps/ndef.o
713 1.1 christos NEED_WPS_OOB=y
714 1.1 christos endif
715 1.1 christos
716 1.1 christos ifdef NEED_WPS_OOB
717 1.1 christos CFLAGS += -DCONFIG_WPS_OOB
718 1.1 christos endif
719 1.1 christos
720 1.1 christos ifdef CONFIG_WPS_ER
721 1.1 christos CONFIG_WPS_UPNP=y
722 1.1 christos CFLAGS += -DCONFIG_WPS_ER
723 1.1 christos OBJS += ../src/wps/wps_er.o
724 1.1 christos OBJS += ../src/wps/wps_er_ssdp.o
725 1.1 christos endif
726 1.1 christos
727 1.1 christos ifdef CONFIG_WPS_UPNP
728 1.1 christos CFLAGS += -DCONFIG_WPS_UPNP
729 1.1 christos OBJS += ../src/wps/wps_upnp.o
730 1.1 christos OBJS += ../src/wps/wps_upnp_ssdp.o
731 1.1 christos OBJS += ../src/wps/wps_upnp_web.o
732 1.1 christos OBJS += ../src/wps/wps_upnp_event.o
733 1.1 christos OBJS += ../src/wps/wps_upnp_ap.o
734 1.1 christos OBJS += ../src/wps/upnp_xml.o
735 1.1 christos OBJS += ../src/wps/httpread.o
736 1.1 christos OBJS += ../src/wps/http_client.o
737 1.1 christos OBJS += ../src/wps/http_server.o
738 1.1 christos endif
739 1.1 christos
740 1.2 roy ifdef CONFIG_WPS_STRICT
741 1.2 roy CFLAGS += -DCONFIG_WPS_STRICT
742 1.2 roy OBJS += ../src/wps/wps_validate.o
743 1.2 roy endif
744 1.2 roy
745 1.2 roy ifdef CONFIG_WPS_TESTING
746 1.2 roy CFLAGS += -DCONFIG_WPS_TESTING
747 1.2 roy endif
748 1.2 roy
749 1.2 roy ifdef CONFIG_WPS_REG_DISABLE_OPEN
750 1.2 roy CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
751 1.2 roy endif
752 1.2 roy
753 1.1 christos endif
754 1.1 christos
755 1.1 christos ifdef CONFIG_EAP_IKEV2
756 1.1 christos # EAP-IKEv2
757 1.1 christos ifeq ($(CONFIG_EAP_IKEV2), dyn)
758 1.1 christos CFLAGS += -DEAP_IKEV2_DYNAMIC
759 1.1 christos EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
760 1.1 christos EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
761 1.1 christos else
762 1.1 christos CFLAGS += -DEAP_IKEV2
763 1.1 christos OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
764 1.1 christos OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
765 1.1 christos endif
766 1.1 christos CONFIG_IEEE8021X_EAPOL=y
767 1.1 christos NEED_DH_GROUPS=y
768 1.1 christos NEED_DH_GROUPS_ALL=y
769 1.1 christos NEED_MODEXP=y
770 1.1 christos NEED_CIPHER=y
771 1.1 christos endif
772 1.1 christos
773 1.1 christos ifdef CONFIG_EAP_VENDOR_TEST
774 1.1 christos ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
775 1.1 christos CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
776 1.1 christos EAPDYN += ../src/eap_peer/eap_vendor_test.so
777 1.1 christos else
778 1.1 christos CFLAGS += -DEAP_VENDOR_TEST
779 1.1 christos OBJS += ../src/eap_peer/eap_vendor_test.o
780 1.1 christos endif
781 1.1 christos CONFIG_IEEE8021X_EAPOL=y
782 1.1 christos endif
783 1.1 christos
784 1.1 christos ifdef CONFIG_EAP_TNC
785 1.1 christos # EAP-TNC
786 1.1 christos CFLAGS += -DEAP_TNC
787 1.1 christos OBJS += ../src/eap_peer/eap_tnc.o
788 1.1 christos OBJS += ../src/eap_peer/tncc.o
789 1.1 christos NEED_BASE64=y
790 1.1 christos ifndef CONFIG_NATIVE_WINDOWS
791 1.1 christos ifndef CONFIG_DRIVER_BSD
792 1.1 christos LIBS += -ldl
793 1.1 christos endif
794 1.1 christos endif
795 1.1 christos endif
796 1.1 christos
797 1.1 christos ifdef CONFIG_IEEE8021X_EAPOL
798 1.1 christos # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
799 1.1 christos CFLAGS += -DIEEE8021X_EAPOL
800 1.2 roy OBJS += ../src/eapol_supp/eapol_supp_sm.o
801 1.2 roy OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
802 1.2 roy NEED_EAP_COMMON=y
803 1.1 christos ifdef CONFIG_DYNAMIC_EAP_METHODS
804 1.1 christos CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
805 1.1 christos LIBS += -ldl -rdynamic
806 1.1 christos endif
807 1.1 christos endif
808 1.1 christos
809 1.2 roy ifdef CONFIG_MACSEC
810 1.2 roy CFLAGS += -DCONFIG_MACSEC
811 1.2 roy NEED_AES_ENCBLOCK=y
812 1.2 roy NEED_AES_UNWRAP=y
813 1.2 roy NEED_AES_WRAP=y
814 1.2 roy NEED_AES_OMAC1=y
815 1.2 roy OBJS += wpas_kay.o
816 1.2 roy OBJS += ../src/pae/ieee802_1x_cp.o
817 1.2 roy OBJS += ../src/pae/ieee802_1x_kay.o
818 1.2 roy OBJS += ../src/pae/ieee802_1x_key.o
819 1.2 roy OBJS += ../src/pae/ieee802_1x_secy_ops.o
820 1.2 roy endif
821 1.2 roy
822 1.1 christos ifdef CONFIG_AP
823 1.2 roy NEED_EAP_COMMON=y
824 1.1 christos NEED_RSN_AUTHENTICATOR=y
825 1.1 christos CFLAGS += -DCONFIG_AP
826 1.1 christos OBJS += ap.o
827 1.1 christos CFLAGS += -DCONFIG_NO_RADIUS
828 1.1 christos CFLAGS += -DCONFIG_NO_ACCOUNTING
829 1.1 christos CFLAGS += -DCONFIG_NO_VLAN
830 1.1 christos OBJS += ../src/ap/hostapd.o
831 1.1 christos OBJS += ../src/ap/wpa_auth_glue.o
832 1.1 christos OBJS += ../src/ap/utils.o
833 1.1 christos OBJS += ../src/ap/authsrv.o
834 1.1 christos OBJS += ../src/ap/ap_config.o
835 1.1 christos OBJS += ../src/utils/ip_addr.o
836 1.1 christos OBJS += ../src/ap/sta_info.o
837 1.1 christos OBJS += ../src/ap/tkip_countermeasures.o
838 1.1 christos OBJS += ../src/ap/ap_mlme.o
839 1.1 christos OBJS += ../src/ap/ieee802_1x.o
840 1.1 christos OBJS += ../src/eapol_auth/eapol_auth_sm.o
841 1.1 christos OBJS += ../src/ap/ieee802_11_auth.o
842 1.2 roy OBJS += ../src/ap/ieee802_11_shared.o
843 1.1 christos OBJS += ../src/ap/drv_callbacks.o
844 1.1 christos OBJS += ../src/ap/ap_drv_ops.o
845 1.2 roy OBJS += ../src/ap/beacon.o
846 1.2 roy OBJS += ../src/ap/bss_load.o
847 1.2 roy OBJS += ../src/ap/eap_user_db.o
848 1.3 christos OBJS += ../src/ap/neighbor_db.o
849 1.3 christos OBJS += ../src/ap/rrm.o
850 1.2 roy ifdef CONFIG_IEEE80211N
851 1.2 roy OBJS += ../src/ap/ieee802_11_ht.o
852 1.2 roy ifdef CONFIG_IEEE80211AC
853 1.2 roy OBJS += ../src/ap/ieee802_11_vht.o
854 1.2 roy endif
855 1.2 roy endif
856 1.2 roy ifdef CONFIG_WNM
857 1.2 roy OBJS += ../src/ap/wnm_ap.o
858 1.2 roy endif
859 1.3 christos ifdef CONFIG_MBO
860 1.3 christos OBJS += ../src/ap/mbo_ap.o
861 1.3 christos endif
862 1.1 christos ifdef CONFIG_CTRL_IFACE
863 1.1 christos OBJS += ../src/ap/ctrl_iface_ap.o
864 1.1 christos endif
865 1.1 christos
866 1.1 christos CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
867 1.1 christos OBJS += ../src/eap_server/eap_server.o
868 1.1 christos OBJS += ../src/eap_server/eap_server_identity.o
869 1.1 christos OBJS += ../src/eap_server/eap_server_methods.o
870 1.1 christos
871 1.1 christos ifdef CONFIG_IEEE80211N
872 1.1 christos CFLAGS += -DCONFIG_IEEE80211N
873 1.2 roy ifdef CONFIG_IEEE80211AC
874 1.2 roy CFLAGS += -DCONFIG_IEEE80211AC
875 1.2 roy endif
876 1.1 christos endif
877 1.1 christos
878 1.3 christos ifdef CONFIG_MBO
879 1.3 christos OBJS += mbo.o
880 1.3 christos CFLAGS += -DCONFIG_MBO
881 1.3 christos endif
882 1.3 christos
883 1.1 christos ifdef NEED_AP_MLME
884 1.1 christos OBJS += ../src/ap/wmm.o
885 1.1 christos OBJS += ../src/ap/ap_list.o
886 1.1 christos OBJS += ../src/ap/ieee802_11.o
887 1.1 christos OBJS += ../src/ap/hw_features.o
888 1.2 roy OBJS += ../src/ap/dfs.o
889 1.1 christos CFLAGS += -DNEED_AP_MLME
890 1.1 christos endif
891 1.1 christos ifdef CONFIG_WPS
892 1.1 christos CFLAGS += -DEAP_SERVER_WSC
893 1.1 christos OBJS += ../src/ap/wps_hostapd.o
894 1.1 christos OBJS += ../src/eap_server/eap_server_wsc.o
895 1.1 christos endif
896 1.2 roy ifdef CONFIG_INTERWORKING
897 1.2 roy OBJS += ../src/ap/gas_serv.o
898 1.2 roy endif
899 1.2 roy ifdef CONFIG_HS20
900 1.2 roy OBJS += ../src/ap/hs20.o
901 1.2 roy endif
902 1.1 christos endif
903 1.1 christos
904 1.1 christos ifdef NEED_RSN_AUTHENTICATOR
905 1.1 christos CFLAGS += -DCONFIG_NO_RADIUS
906 1.1 christos NEED_AES_WRAP=y
907 1.1 christos OBJS += ../src/ap/wpa_auth.o
908 1.1 christos OBJS += ../src/ap/wpa_auth_ie.o
909 1.1 christos OBJS += ../src/ap/pmksa_cache_auth.o
910 1.1 christos ifdef CONFIG_IEEE80211R
911 1.1 christos OBJS += ../src/ap/wpa_auth_ft.o
912 1.1 christos endif
913 1.1 christos ifdef CONFIG_PEERKEY
914 1.1 christos OBJS += ../src/ap/peerkey_auth.o
915 1.1 christos endif
916 1.1 christos endif
917 1.1 christos
918 1.3 christos ifdef CONFIG_ACS
919 1.3 christos CFLAGS += -DCONFIG_ACS
920 1.3 christos OBJS += ../src/ap/acs.o
921 1.3 christos LIBS += -lm
922 1.1 christos endif
923 1.1 christos
924 1.1 christos ifdef CONFIG_PCSC
925 1.1 christos # PC/SC interface for smartcards (USIM, GSM SIM)
926 1.1 christos CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
927 1.1 christos OBJS += ../src/utils/pcsc_funcs.o
928 1.1 christos # -lpthread may not be needed depending on how pcsc-lite was configured
929 1.1 christos ifdef CONFIG_NATIVE_WINDOWS
930 1.1 christos #Once MinGW gets support for WinScard, -lwinscard could be used instead of the
931 1.1 christos #dynamic symbol loading that is now used in pcsc_funcs.c
932 1.1 christos #LIBS += -lwinscard
933 1.1 christos else
934 1.3 christos ifdef CONFIG_OSX
935 1.3 christos LIBS += -framework PCSC
936 1.3 christos else
937 1.1 christos LIBS += -lpcsclite -lpthread
938 1.1 christos endif
939 1.1 christos endif
940 1.3 christos endif
941 1.1 christos
942 1.1 christos ifdef CONFIG_SIM_SIMULATOR
943 1.1 christos CFLAGS += -DCONFIG_SIM_SIMULATOR
944 1.1 christos NEED_MILENAGE=y
945 1.1 christos endif
946 1.1 christos
947 1.1 christos ifdef CONFIG_USIM_SIMULATOR
948 1.1 christos CFLAGS += -DCONFIG_USIM_SIMULATOR
949 1.1 christos NEED_MILENAGE=y
950 1.1 christos endif
951 1.1 christos
952 1.1 christos ifdef NEED_MILENAGE
953 1.1 christos OBJS += ../src/crypto/milenage.o
954 1.2 roy NEED_AES_ENCBLOCK=y
955 1.1 christos endif
956 1.1 christos
957 1.1 christos ifdef CONFIG_PKCS12
958 1.1 christos CFLAGS += -DPKCS12_FUNCS
959 1.1 christos endif
960 1.1 christos
961 1.1 christos ifdef CONFIG_SMARTCARD
962 1.1 christos CFLAGS += -DCONFIG_SMARTCARD
963 1.1 christos endif
964 1.1 christos
965 1.1 christos ifdef MS_FUNCS
966 1.1 christos OBJS += ../src/crypto/ms_funcs.o
967 1.1 christos NEED_DES=y
968 1.1 christos NEED_MD4=y
969 1.1 christos endif
970 1.1 christos
971 1.1 christos ifdef CHAP
972 1.1 christos OBJS += ../src/eap_common/chap.o
973 1.1 christos endif
974 1.1 christos
975 1.1 christos ifdef TLS_FUNCS
976 1.1 christos NEED_DES=y
977 1.1 christos # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
978 1.1 christos OBJS += ../src/eap_peer/eap_tls_common.o
979 1.2 roy ifndef CONFIG_FIPS
980 1.1 christos NEED_TLS_PRF=y
981 1.2 roy NEED_SHA1=y
982 1.2 roy NEED_MD5=y
983 1.2 roy endif
984 1.1 christos endif
985 1.1 christos
986 1.1 christos ifndef CONFIG_TLS
987 1.1 christos CONFIG_TLS=openssl
988 1.1 christos endif
989 1.1 christos
990 1.2 roy ifdef CONFIG_TLSV11
991 1.2 roy CFLAGS += -DCONFIG_TLSV11
992 1.2 roy endif
993 1.2 roy
994 1.2 roy ifdef CONFIG_TLSV12
995 1.2 roy CFLAGS += -DCONFIG_TLSV12
996 1.2 roy NEED_SHA256=y
997 1.2 roy endif
998 1.2 roy
999 1.1 christos ifeq ($(CONFIG_TLS), openssl)
1000 1.1 christos ifdef TLS_FUNCS
1001 1.1 christos CFLAGS += -DEAP_TLS_OPENSSL
1002 1.1 christos OBJS += ../src/crypto/tls_openssl.o
1003 1.3 christos OBJS += ../src/crypto/tls_openssl_ocsp.o
1004 1.1 christos LIBS += -lssl
1005 1.1 christos endif
1006 1.1 christos OBJS += ../src/crypto/crypto_openssl.o
1007 1.1 christos OBJS_p += ../src/crypto/crypto_openssl.o
1008 1.3 christos OBJS_priv += ../src/crypto/crypto_openssl.o
1009 1.1 christos ifdef NEED_FIPS186_2_PRF
1010 1.1 christos OBJS += ../src/crypto/fips_prf_openssl.o
1011 1.1 christos endif
1012 1.3 christos NEED_SHA256=y
1013 1.3 christos NEED_TLS_PRF_SHA256=y
1014 1.1 christos LIBS += -lcrypto
1015 1.1 christos LIBS_p += -lcrypto
1016 1.2 roy ifdef CONFIG_TLS_ADD_DL
1017 1.2 roy LIBS += -ldl
1018 1.2 roy LIBS_p += -ldl
1019 1.2 roy endif
1020 1.1 christos endif
1021 1.1 christos
1022 1.1 christos ifeq ($(CONFIG_TLS), gnutls)
1023 1.1 christos ifdef TLS_FUNCS
1024 1.1 christos OBJS += ../src/crypto/tls_gnutls.o
1025 1.1 christos LIBS += -lgnutls -lgpg-error
1026 1.1 christos endif
1027 1.1 christos OBJS += ../src/crypto/crypto_gnutls.o
1028 1.1 christos OBJS_p += ../src/crypto/crypto_gnutls.o
1029 1.3 christos OBJS_priv += ../src/crypto/crypto_gnutls.o
1030 1.1 christos ifdef NEED_FIPS186_2_PRF
1031 1.2 roy OBJS += ../src/crypto/fips_prf_internal.o
1032 1.2 roy SHA1OBJS += ../src/crypto/sha1-internal.o
1033 1.1 christos endif
1034 1.1 christos LIBS += -lgcrypt
1035 1.1 christos LIBS_p += -lgcrypt
1036 1.1 christos CONFIG_INTERNAL_SHA256=y
1037 1.1 christos CONFIG_INTERNAL_RC4=y
1038 1.1 christos CONFIG_INTERNAL_DH_GROUP5=y
1039 1.1 christos endif
1040 1.1 christos
1041 1.1 christos ifeq ($(CONFIG_TLS), internal)
1042 1.1 christos ifndef CONFIG_CRYPTO
1043 1.1 christos CONFIG_CRYPTO=internal
1044 1.1 christos endif
1045 1.1 christos ifdef TLS_FUNCS
1046 1.1 christos OBJS += ../src/crypto/crypto_internal-rsa.o
1047 1.1 christos OBJS += ../src/crypto/tls_internal.o
1048 1.1 christos OBJS += ../src/tls/tlsv1_common.o
1049 1.1 christos OBJS += ../src/tls/tlsv1_record.o
1050 1.1 christos OBJS += ../src/tls/tlsv1_cred.o
1051 1.1 christos OBJS += ../src/tls/tlsv1_client.o
1052 1.1 christos OBJS += ../src/tls/tlsv1_client_write.o
1053 1.1 christos OBJS += ../src/tls/tlsv1_client_read.o
1054 1.3 christos OBJS += ../src/tls/tlsv1_client_ocsp.o
1055 1.1 christos OBJS += ../src/tls/asn1.o
1056 1.1 christos OBJS += ../src/tls/rsa.o
1057 1.1 christos OBJS += ../src/tls/x509v3.o
1058 1.1 christos OBJS += ../src/tls/pkcs1.o
1059 1.1 christos OBJS += ../src/tls/pkcs5.o
1060 1.1 christos OBJS += ../src/tls/pkcs8.o
1061 1.1 christos NEED_SHA256=y
1062 1.1 christos NEED_BASE64=y
1063 1.1 christos NEED_TLS_PRF=y
1064 1.2 roy ifdef CONFIG_TLSV12
1065 1.2 roy NEED_TLS_PRF_SHA256=y
1066 1.2 roy endif
1067 1.1 christos NEED_MODEXP=y
1068 1.1 christos NEED_CIPHER=y
1069 1.1 christos CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1070 1.1 christos endif
1071 1.1 christos ifdef NEED_CIPHER
1072 1.1 christos NEED_DES=y
1073 1.1 christos OBJS += ../src/crypto/crypto_internal-cipher.o
1074 1.1 christos endif
1075 1.1 christos ifdef NEED_MODEXP
1076 1.1 christos OBJS += ../src/crypto/crypto_internal-modexp.o
1077 1.1 christos OBJS += ../src/tls/bignum.o
1078 1.1 christos endif
1079 1.1 christos ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1080 1.1 christos OBJS += ../src/crypto/crypto_libtomcrypt.o
1081 1.1 christos OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1082 1.1 christos LIBS += -ltomcrypt -ltfm
1083 1.1 christos LIBS_p += -ltomcrypt -ltfm
1084 1.1 christos CONFIG_INTERNAL_SHA256=y
1085 1.1 christos CONFIG_INTERNAL_RC4=y
1086 1.1 christos CONFIG_INTERNAL_DH_GROUP5=y
1087 1.1 christos endif
1088 1.1 christos ifeq ($(CONFIG_CRYPTO), internal)
1089 1.1 christos OBJS += ../src/crypto/crypto_internal.o
1090 1.1 christos OBJS_p += ../src/crypto/crypto_internal.o
1091 1.1 christos NEED_AES_ENC=y
1092 1.1 christos CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1093 1.1 christos ifdef CONFIG_INTERNAL_LIBTOMMATH
1094 1.1 christos CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1095 1.1 christos ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1096 1.1 christos CFLAGS += -DLTM_FAST
1097 1.1 christos endif
1098 1.1 christos else
1099 1.1 christos LIBS += -ltommath
1100 1.1 christos LIBS_p += -ltommath
1101 1.1 christos endif
1102 1.1 christos CONFIG_INTERNAL_AES=y
1103 1.1 christos CONFIG_INTERNAL_DES=y
1104 1.1 christos CONFIG_INTERNAL_SHA1=y
1105 1.1 christos CONFIG_INTERNAL_MD4=y
1106 1.1 christos CONFIG_INTERNAL_MD5=y
1107 1.1 christos CONFIG_INTERNAL_SHA256=y
1108 1.3 christos CONFIG_INTERNAL_SHA384=y
1109 1.3 christos CONFIG_INTERNAL_SHA512=y
1110 1.1 christos CONFIG_INTERNAL_RC4=y
1111 1.1 christos CONFIG_INTERNAL_DH_GROUP5=y
1112 1.1 christos endif
1113 1.1 christos ifeq ($(CONFIG_CRYPTO), cryptoapi)
1114 1.1 christos OBJS += ../src/crypto/crypto_cryptoapi.o
1115 1.1 christos OBJS_p += ../src/crypto/crypto_cryptoapi.o
1116 1.1 christos CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1117 1.1 christos CONFIG_INTERNAL_SHA256=y
1118 1.1 christos CONFIG_INTERNAL_RC4=y
1119 1.1 christos endif
1120 1.1 christos endif
1121 1.1 christos
1122 1.1 christos ifeq ($(CONFIG_TLS), none)
1123 1.1 christos ifdef TLS_FUNCS
1124 1.1 christos OBJS += ../src/crypto/tls_none.o
1125 1.1 christos CFLAGS += -DEAP_TLS_NONE
1126 1.1 christos CONFIG_INTERNAL_AES=y
1127 1.1 christos CONFIG_INTERNAL_SHA1=y
1128 1.1 christos CONFIG_INTERNAL_MD5=y
1129 1.1 christos endif
1130 1.1 christos OBJS += ../src/crypto/crypto_none.o
1131 1.1 christos OBJS_p += ../src/crypto/crypto_none.o
1132 1.1 christos CONFIG_INTERNAL_SHA256=y
1133 1.1 christos CONFIG_INTERNAL_RC4=y
1134 1.1 christos endif
1135 1.1 christos
1136 1.1 christos ifdef TLS_FUNCS
1137 1.1 christos ifdef CONFIG_SMARTCARD
1138 1.1 christos ifndef CONFIG_NATIVE_WINDOWS
1139 1.1 christos ifneq ($(CONFIG_L2_PACKET), freebsd)
1140 1.1 christos LIBS += -ldl
1141 1.1 christos endif
1142 1.1 christos endif
1143 1.1 christos endif
1144 1.1 christos endif
1145 1.1 christos
1146 1.1 christos ifndef TLS_FUNCS
1147 1.1 christos OBJS += ../src/crypto/tls_none.o
1148 1.1 christos ifeq ($(CONFIG_TLS), internal)
1149 1.1 christos CONFIG_INTERNAL_AES=y
1150 1.1 christos CONFIG_INTERNAL_SHA1=y
1151 1.1 christos CONFIG_INTERNAL_MD5=y
1152 1.1 christos CONFIG_INTERNAL_RC4=y
1153 1.1 christos endif
1154 1.1 christos endif
1155 1.1 christos
1156 1.1 christos AESOBJS = # none so far (see below)
1157 1.1 christos ifdef CONFIG_INTERNAL_AES
1158 1.1 christos AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1159 1.1 christos endif
1160 1.1 christos
1161 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1162 1.3 christos NEED_INTERNAL_AES_WRAP=y
1163 1.3 christos endif
1164 1.3 christos ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1165 1.3 christos # Seems to be needed at least with BoringSSL
1166 1.3 christos NEED_INTERNAL_AES_WRAP=y
1167 1.3 christos CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1168 1.3 christos endif
1169 1.3 christos ifdef CONFIG_FIPS
1170 1.3 christos # Have to use internal AES key wrap routines to use OpenSSL EVP since the
1171 1.3 christos # OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1172 1.3 christos NEED_INTERNAL_AES_WRAP=y
1173 1.3 christos endif
1174 1.3 christos
1175 1.3 christos ifdef NEED_INTERNAL_AES_WRAP
1176 1.1 christos AESOBJS += ../src/crypto/aes-unwrap.o
1177 1.2 roy endif
1178 1.1 christos ifdef NEED_AES_EAX
1179 1.1 christos AESOBJS += ../src/crypto/aes-eax.o
1180 1.1 christos NEED_AES_CTR=y
1181 1.1 christos endif
1182 1.1 christos ifdef NEED_AES_CTR
1183 1.1 christos AESOBJS += ../src/crypto/aes-ctr.o
1184 1.1 christos endif
1185 1.1 christos ifdef NEED_AES_ENCBLOCK
1186 1.1 christos AESOBJS += ../src/crypto/aes-encblock.o
1187 1.1 christos endif
1188 1.1 christos ifdef NEED_AES_OMAC1
1189 1.1 christos NEED_AES_ENC=y
1190 1.2 roy ifdef CONFIG_OPENSSL_CMAC
1191 1.2 roy CFLAGS += -DCONFIG_OPENSSL_CMAC
1192 1.2 roy else
1193 1.1 christos AESOBJS += ../src/crypto/aes-omac1.o
1194 1.1 christos endif
1195 1.2 roy endif
1196 1.2 roy ifdef NEED_AES_SIV
1197 1.2 roy AESOBJS += ../src/crypto/aes-siv.o
1198 1.2 roy endif
1199 1.1 christos ifdef NEED_AES_WRAP
1200 1.1 christos NEED_AES_ENC=y
1201 1.3 christos ifdef NEED_INTERNAL_AES_WRAP
1202 1.1 christos AESOBJS += ../src/crypto/aes-wrap.o
1203 1.1 christos endif
1204 1.2 roy endif
1205 1.1 christos ifdef NEED_AES_CBC
1206 1.1 christos NEED_AES_ENC=y
1207 1.3 christos ifneq ($(CONFIG_TLS), openssl)
1208 1.1 christos AESOBJS += ../src/crypto/aes-cbc.o
1209 1.1 christos endif
1210 1.3 christos endif
1211 1.1 christos ifdef NEED_AES_ENC
1212 1.1 christos ifdef CONFIG_INTERNAL_AES
1213 1.1 christos AESOBJS += ../src/crypto/aes-internal-enc.o
1214 1.1 christos endif
1215 1.1 christos endif
1216 1.1 christos ifdef NEED_AES
1217 1.1 christos OBJS += $(AESOBJS)
1218 1.1 christos endif
1219 1.1 christos
1220 1.1 christos ifdef NEED_SHA1
1221 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1222 1.1 christos SHA1OBJS += ../src/crypto/sha1.o
1223 1.2 roy endif
1224 1.2 roy SHA1OBJS += ../src/crypto/sha1-prf.o
1225 1.1 christos ifdef CONFIG_INTERNAL_SHA1
1226 1.1 christos SHA1OBJS += ../src/crypto/sha1-internal.o
1227 1.1 christos ifdef NEED_FIPS186_2_PRF
1228 1.1 christos SHA1OBJS += ../src/crypto/fips_prf_internal.o
1229 1.1 christos endif
1230 1.1 christos endif
1231 1.2 roy ifdef CONFIG_NO_WPA_PASSPHRASE
1232 1.2 roy CFLAGS += -DCONFIG_NO_PBKDF2
1233 1.2 roy else
1234 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1235 1.1 christos SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1236 1.1 christos endif
1237 1.2 roy endif
1238 1.1 christos ifdef NEED_T_PRF
1239 1.1 christos SHA1OBJS += ../src/crypto/sha1-tprf.o
1240 1.1 christos endif
1241 1.1 christos ifdef NEED_TLS_PRF
1242 1.1 christos SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1243 1.1 christos endif
1244 1.1 christos endif
1245 1.1 christos
1246 1.2 roy ifndef CONFIG_FIPS
1247 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1248 1.2 roy MD5OBJS += ../src/crypto/md5.o
1249 1.2 roy endif
1250 1.2 roy endif
1251 1.1 christos ifdef NEED_MD5
1252 1.1 christos ifdef CONFIG_INTERNAL_MD5
1253 1.1 christos MD5OBJS += ../src/crypto/md5-internal.o
1254 1.1 christos endif
1255 1.1 christos OBJS += $(MD5OBJS)
1256 1.1 christos OBJS_p += $(MD5OBJS)
1257 1.3 christos OBJS_priv += $(MD5OBJS)
1258 1.1 christos endif
1259 1.1 christos
1260 1.1 christos ifdef NEED_MD4
1261 1.1 christos ifdef CONFIG_INTERNAL_MD4
1262 1.1 christos OBJS += ../src/crypto/md4-internal.o
1263 1.1 christos endif
1264 1.1 christos endif
1265 1.1 christos
1266 1.1 christos DESOBJS = # none needed when not internal
1267 1.1 christos ifdef NEED_DES
1268 1.1 christos ifdef CONFIG_INTERNAL_DES
1269 1.1 christos DESOBJS += ../src/crypto/des-internal.o
1270 1.1 christos endif
1271 1.1 christos endif
1272 1.1 christos
1273 1.3 christos ifdef CONFIG_NO_RC4
1274 1.3 christos CFLAGS += -DCONFIG_NO_RC4
1275 1.3 christos endif
1276 1.3 christos
1277 1.1 christos ifdef NEED_RC4
1278 1.1 christos ifdef CONFIG_INTERNAL_RC4
1279 1.3 christos ifndef CONFIG_NO_RC4
1280 1.1 christos OBJS += ../src/crypto/rc4.o
1281 1.1 christos endif
1282 1.1 christos endif
1283 1.3 christos endif
1284 1.1 christos
1285 1.1 christos SHA256OBJS = # none by default
1286 1.1 christos ifdef NEED_SHA256
1287 1.1 christos CFLAGS += -DCONFIG_SHA256
1288 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1289 1.1 christos SHA256OBJS += ../src/crypto/sha256.o
1290 1.2 roy endif
1291 1.2 roy SHA256OBJS += ../src/crypto/sha256-prf.o
1292 1.1 christos ifdef CONFIG_INTERNAL_SHA256
1293 1.1 christos SHA256OBJS += ../src/crypto/sha256-internal.o
1294 1.1 christos endif
1295 1.3 christos ifdef CONFIG_INTERNAL_SHA384
1296 1.3 christos CFLAGS += -DCONFIG_INTERNAL_SHA384
1297 1.3 christos SHA256OBJS += ../src/crypto/sha384-internal.o
1298 1.3 christos endif
1299 1.3 christos ifdef CONFIG_INTERNAL_SHA512
1300 1.3 christos CFLAGS += -DCONFIG_INTERNAL_SHA512
1301 1.3 christos SHA256OBJS += ../src/crypto/sha512-internal.o
1302 1.3 christos endif
1303 1.2 roy ifdef NEED_TLS_PRF_SHA256
1304 1.2 roy SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1305 1.2 roy endif
1306 1.2 roy ifdef NEED_HMAC_SHA256_KDF
1307 1.3 christos CFLAGS += -DCONFIG_HMAC_SHA256_KDF
1308 1.2 roy OBJS += ../src/crypto/sha256-kdf.o
1309 1.2 roy endif
1310 1.1 christos OBJS += $(SHA256OBJS)
1311 1.1 christos endif
1312 1.2 roy ifdef NEED_SHA384
1313 1.2 roy CFLAGS += -DCONFIG_SHA384
1314 1.3 christos OBJS += ../src/crypto/sha384-prf.o
1315 1.2 roy endif
1316 1.1 christos
1317 1.1 christos ifdef NEED_DH_GROUPS
1318 1.1 christos OBJS += ../src/crypto/dh_groups.o
1319 1.1 christos endif
1320 1.1 christos ifdef NEED_DH_GROUPS_ALL
1321 1.1 christos CFLAGS += -DALL_DH_GROUPS
1322 1.1 christos endif
1323 1.1 christos ifdef CONFIG_INTERNAL_DH_GROUP5
1324 1.1 christos ifdef NEED_DH_GROUPS
1325 1.1 christos OBJS += ../src/crypto/dh_group5.o
1326 1.1 christos endif
1327 1.1 christos endif
1328 1.1 christos
1329 1.2 roy ifdef NEED_ECC
1330 1.2 roy CFLAGS += -DCONFIG_ECC
1331 1.2 roy endif
1332 1.2 roy
1333 1.2 roy ifdef CONFIG_NO_RANDOM_POOL
1334 1.2 roy CFLAGS += -DCONFIG_NO_RANDOM_POOL
1335 1.2 roy else
1336 1.2 roy OBJS += ../src/crypto/random.o
1337 1.2 roy endif
1338 1.2 roy
1339 1.1 christos ifdef CONFIG_CTRL_IFACE
1340 1.1 christos ifeq ($(CONFIG_CTRL_IFACE), y)
1341 1.1 christos ifdef CONFIG_NATIVE_WINDOWS
1342 1.1 christos CONFIG_CTRL_IFACE=named_pipe
1343 1.1 christos else
1344 1.1 christos CONFIG_CTRL_IFACE=unix
1345 1.1 christos endif
1346 1.1 christos endif
1347 1.1 christos CFLAGS += -DCONFIG_CTRL_IFACE
1348 1.1 christos ifeq ($(CONFIG_CTRL_IFACE), unix)
1349 1.1 christos CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1350 1.3 christos OBJS += ../src/common/ctrl_iface_common.o
1351 1.1 christos endif
1352 1.1 christos ifeq ($(CONFIG_CTRL_IFACE), udp)
1353 1.1 christos CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1354 1.1 christos endif
1355 1.2 roy ifeq ($(CONFIG_CTRL_IFACE), udp6)
1356 1.2 roy CONFIG_CTRL_IFACE=udp
1357 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1358 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1359 1.2 roy endif
1360 1.1 christos ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1361 1.1 christos CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1362 1.1 christos endif
1363 1.2 roy ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1364 1.2 roy CONFIG_CTRL_IFACE=udp
1365 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1366 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1367 1.2 roy endif
1368 1.2 roy ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1369 1.2 roy CONFIG_CTRL_IFACE=udp
1370 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1371 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1372 1.2 roy CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1373 1.2 roy endif
1374 1.1 christos OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1375 1.1 christos endif
1376 1.1 christos
1377 1.1 christos ifdef CONFIG_CTRL_IFACE_DBUS
1378 1.1 christos DBUS=y
1379 1.1 christos DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1380 1.1 christos DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1381 1.1 christos ifdef CONFIG_WPS
1382 1.1 christos DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1383 1.1 christos endif
1384 1.1 christos DBUS_OBJS += dbus/dbus_dict_helpers.o
1385 1.1 christos ifndef DBUS_LIBS
1386 1.2 roy DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
1387 1.1 christos endif
1388 1.1 christos ifndef DBUS_INCLUDE
1389 1.2 roy DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
1390 1.1 christos endif
1391 1.1 christos DBUS_CFLAGS += $(DBUS_INCLUDE)
1392 1.3 christos DBUS_INTERFACE=fi.epitest.hostap.WPASupplicant
1393 1.1 christos endif
1394 1.1 christos
1395 1.1 christos ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1396 1.1 christos DBUS=y
1397 1.1 christos DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1398 1.1 christos DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1399 1.1 christos DBUS_OBJS += dbus/dbus_new_helpers.o
1400 1.1 christos DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1401 1.1 christos ifdef CONFIG_WPS
1402 1.1 christos DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1403 1.1 christos endif
1404 1.2 roy ifdef CONFIG_P2P
1405 1.2 roy DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1406 1.2 roy endif
1407 1.1 christos ifndef DBUS_LIBS
1408 1.2 roy DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
1409 1.1 christos endif
1410 1.1 christos ifndef DBUS_INCLUDE
1411 1.2 roy DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
1412 1.1 christos endif
1413 1.1 christos ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1414 1.1 christos DBUS_OBJS += dbus/dbus_new_introspect.o
1415 1.1 christos DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1416 1.1 christos endif
1417 1.1 christos DBUS_CFLAGS += $(DBUS_INCLUDE)
1418 1.3 christos DBUS_INTERFACE=fi.w1.wpa_supplicant1
1419 1.1 christos endif
1420 1.1 christos
1421 1.1 christos ifdef DBUS
1422 1.1 christos DBUS_CFLAGS += -DCONFIG_DBUS
1423 1.1 christos DBUS_OBJS += dbus/dbus_common.o
1424 1.1 christos endif
1425 1.1 christos
1426 1.1 christos OBJS += $(DBUS_OBJS)
1427 1.1 christos CFLAGS += $(DBUS_CFLAGS)
1428 1.1 christos LIBS += $(DBUS_LIBS)
1429 1.1 christos
1430 1.1 christos ifdef CONFIG_READLINE
1431 1.2 roy OBJS_c += ../src/utils/edit_readline.o
1432 1.3 christos LIBS_c += -lreadline -lncurses
1433 1.2 roy else
1434 1.2 roy ifdef CONFIG_WPA_CLI_EDIT
1435 1.2 roy OBJS_c += ../src/utils/edit.o
1436 1.2 roy else
1437 1.2 roy OBJS_c += ../src/utils/edit_simple.o
1438 1.2 roy endif
1439 1.1 christos endif
1440 1.1 christos
1441 1.1 christos ifdef CONFIG_NATIVE_WINDOWS
1442 1.1 christos CFLAGS += -DCONFIG_NATIVE_WINDOWS
1443 1.1 christos LIBS += -lws2_32 -lgdi32 -lcrypt32
1444 1.1 christos LIBS_c += -lws2_32
1445 1.1 christos LIBS_p += -lws2_32 -lgdi32
1446 1.1 christos ifeq ($(CONFIG_CRYPTO), cryptoapi)
1447 1.1 christos LIBS_p += -lcrypt32
1448 1.1 christos endif
1449 1.1 christos endif
1450 1.1 christos
1451 1.1 christos ifdef CONFIG_NO_STDOUT_DEBUG
1452 1.1 christos CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1453 1.1 christos ifndef CONFIG_CTRL_IFACE
1454 1.1 christos CFLAGS += -DCONFIG_NO_WPA_MSG
1455 1.1 christos endif
1456 1.1 christos endif
1457 1.1 christos
1458 1.1 christos ifdef CONFIG_IPV6
1459 1.1 christos # for eapol_test only
1460 1.1 christos CFLAGS += -DCONFIG_IPV6
1461 1.1 christos endif
1462 1.1 christos
1463 1.3 christos ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1464 1.3 christos CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1465 1.3 christos endif
1466 1.3 christos
1467 1.1 christos ifdef NEED_BASE64
1468 1.1 christos OBJS += ../src/utils/base64.o
1469 1.1 christos endif
1470 1.1 christos
1471 1.1 christos ifdef NEED_SME
1472 1.1 christos OBJS += sme.o
1473 1.1 christos CFLAGS += -DCONFIG_SME
1474 1.1 christos endif
1475 1.1 christos
1476 1.2 roy OBJS += ../src/common/ieee802_11_common.o
1477 1.2 roy OBJS += ../src/common/hw_features_common.o
1478 1.1 christos
1479 1.2 roy ifdef NEED_EAP_COMMON
1480 1.2 roy OBJS += ../src/eap_common/eap_common.o
1481 1.1 christos endif
1482 1.1 christos
1483 1.1 christos ifndef CONFIG_MAIN
1484 1.1 christos CONFIG_MAIN=main
1485 1.1 christos endif
1486 1.1 christos
1487 1.1 christos ifdef CONFIG_DEBUG_SYSLOG
1488 1.1 christos CFLAGS += -DCONFIG_DEBUG_SYSLOG
1489 1.2 roy ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1490 1.2 roy CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1491 1.2 roy endif
1492 1.2 roy endif
1493 1.2 roy
1494 1.2 roy ifdef CONFIG_DEBUG_LINUX_TRACING
1495 1.2 roy CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1496 1.1 christos endif
1497 1.1 christos
1498 1.1 christos ifdef CONFIG_DEBUG_FILE
1499 1.1 christos CFLAGS += -DCONFIG_DEBUG_FILE
1500 1.1 christos endif
1501 1.1 christos
1502 1.1 christos ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1503 1.1 christos CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1504 1.1 christos endif
1505 1.1 christos
1506 1.1 christos ifdef CONFIG_FIPS
1507 1.1 christos CFLAGS += -DCONFIG_FIPS
1508 1.2 roy ifneq ($(CONFIG_TLS), openssl)
1509 1.2 roy $(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1510 1.2 roy endif
1511 1.1 christos endif
1512 1.1 christos
1513 1.1 christos OBJS += $(SHA1OBJS) $(DESOBJS)
1514 1.1 christos
1515 1.1 christos OBJS_p += $(SHA1OBJS)
1516 1.2 roy OBJS_p += $(SHA256OBJS)
1517 1.3 christos OBJS_priv += $(SHA1OBJS)
1518 1.1 christos
1519 1.1 christos ifdef CONFIG_BGSCAN_SIMPLE
1520 1.1 christos CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1521 1.1 christos OBJS += bgscan_simple.o
1522 1.1 christos NEED_BGSCAN=y
1523 1.1 christos endif
1524 1.1 christos
1525 1.2 roy ifdef CONFIG_BGSCAN_LEARN
1526 1.2 roy CFLAGS += -DCONFIG_BGSCAN_LEARN
1527 1.2 roy OBJS += bgscan_learn.o
1528 1.2 roy NEED_BGSCAN=y
1529 1.2 roy endif
1530 1.2 roy
1531 1.1 christos ifdef NEED_BGSCAN
1532 1.1 christos CFLAGS += -DCONFIG_BGSCAN
1533 1.1 christos OBJS += bgscan.o
1534 1.1 christos endif
1535 1.1 christos
1536 1.2 roy ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1537 1.2 roy CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1538 1.2 roy OBJS += autoscan_exponential.o
1539 1.2 roy NEED_AUTOSCAN=y
1540 1.2 roy endif
1541 1.2 roy
1542 1.2 roy ifdef CONFIG_AUTOSCAN_PERIODIC
1543 1.2 roy CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1544 1.2 roy OBJS += autoscan_periodic.o
1545 1.2 roy NEED_AUTOSCAN=y
1546 1.2 roy endif
1547 1.2 roy
1548 1.2 roy ifdef NEED_AUTOSCAN
1549 1.2 roy CFLAGS += -DCONFIG_AUTOSCAN
1550 1.2 roy OBJS += autoscan.o
1551 1.2 roy endif
1552 1.2 roy
1553 1.2 roy ifdef CONFIG_EXT_PASSWORD_TEST
1554 1.2 roy OBJS += ../src/utils/ext_password_test.o
1555 1.2 roy CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1556 1.2 roy NEED_EXT_PASSWORD=y
1557 1.2 roy endif
1558 1.2 roy
1559 1.2 roy ifdef NEED_EXT_PASSWORD
1560 1.2 roy OBJS += ../src/utils/ext_password.o
1561 1.2 roy CFLAGS += -DCONFIG_EXT_PASSWORD
1562 1.2 roy endif
1563 1.2 roy
1564 1.2 roy ifdef NEED_GAS
1565 1.2 roy OBJS += ../src/common/gas.o
1566 1.2 roy OBJS += gas_query.o
1567 1.2 roy CFLAGS += -DCONFIG_GAS
1568 1.2 roy NEED_OFFCHANNEL=y
1569 1.2 roy endif
1570 1.2 roy
1571 1.2 roy ifdef NEED_OFFCHANNEL
1572 1.2 roy OBJS += offchannel.o
1573 1.2 roy CFLAGS += -DCONFIG_OFFCHANNEL
1574 1.2 roy endif
1575 1.2 roy
1576 1.2 roy ifdef CONFIG_MODULE_TESTS
1577 1.2 roy CFLAGS += -DCONFIG_MODULE_TESTS
1578 1.2 roy OBJS += wpas_module_tests.o
1579 1.2 roy OBJS += ../src/utils/utils_module_tests.o
1580 1.2 roy OBJS += ../src/common/common_module_tests.o
1581 1.2 roy OBJS += ../src/crypto/crypto_module_tests.o
1582 1.2 roy ifdef CONFIG_WPS
1583 1.2 roy OBJS += ../src/wps/wps_module_tests.o
1584 1.2 roy endif
1585 1.2 roy ifndef CONFIG_P2P
1586 1.2 roy OBJS += ../src/utils/bitfield.o
1587 1.2 roy endif
1588 1.2 roy endif
1589 1.2 roy
1590 1.2 roy OBJS += ../src/drivers/driver_common.o
1591 1.2 roy OBJS_priv += ../src/drivers/driver_common.o
1592 1.2 roy
1593 1.1 christos OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1594 1.1 christos OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1595 1.1 christos OBJS_t += ../src/radius/radius_client.o
1596 1.1 christos OBJS_t += ../src/radius/radius.o
1597 1.1 christos ifndef CONFIG_AP
1598 1.1 christos OBJS_t += ../src/utils/ip_addr.o
1599 1.1 christos endif
1600 1.1 christos OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
1601 1.2 roy
1602 1.2 roy OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1603 1.2 roy OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1604 1.2 roy
1605 1.1 christos OBJS += $(CONFIG_MAIN).o
1606 1.1 christos
1607 1.1 christos ifdef CONFIG_PRIVSEP
1608 1.1 christos OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1609 1.1 christos OBJS_priv += $(OBJS_l2)
1610 1.1 christos OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1611 1.1 christos OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1612 1.1 christos OBJS_priv += ../src/utils/common.o
1613 1.1 christos OBJS_priv += ../src/utils/wpa_debug.o
1614 1.1 christos OBJS_priv += ../src/utils/wpabuf.o
1615 1.1 christos OBJS_priv += wpa_priv.o
1616 1.2 roy ifdef CONFIG_DRIVER_NL80211
1617 1.2 roy OBJS_priv += ../src/common/ieee802_11_common.o
1618 1.1 christos endif
1619 1.1 christos OBJS += ../src/l2_packet/l2_packet_privsep.o
1620 1.1 christos OBJS += ../src/drivers/driver_privsep.o
1621 1.1 christos EXTRA_progs += wpa_priv
1622 1.1 christos else
1623 1.1 christos OBJS += $(OBJS_d) ../src/drivers/drivers.o
1624 1.1 christos OBJS += $(OBJS_l2)
1625 1.1 christos endif
1626 1.1 christos
1627 1.1 christos ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1628 1.1 christos CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1629 1.1 christos OBJS += ../src/drivers/ndis_events.o
1630 1.1 christos EXTRALIBS += -loleaut32 -lole32 -luuid
1631 1.1 christos ifdef PLATFORMSDKLIB
1632 1.1 christos EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1633 1.1 christos else
1634 1.1 christos EXTRALIBS += WbemUuid.Lib
1635 1.1 christos endif
1636 1.1 christos endif
1637 1.1 christos
1638 1.3 christos ifdef CONFIG_FST
1639 1.3 christos CFLAGS += -DCONFIG_FST
1640 1.3 christos ifdef CONFIG_FST_TEST
1641 1.3 christos CFLAGS += -DCONFIG_FST_TEST
1642 1.3 christos endif
1643 1.3 christos FST_OBJS += ../src/fst/fst.o
1644 1.3 christos FST_OBJS += ../src/fst/fst_session.o
1645 1.3 christos FST_OBJS += ../src/fst/fst_iface.o
1646 1.3 christos FST_OBJS += ../src/fst/fst_group.o
1647 1.3 christos FST_OBJS += ../src/fst/fst_ctrl_aux.o
1648 1.3 christos ifdef CONFIG_CTRL_IFACE
1649 1.3 christos FST_OBJS += ../src/fst/fst_ctrl_iface.o
1650 1.3 christos endif
1651 1.3 christos OBJS += $(FST_OBJS)
1652 1.3 christos OBJS_t += $(FST_OBJS)
1653 1.3 christos OBJS_t2 += $(FST_OBJS)
1654 1.3 christos OBJS_nfc += $(FST_OBJS)
1655 1.3 christos endif
1656 1.3 christos
1657 1.1 christos ifndef LDO
1658 1.1 christos LDO=$(CC)
1659 1.1 christos endif
1660 1.1 christos
1661 1.2 roy Q=@
1662 1.2 roy E=echo
1663 1.2 roy ifeq ($(V), 1)
1664 1.2 roy Q=
1665 1.2 roy E=true
1666 1.2 roy endif
1667 1.2 roy ifeq ($(QUIET), 1)
1668 1.2 roy Q=@
1669 1.2 roy E=true
1670 1.2 roy endif
1671 1.2 roy
1672 1.1 christos dynamic_eap_methods: $(EAPDYN)
1673 1.1 christos
1674 1.1 christos ../src/drivers/build.wpa_supplicant:
1675 1.1 christos @if [ -f ../src/drivers/build.hostapd ]; then \
1676 1.1 christos $(MAKE) -C ../src/drivers clean; \
1677 1.1 christos fi
1678 1.1 christos @touch ../src/drivers/build.wpa_supplicant
1679 1.1 christos
1680 1.1 christos BCHECK=../src/drivers/build.wpa_supplicant
1681 1.1 christos
1682 1.1 christos wpa_priv: $(BCHECK) $(OBJS_priv)
1683 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1684 1.2 roy @$(E) " LD " $@
1685 1.1 christos
1686 1.2 roy $(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1687 1.1 christos
1688 1.2 roy wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
1689 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1690 1.2 roy @$(E) " LD " $@
1691 1.2 roy
1692 1.2 roy eapol_test: $(OBJS_t)
1693 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1694 1.2 roy @$(E) " LD " $@
1695 1.2 roy
1696 1.2 roy preauth_test: $(OBJS_t2)
1697 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1698 1.2 roy @$(E) " LD " $@
1699 1.1 christos
1700 1.1 christos wpa_passphrase: $(OBJS_p)
1701 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1702 1.2 roy @$(E) " LD " $@
1703 1.1 christos
1704 1.1 christos wpa_cli: $(OBJS_c)
1705 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1706 1.2 roy @$(E) " LD " $@
1707 1.2 roy
1708 1.2 roy LIBCTRL += ../src/common/wpa_ctrl.o
1709 1.2 roy LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
1710 1.3 christos LIBCTRL += ../src/utils/common.o
1711 1.2 roy LIBCTRL += ../src/utils/wpa_debug.o
1712 1.3 christos LIBCTRLSO += ../src/common/wpa_ctrl.c
1713 1.3 christos LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
1714 1.3 christos LIBCTRLSO += ../src/utils/common.c
1715 1.3 christos LIBCTRLSO += ../src/utils/wpa_debug.c
1716 1.2 roy
1717 1.3 christos libwpa_client.a: $(LIBCTRL)
1718 1.2 roy $(Q)rm -f $@
1719 1.2 roy $(Q)$(AR) crs $@ $?
1720 1.2 roy @$(E) " AR " $@
1721 1.1 christos
1722 1.3 christos libwpa_client.so: $(LIBCTRLSO)
1723 1.3 christos @$(E) " CC $@ ($^)"
1724 1.3 christos $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1725 1.3 christos
1726 1.3 christos libwpa_test1: libwpa_test.o libwpa_client.a
1727 1.3 christos $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 libwpa_test.o libwpa_client.a $(LIBS_c)
1728 1.2 roy @$(E) " LD " $@
1729 1.1 christos
1730 1.3 christos libwpa_test2: libwpa_test.o libwpa_client.so
1731 1.3 christos $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 libwpa_test.o -L. -lwpa_client $(LIBS_c)
1732 1.2 roy @$(E) " LD " $@
1733 1.2 roy
1734 1.2 roy nfc_pw_token: $(OBJS_nfc)
1735 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1736 1.2 roy @$(E) " LD " $@
1737 1.1 christos
1738 1.1 christos win_if_list: win_if_list.c
1739 1.2 roy $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1740 1.2 roy @$(E) " LD " $@
1741 1.1 christos
1742 1.1 christos eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1743 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1744 1.1 christos -Deap_peer_psk_register=eap_peer_method_dynamic_init
1745 1.1 christos
1746 1.1 christos eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1747 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1748 1.1 christos -Deap_peer_pax_register=eap_peer_method_dynamic_init
1749 1.1 christos
1750 1.1 christos eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1751 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1752 1.1 christos -Deap_peer_sake_register=eap_peer_method_dynamic_init
1753 1.1 christos
1754 1.1 christos eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1755 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1756 1.1 christos -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1757 1.1 christos
1758 1.1 christos eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c
1759 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1760 1.1 christos -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1761 1.1 christos
1762 1.2 roy eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1763 1.2 roy $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1764 1.2 roy -Deap_peer_eke_register=eap_peer_method_dynamic_init
1765 1.2 roy
1766 1.1 christos %.so: %.c
1767 1.1 christos $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1768 1.1 christos -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1769 1.1 christos
1770 1.2 roy ifdef CONFIG_CODE_COVERAGE
1771 1.2 roy %.o: %.c
1772 1.2 roy @$(E) " CC " $<
1773 1.2 roy $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1774 1.2 roy else
1775 1.1 christos %.o: %.c
1776 1.1 christos $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1777 1.1 christos @$(E) " CC " $<
1778 1.2 roy endif
1779 1.2 roy
1780 1.2 roy %.service: %.service.in
1781 1.3 christos $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \
1782 1.3 christos -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@
1783 1.2 roy @$(E) " sed" $<
1784 1.2 roy
1785 1.2 roy %@.service: %.service.arg.in
1786 1.3 christos $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \
1787 1.3 christos -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@
1788 1.2 roy @$(E) " sed" $<
1789 1.1 christos
1790 1.1 christos wpa_supplicant.exe: wpa_supplicant
1791 1.1 christos mv -f $< $@
1792 1.1 christos wpa_cli.exe: wpa_cli
1793 1.1 christos mv -f $< $@
1794 1.1 christos wpa_passphrase.exe: wpa_passphrase
1795 1.1 christos mv -f $< $@
1796 1.1 christos win_if_list.exe: win_if_list
1797 1.1 christos mv -f $< $@
1798 1.1 christos eapol_test.exe: eapol_test
1799 1.1 christos mv -f $< $@
1800 1.1 christos
1801 1.1 christos WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1802 1.1 christos
1803 1.1 christos windows-bin: $(WINALL)
1804 1.1 christos $(STRIP) $(WINALL)
1805 1.1 christos
1806 1.2 roy wpa_gui:
1807 1.2 roy @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
1808 1.1 christos
1809 1.1 christos wpa_gui-qt4/Makefile:
1810 1.3 christos qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1811 1.1 christos
1812 1.1 christos wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1813 1.1 christos lrelease wpa_gui-qt4/wpa_gui.pro
1814 1.1 christos
1815 1.1 christos wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1816 1.1 christos $(MAKE) -C wpa_gui-qt4
1817 1.1 christos
1818 1.2 roy FIPSDIR=/usr/local/ssl/fips-2.0
1819 1.2 roy FIPSLD=$(FIPSDIR)/bin/fipsld
1820 1.2 roy fips:
1821 1.2 roy $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1822 1.2 roy
1823 1.2 roy lcov-html: wpa_supplicant.gcda
1824 1.2 roy lcov -c -d .. > lcov.info
1825 1.2 roy genhtml lcov.info --output-directory lcov-html
1826 1.2 roy
1827 1.1 christos clean:
1828 1.1 christos $(MAKE) -C ../src clean
1829 1.1 christos $(MAKE) -C dbus clean
1830 1.2 roy rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1831 1.2 roy rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
1832 1.1 christos rm -f wpa_priv
1833 1.2 roy rm -f nfc_pw_token
1834 1.2 roy rm -f lcov.info
1835 1.2 roy rm -rf lcov-html
1836 1.3 christos rm -f libwpa_client.a
1837 1.3 christos rm -f libwpa_client.so
1838 1.3 christos rm -f libwpa_test1 libwpa_test2
1839 1.1 christos
1840 1.1 christos -include $(OBJS:%.o=%.d)
1841