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