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