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