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