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