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