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