]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/Android.mk
SAE: Maintain bignum of group order and prime in context data
[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
DS
10
11WPA_BUILD_SUPPLICANT := false
4482f1fb
JB
12ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),)
13 WPA_BUILD_SUPPLICANT := true
14 CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y
9fc6aa9f
DS
15endif
16
20b2161d
DS
17ifeq ($(WPA_BUILD_SUPPLICANT),true)
18
5db49892 19include $(LOCAL_PATH)/android.config
9fc6aa9f
DS
20
21# To ignore possible wrong network configurations
22L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
23
1e1411b0
DS
24L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\"
25
8f5b9aa1
DS
26# Set Android log name
27L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\"
28
e9af53ad
DS
29# Disable roaming in wpa_supplicant
30ifdef CONFIG_NO_ROAMING
31L_CFLAGS += -DCONFIG_NO_ROAMING
32endif
33
9fc6aa9f
DS
34# Use Android specific directory for control interface sockets
35L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\"
8e8f849f 36L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/wpa_supplicant\"
9fc6aa9f
DS
37
38# To force sizeof(enum) = 4
39ifeq ($(TARGET_ARCH),arm)
40L_CFLAGS += -mabi=aapcs-linux
41endif
42
43# To allow non-ASCII characters in SSID
44L_CFLAGS += -DWPA_UNICODE_SSID
45
46# OpenSSL is configured without engines on Android
47L_CFLAGS += -DOPENSSL_NO_ENGINE
48
49INCLUDES = $(LOCAL_PATH)
50INCLUDES += $(LOCAL_PATH)/src
51INCLUDES += $(LOCAL_PATH)/src/common
52# INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes
53INCLUDES += $(LOCAL_PATH)/src/drivers
54INCLUDES += $(LOCAL_PATH)/src/eap_common
55INCLUDES += $(LOCAL_PATH)/src/eapol_supp
56INCLUDES += $(LOCAL_PATH)/src/eap_peer
57INCLUDES += $(LOCAL_PATH)/src/eap_server
58INCLUDES += $(LOCAL_PATH)/src/hlr_auc_gw
59INCLUDES += $(LOCAL_PATH)/src/l2_packet
60INCLUDES += $(LOCAL_PATH)/src/radius
61INCLUDES += $(LOCAL_PATH)/src/rsn_supp
62INCLUDES += $(LOCAL_PATH)/src/tls
63INCLUDES += $(LOCAL_PATH)/src/utils
64INCLUDES += $(LOCAL_PATH)/src/wps
65INCLUDES += external/openssl/include
66INCLUDES += frameworks/base/cmds/keystore
50cfe0e1 67INCLUDES += system/security/keystore
9fc6aa9f 68ifdef CONFIG_DRIVER_NL80211
7cb03b0e 69INCLUDES += external/libnl-headers
9fc6aa9f
DS
70endif
71
982bafed
JM
72ifdef CONFIG_FIPS
73CONFIG_NO_RANDOM_POOL=
0b5e9855 74CONFIG_OPENSSL_CMAC=y
982bafed
JM
75endif
76
9fc6aa9f
DS
77OBJS = config.c
78OBJS += notify.c
79OBJS += bss.c
80OBJS += eap_register.c
81OBJS += src/utils/common.c
82OBJS += src/utils/wpa_debug.c
83OBJS += src/utils/wpabuf.c
84OBJS_p = wpa_passphrase.c
85OBJS_p += src/utils/common.c
86OBJS_p += src/utils/wpa_debug.c
87OBJS_p += src/utils/wpabuf.c
88OBJS_c = wpa_cli.c src/common/wpa_ctrl.c
89OBJS_c += src/utils/wpa_debug.c
a624f20b 90OBJS_c += src/utils/common.c
9fc6aa9f
DS
91OBJS_d =
92OBJS_priv =
93
94ifndef CONFIG_OS
95ifdef CONFIG_NATIVE_WINDOWS
96CONFIG_OS=win32
97else
98CONFIG_OS=unix
99endif
100endif
101
102ifeq ($(CONFIG_OS), internal)
103L_CFLAGS += -DOS_NO_C_LIB_DEFINES
104endif
105
106OBJS += src/utils/os_$(CONFIG_OS).c
107OBJS_p += src/utils/os_$(CONFIG_OS).c
108OBJS_c += src/utils/os_$(CONFIG_OS).c
109
110ifdef CONFIG_WPA_TRACE
111L_CFLAGS += -DWPA_TRACE
112OBJS += src/utils/trace.c
113OBJS_p += src/utils/trace.c
114OBJS_c += src/utils/trace.c
115LDFLAGS += -rdynamic
116L_CFLAGS += -funwind-tables
117ifdef CONFIG_WPA_TRACE_BFD
118L_CFLAGS += -DWPA_TRACE_BFD
119LIBS += -lbfd
120LIBS_p += -lbfd
121LIBS_c += -lbfd
122endif
123endif
124
125ifndef CONFIG_ELOOP
126CONFIG_ELOOP=eloop
127endif
128OBJS += src/utils/$(CONFIG_ELOOP).c
129OBJS_c += src/utils/$(CONFIG_ELOOP).c
130
131
132ifdef CONFIG_EAPOL_TEST
133L_CFLAGS += -Werror -DEAPOL_TEST
134endif
135
136ifndef CONFIG_BACKEND
137CONFIG_BACKEND=file
138endif
139
140ifeq ($(CONFIG_BACKEND), file)
141OBJS += config_file.c
142ifndef CONFIG_NO_CONFIG_BLOBS
143NEED_BASE64=y
144endif
145L_CFLAGS += -DCONFIG_BACKEND_FILE
146endif
147
148ifeq ($(CONFIG_BACKEND), winreg)
149OBJS += config_winreg.c
150endif
151
152ifeq ($(CONFIG_BACKEND), none)
153OBJS += config_none.c
154endif
155
156ifdef CONFIG_NO_CONFIG_WRITE
157L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE
158endif
159
160ifdef CONFIG_NO_CONFIG_BLOBS
161L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
162endif
163
164ifdef CONFIG_NO_SCAN_PROCESSING
165L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
166endif
167
168ifdef CONFIG_IEEE80211W
169L_CFLAGS += -DCONFIG_IEEE80211W
170NEED_SHA256=y
171NEED_AES_OMAC1=y
172endif
173
174ifdef CONFIG_IEEE80211R
175L_CFLAGS += -DCONFIG_IEEE80211R
176OBJS += src/rsn_supp/wpa_ft.c
177NEED_80211_COMMON=y
178NEED_SHA256=y
179NEED_AES_OMAC1=y
180endif
181
c10347f2
JM
182ifdef CONFIG_SAE
183L_CFLAGS += -DCONFIG_SAE
8e31e955 184OBJS += src/common/sae.c
aadabe70 185NEED_ECC=y
c10347f2
JM
186endif
187
bcb90f75
DS
188ifdef CONFIG_TDLS
189L_CFLAGS += -DCONFIG_TDLS
67e838fd 190OBJS += src/rsn_supp/tdls.c
bcb90f75
DS
191NEED_SHA256=y
192NEED_AES_OMAC1=y
193endif
194
ba3936d9
AN
195ifdef CONFIG_TDLS_TESTING
196L_CFLAGS += -DCONFIG_TDLS_TESTING
197endif
198
9fc6aa9f
DS
199ifdef CONFIG_PEERKEY
200L_CFLAGS += -DCONFIG_PEERKEY
201endif
202
203ifndef CONFIG_NO_WPA
204OBJS += src/rsn_supp/wpa.c
205OBJS += src/rsn_supp/preauth.c
206OBJS += src/rsn_supp/pmksa_cache.c
207OBJS += src/rsn_supp/peerkey.c
208OBJS += src/rsn_supp/wpa_ie.c
209OBJS += src/common/wpa_common.c
210NEED_AES=y
211NEED_SHA1=y
212NEED_MD5=y
213NEED_RC4=y
214else
215L_CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
216endif
217
218ifdef CONFIG_IBSS_RSN
219NEED_RSN_AUTHENTICATOR=y
220L_CFLAGS += -DCONFIG_IBSS_RSN
221OBJS += ibss_rsn.c
222endif
223
224ifdef CONFIG_P2P
225OBJS += p2p_supplicant.c
226OBJS += src/p2p/p2p.c
227OBJS += src/p2p/p2p_utils.c
228OBJS += src/p2p/p2p_parse.c
229OBJS += src/p2p/p2p_build.c
230OBJS += src/p2p/p2p_go_neg.c
231OBJS += src/p2p/p2p_sd.c
232OBJS += src/p2p/p2p_pd.c
233OBJS += src/p2p/p2p_invitation.c
234OBJS += src/p2p/p2p_dev_disc.c
235OBJS += src/p2p/p2p_group.c
236OBJS += src/ap/p2p_hostapd.c
237L_CFLAGS += -DCONFIG_P2P
67e838fd
JM
238NEED_GAS=y
239NEED_OFFCHANNEL=y
9fc6aa9f 240NEED_80211_COMMON=y
8271f14a
JM
241CONFIG_WPS=y
242CONFIG_AP=y
9fc6aa9f
DS
243ifdef CONFIG_P2P_STRICT
244L_CFLAGS += -DCONFIG_P2P_STRICT
245endif
246endif
247
55d834e1
JM
248ifdef CONFIG_WIFI_DISPLAY
249L_CFLAGS += -DCONFIG_WIFI_DISPLAY
250OBJS += wifi_display.c
251endif
252
43323e43
JM
253ifdef CONFIG_HS20
254OBJS += hs20_supplicant.c
255L_CFLAGS += -DCONFIG_HS20
256CONFIG_INTERWORKING=y
257endif
258
67e838fd
JM
259ifdef CONFIG_INTERWORKING
260OBJS += interworking.c
261L_CFLAGS += -DCONFIG_INTERWORKING
262NEED_GAS=y
263endif
264
9fc6aa9f
DS
265ifdef CONFIG_NO_WPA2
266L_CFLAGS += -DCONFIG_NO_WPA2
267endif
268
269include $(LOCAL_PATH)/src/drivers/drivers.mk
270
271ifdef CONFIG_AP
272OBJS_d += $(DRV_BOTH_OBJS)
273L_CFLAGS += $(DRV_BOTH_CFLAGS)
274LDFLAGS += $(DRV_BOTH_LDFLAGS)
275LIBS += $(DRV_BOTH_LIBS)
276else
277NEED_AP_MLME=
278OBJS_d += $(DRV_WPA_OBJS)
279L_CFLAGS += $(DRV_WPA_CFLAGS)
280LDFLAGS += $(DRV_WPA_LDFLAGS)
281LIBS += $(DRV_WPA_LIBS)
282endif
283
284ifndef CONFIG_L2_PACKET
285CONFIG_L2_PACKET=linux
286endif
287
288OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c
289
290ifeq ($(CONFIG_L2_PACKET), pcap)
291ifdef CONFIG_WINPCAP
292L_CFLAGS += -DCONFIG_WINPCAP
293LIBS += -lwpcap -lpacket
294LIBS_w += -lwpcap
295else
296LIBS += -ldnet -lpcap
297endif
298endif
299
300ifeq ($(CONFIG_L2_PACKET), winpcap)
301LIBS += -lwpcap -lpacket
302LIBS_w += -lwpcap
303endif
304
305ifeq ($(CONFIG_L2_PACKET), freebsd)
306LIBS += -lpcap
307endif
308
309ifdef CONFIG_EAP_TLS
310# EAP-TLS
311ifeq ($(CONFIG_EAP_TLS), dyn)
312L_CFLAGS += -DEAP_TLS_DYNAMIC
313EAPDYN += src/eap_peer/eap_tls.so
314else
315L_CFLAGS += -DEAP_TLS
316OBJS += src/eap_peer/eap_tls.c
317OBJS_h += src/eap_server/eap_server_tls.c
318endif
319TLS_FUNCS=y
320CONFIG_IEEE8021X_EAPOL=y
321endif
322
323ifdef CONFIG_EAP_PEAP
324# EAP-PEAP
325ifeq ($(CONFIG_EAP_PEAP), dyn)
326L_CFLAGS += -DEAP_PEAP_DYNAMIC
327EAPDYN += src/eap_peer/eap_peap.so
328else
329L_CFLAGS += -DEAP_PEAP
330OBJS += src/eap_peer/eap_peap.c
331OBJS += src/eap_common/eap_peap_common.c
332OBJS_h += src/eap_server/eap_server_peap.c
333endif
334TLS_FUNCS=y
335CONFIG_IEEE8021X_EAPOL=y
336endif
337
338ifdef CONFIG_EAP_TTLS
339# EAP-TTLS
340ifeq ($(CONFIG_EAP_TTLS), dyn)
341L_CFLAGS += -DEAP_TTLS_DYNAMIC
342EAPDYN += src/eap_peer/eap_ttls.so
343else
344L_CFLAGS += -DEAP_TTLS
345OBJS += src/eap_peer/eap_ttls.c
346OBJS_h += src/eap_server/eap_server_ttls.c
347endif
348MS_FUNCS=y
349TLS_FUNCS=y
350CHAP=y
351CONFIG_IEEE8021X_EAPOL=y
352endif
353
354ifdef CONFIG_EAP_MD5
355# EAP-MD5
356ifeq ($(CONFIG_EAP_MD5), dyn)
357L_CFLAGS += -DEAP_MD5_DYNAMIC
358EAPDYN += src/eap_peer/eap_md5.so
359else
360L_CFLAGS += -DEAP_MD5
361OBJS += src/eap_peer/eap_md5.c
362OBJS_h += src/eap_server/eap_server_md5.c
363endif
364CHAP=y
365CONFIG_IEEE8021X_EAPOL=y
366endif
367
368# backwards compatibility for old spelling
369ifdef CONFIG_MSCHAPV2
370ifndef CONFIG_EAP_MSCHAPV2
371CONFIG_EAP_MSCHAPV2=y
372endif
373endif
374
375ifdef CONFIG_EAP_MSCHAPV2
376# EAP-MSCHAPv2
377ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
378L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
379EAPDYN += src/eap_peer/eap_mschapv2.so
380EAPDYN += src/eap_peer/mschapv2.so
381else
382L_CFLAGS += -DEAP_MSCHAPv2
383OBJS += src/eap_peer/eap_mschapv2.c
384OBJS += src/eap_peer/mschapv2.c
385OBJS_h += src/eap_server/eap_server_mschapv2.c
386endif
387MS_FUNCS=y
388CONFIG_IEEE8021X_EAPOL=y
389endif
390
391ifdef CONFIG_EAP_GTC
392# EAP-GTC
393ifeq ($(CONFIG_EAP_GTC), dyn)
394L_CFLAGS += -DEAP_GTC_DYNAMIC
395EAPDYN += src/eap_peer/eap_gtc.so
396else
397L_CFLAGS += -DEAP_GTC
398OBJS += src/eap_peer/eap_gtc.c
399OBJS_h += src/eap_server/eap_server_gtc.c
400endif
401CONFIG_IEEE8021X_EAPOL=y
402endif
403
404ifdef CONFIG_EAP_OTP
405# EAP-OTP
406ifeq ($(CONFIG_EAP_OTP), dyn)
407L_CFLAGS += -DEAP_OTP_DYNAMIC
408EAPDYN += src/eap_peer/eap_otp.so
409else
410L_CFLAGS += -DEAP_OTP
411OBJS += src/eap_peer/eap_otp.c
412endif
413CONFIG_IEEE8021X_EAPOL=y
414endif
415
416ifdef CONFIG_EAP_SIM
417# EAP-SIM
418ifeq ($(CONFIG_EAP_SIM), dyn)
419L_CFLAGS += -DEAP_SIM_DYNAMIC
420EAPDYN += src/eap_peer/eap_sim.so
421else
422L_CFLAGS += -DEAP_SIM
423OBJS += src/eap_peer/eap_sim.c
424OBJS_h += src/eap_server/eap_server_sim.c
425endif
426CONFIG_IEEE8021X_EAPOL=y
427CONFIG_EAP_SIM_COMMON=y
428NEED_AES_CBC=y
429endif
430
431ifdef CONFIG_EAP_LEAP
432# EAP-LEAP
433ifeq ($(CONFIG_EAP_LEAP), dyn)
434L_CFLAGS += -DEAP_LEAP_DYNAMIC
435EAPDYN += src/eap_peer/eap_leap.so
436else
437L_CFLAGS += -DEAP_LEAP
438OBJS += src/eap_peer/eap_leap.c
439endif
440MS_FUNCS=y
441CONFIG_IEEE8021X_EAPOL=y
442endif
443
444ifdef CONFIG_EAP_PSK
445# EAP-PSK
446ifeq ($(CONFIG_EAP_PSK), dyn)
447L_CFLAGS += -DEAP_PSK_DYNAMIC
448EAPDYN += src/eap_peer/eap_psk.so
449else
450L_CFLAGS += -DEAP_PSK
451OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
452OBJS_h += src/eap_server/eap_server_psk.c
453endif
454CONFIG_IEEE8021X_EAPOL=y
455NEED_AES=y
456NEED_AES_OMAC1=y
457NEED_AES_ENCBLOCK=y
458NEED_AES_EAX=y
459endif
460
461ifdef CONFIG_EAP_AKA
462# EAP-AKA
463ifeq ($(CONFIG_EAP_AKA), dyn)
464L_CFLAGS += -DEAP_AKA_DYNAMIC
465EAPDYN += src/eap_peer/eap_aka.so
466else
467L_CFLAGS += -DEAP_AKA
468OBJS += src/eap_peer/eap_aka.c
469OBJS_h += src/eap_server/eap_server_aka.c
470endif
471CONFIG_IEEE8021X_EAPOL=y
472CONFIG_EAP_SIM_COMMON=y
473NEED_AES_CBC=y
474endif
475
476ifdef CONFIG_EAP_AKA_PRIME
477# EAP-AKA'
478ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
479L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
480else
481L_CFLAGS += -DEAP_AKA_PRIME
482endif
483NEED_SHA256=y
484endif
485
486ifdef CONFIG_EAP_SIM_COMMON
487OBJS += src/eap_common/eap_sim_common.c
488OBJS_h += src/eap_server/eap_sim_db.c
489NEED_AES=y
490NEED_FIPS186_2_PRF=y
491endif
492
493ifdef CONFIG_EAP_FAST
494# EAP-FAST
495ifeq ($(CONFIG_EAP_FAST), dyn)
496L_CFLAGS += -DEAP_FAST_DYNAMIC
497EAPDYN += src/eap_peer/eap_fast.so
498EAPDYN += src/eap_common/eap_fast_common.c
499else
500L_CFLAGS += -DEAP_FAST
501OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
502OBJS += src/eap_common/eap_fast_common.c
503OBJS_h += src/eap_server/eap_server_fast.c
504endif
505TLS_FUNCS=y
506CONFIG_IEEE8021X_EAPOL=y
507NEED_T_PRF=y
508endif
509
510ifdef CONFIG_EAP_PAX
511# EAP-PAX
512ifeq ($(CONFIG_EAP_PAX), dyn)
513L_CFLAGS += -DEAP_PAX_DYNAMIC
514EAPDYN += src/eap_peer/eap_pax.so
515else
516L_CFLAGS += -DEAP_PAX
517OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
518OBJS_h += src/eap_server/eap_server_pax.c
519endif
520CONFIG_IEEE8021X_EAPOL=y
521endif
522
523ifdef CONFIG_EAP_SAKE
524# EAP-SAKE
525ifeq ($(CONFIG_EAP_SAKE), dyn)
526L_CFLAGS += -DEAP_SAKE_DYNAMIC
527EAPDYN += src/eap_peer/eap_sake.so
528else
529L_CFLAGS += -DEAP_SAKE
530OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
531OBJS_h += src/eap_server/eap_server_sake.c
532endif
533CONFIG_IEEE8021X_EAPOL=y
534endif
535
536ifdef CONFIG_EAP_GPSK
537# EAP-GPSK
538ifeq ($(CONFIG_EAP_GPSK), dyn)
539L_CFLAGS += -DEAP_GPSK_DYNAMIC
540EAPDYN += src/eap_peer/eap_gpsk.so
541else
542L_CFLAGS += -DEAP_GPSK
543OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
544OBJS_h += src/eap_server/eap_server_gpsk.c
545endif
546CONFIG_IEEE8021X_EAPOL=y
547ifdef CONFIG_EAP_GPSK_SHA256
548L_CFLAGS += -DEAP_GPSK_SHA256
549endif
550NEED_SHA256=y
551NEED_AES_OMAC1=y
552endif
553
554ifdef CONFIG_EAP_PWD
555L_CFLAGS += -DEAP_PWD
556OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
557OBJS_h += src/eap_server/eap_pwd.c
558CONFIG_IEEE8021X_EAPOL=y
559NEED_SHA256=y
560endif
561
562ifdef CONFIG_WPS
563ifdef CONFIG_WPS2
564L_CFLAGS += -DCONFIG_WPS2
565endif
566
567# EAP-WSC
568L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
569OBJS += wps_supplicant.c
570OBJS += src/utils/uuid.c
571OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
572OBJS += src/wps/wps.c
573OBJS += src/wps/wps_common.c
574OBJS += src/wps/wps_attr_parse.c
575OBJS += src/wps/wps_attr_build.c
576OBJS += src/wps/wps_attr_process.c
577OBJS += src/wps/wps_dev_attr.c
578OBJS += src/wps/wps_enrollee.c
579OBJS += src/wps/wps_registrar.c
580OBJS_h += src/eap_server/eap_server_wsc.c
581CONFIG_IEEE8021X_EAPOL=y
582NEED_DH_GROUPS=y
583NEED_SHA256=y
584NEED_BASE64=y
585NEED_80211_COMMON=y
586NEED_AES_CBC=y
587NEED_MODEXP=y
588
9fc6aa9f
DS
589ifdef CONFIG_WPS_NFC
590L_CFLAGS += -DCONFIG_WPS_NFC
591OBJS += src/wps/ndef.c
9fc6aa9f 592NEED_WPS_OOB=y
9fc6aa9f
DS
593endif
594
595ifdef NEED_WPS_OOB
596L_CFLAGS += -DCONFIG_WPS_OOB
597endif
598
599ifdef CONFIG_WPS_ER
600CONFIG_WPS_UPNP=y
601L_CFLAGS += -DCONFIG_WPS_ER
602OBJS += src/wps/wps_er.c
603OBJS += src/wps/wps_er_ssdp.c
604endif
605
606ifdef CONFIG_WPS_UPNP
607L_CFLAGS += -DCONFIG_WPS_UPNP
608OBJS += src/wps/wps_upnp.c
609OBJS += src/wps/wps_upnp_ssdp.c
610OBJS += src/wps/wps_upnp_web.c
611OBJS += src/wps/wps_upnp_event.c
612OBJS += src/wps/wps_upnp_ap.c
613OBJS += src/wps/upnp_xml.c
614OBJS += src/wps/httpread.c
615OBJS += src/wps/http_client.c
616OBJS += src/wps/http_server.c
617endif
618
619ifdef CONFIG_WPS_STRICT
620L_CFLAGS += -DCONFIG_WPS_STRICT
621OBJS += src/wps/wps_validate.c
622endif
623
624ifdef CONFIG_WPS_TESTING
625L_CFLAGS += -DCONFIG_WPS_TESTING
626endif
627
628ifdef CONFIG_WPS_REG_DISABLE_OPEN
629L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
630endif
631
632endif
633
634ifdef CONFIG_EAP_IKEV2
635# EAP-IKEv2
636ifeq ($(CONFIG_EAP_IKEV2), dyn)
637L_CFLAGS += -DEAP_IKEV2_DYNAMIC
638EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
639EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
640else
641L_CFLAGS += -DEAP_IKEV2
642OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
643OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
644OBJS_h += src/eap_server/eap_server_ikev2.c
645OBJS_h += src/eap_server/ikev2.c
646endif
647CONFIG_IEEE8021X_EAPOL=y
648NEED_DH_GROUPS=y
649NEED_DH_GROUPS_ALL=y
650NEED_MODEXP=y
651NEED_CIPHER=y
652endif
653
654ifdef CONFIG_EAP_VENDOR_TEST
655ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
656L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
657EAPDYN += src/eap_peer/eap_vendor_test.so
658else
659L_CFLAGS += -DEAP_VENDOR_TEST
660OBJS += src/eap_peer/eap_vendor_test.c
661OBJS_h += src/eap_server/eap_server_vendor_test.c
662endif
663CONFIG_IEEE8021X_EAPOL=y
664endif
665
666ifdef CONFIG_EAP_TNC
667# EAP-TNC
668L_CFLAGS += -DEAP_TNC
669OBJS += src/eap_peer/eap_tnc.c
670OBJS += src/eap_peer/tncc.c
671OBJS_h += src/eap_server/eap_server_tnc.c
672OBJS_h += src/eap_server/tncs.c
673NEED_BASE64=y
674ifndef CONFIG_NATIVE_WINDOWS
675ifndef CONFIG_DRIVER_BSD
676LIBS += -ldl
677endif
678endif
679endif
680
681ifdef CONFIG_IEEE8021X_EAPOL
682# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
683L_CFLAGS += -DIEEE8021X_EAPOL
684OBJS += src/eapol_supp/eapol_supp_sm.c
685OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
686NEED_EAP_COMMON=y
687ifdef CONFIG_DYNAMIC_EAP_METHODS
688L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
689LIBS += -ldl -rdynamic
690endif
691endif
692
693ifdef CONFIG_AP
694NEED_80211_COMMON=y
695NEED_EAP_COMMON=y
696NEED_RSN_AUTHENTICATOR=y
697L_CFLAGS += -DCONFIG_AP
698OBJS += ap.c
699L_CFLAGS += -DCONFIG_NO_RADIUS
700L_CFLAGS += -DCONFIG_NO_ACCOUNTING
701L_CFLAGS += -DCONFIG_NO_VLAN
702OBJS += src/ap/hostapd.c
703OBJS += src/ap/wpa_auth_glue.c
704OBJS += src/ap/utils.c
705OBJS += src/ap/authsrv.c
706OBJS += src/ap/ap_config.c
707OBJS += src/utils/ip_addr.c
708OBJS += src/ap/sta_info.c
709OBJS += src/ap/tkip_countermeasures.c
710OBJS += src/ap/ap_mlme.c
711OBJS += src/ap/ieee802_1x.c
712OBJS += src/eapol_auth/eapol_auth_sm.c
713OBJS += src/ap/ieee802_11_auth.c
67e838fd 714OBJS += src/ap/ieee802_11_shared.c
9fc6aa9f
DS
715OBJS += src/ap/drv_callbacks.c
716OBJS += src/ap/ap_drv_ops.c
67e838fd 717OBJS += src/ap/beacon.c
16e38f2e 718OBJS += src/ap/eap_user_db.c
9fc6aa9f
DS
719ifdef CONFIG_IEEE80211N
720OBJS += src/ap/ieee802_11_ht.c
721endif
722ifdef CONFIG_CTRL_IFACE
723OBJS += src/ap/ctrl_iface_ap.c
724endif
725
726L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
727OBJS += src/eap_server/eap_server.c
728OBJS += src/eap_server/eap_server_identity.c
729OBJS += src/eap_server/eap_server_methods.c
730
731ifdef CONFIG_IEEE80211N
732L_CFLAGS += -DCONFIG_IEEE80211N
733endif
734
735ifdef NEED_AP_MLME
9fc6aa9f
DS
736OBJS += src/ap/wmm.c
737OBJS += src/ap/ap_list.c
738OBJS += src/ap/ieee802_11.c
739OBJS += src/ap/hw_features.c
740L_CFLAGS += -DNEED_AP_MLME
741endif
742ifdef CONFIG_WPS
743L_CFLAGS += -DEAP_SERVER_WSC
744OBJS += src/ap/wps_hostapd.c
745OBJS += src/eap_server/eap_server_wsc.c
746endif
43323e43
JM
747ifdef CONFIG_INTERWORKING
748OBJS += src/ap/gas_serv.c
749endif
750ifdef CONFIG_HS20
751OBJS += src/ap/hs20.c
752endif
9fc6aa9f
DS
753endif
754
755ifdef NEED_RSN_AUTHENTICATOR
756L_CFLAGS += -DCONFIG_NO_RADIUS
757NEED_AES_WRAP=y
758OBJS += src/ap/wpa_auth.c
759OBJS += src/ap/wpa_auth_ie.c
760OBJS += src/ap/pmksa_cache_auth.c
761ifdef CONFIG_IEEE80211R
762OBJS += src/ap/wpa_auth_ft.c
763endif
764ifdef CONFIG_PEERKEY
765OBJS += src/ap/peerkey_auth.c
766endif
767endif
768
769ifdef CONFIG_EAP_SERVER
770L_CFLAGS += -DEAP_SERVER
771OBJS_h += src/eap_server/eap_server.c
772OBJS_h += src/eap_server/eap_server_identity.c
773OBJS_h += src/eap_server/eap_server_methods.c
774endif
775
776ifdef CONFIG_RADIUS_CLIENT
777OBJS_h += src/utils/ip_addr.c
778OBJS_h += src/radius/radius.c
779OBJS_h += src/radius/radius_client.c
780endif
781
782ifdef CONFIG_AUTHENTICATOR
783OBJS_h += src/eapol_auth/eapol_auth_sm.c
784OBJS_h += src/ap/ieee802_1x.c
785endif
786
787ifdef CONFIG_WPA_AUTHENTICATOR
788OBJS_h += src/ap/wpa_auth.c
789OBJS_h += src/ap/wpa_auth_ie.c
790OBJS_h += src/ap/pmksa_cache_auth.c
791ifdef CONFIG_IEEE80211R
792OBJS_h += src/ap/wpa_auth_ft.c
793endif
794ifdef CONFIG_PEERKEY
795OBJS_h += src/ap/peerkey_auth.c
796endif
797endif
798
799ifdef CONFIG_PCSC
800# PC/SC interface for smartcards (USIM, GSM SIM)
801L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
802OBJS += src/utils/pcsc_funcs.c
803# -lpthread may not be needed depending on how pcsc-lite was configured
804ifdef CONFIG_NATIVE_WINDOWS
805#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
806#dynamic symbol loading that is now used in pcsc_funcs.c
807#LIBS += -lwinscard
808else
809LIBS += -lpcsclite -lpthread
810endif
811endif
812
813ifdef CONFIG_SIM_SIMULATOR
814L_CFLAGS += -DCONFIG_SIM_SIMULATOR
815NEED_MILENAGE=y
816endif
817
818ifdef CONFIG_USIM_SIMULATOR
819L_CFLAGS += -DCONFIG_USIM_SIMULATOR
820NEED_MILENAGE=y
821endif
822
823ifdef NEED_MILENAGE
824OBJS += src/crypto/milenage.c
67e838fd 825NEED_AES_ENCBLOCK=y
9fc6aa9f
DS
826endif
827
828ifdef CONFIG_PKCS12
829L_CFLAGS += -DPKCS12_FUNCS
830endif
831
832ifdef CONFIG_SMARTCARD
833L_CFLAGS += -DCONFIG_SMARTCARD
834endif
835
836ifdef MS_FUNCS
837OBJS += src/crypto/ms_funcs.c
838NEED_DES=y
839NEED_MD4=y
840endif
841
842ifdef CHAP
843OBJS += src/eap_common/chap.c
844endif
845
846ifdef TLS_FUNCS
847NEED_DES=y
848# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
849OBJS += src/eap_peer/eap_tls_common.c
850OBJS_h += src/eap_server/eap_server_tls_common.c
41014724 851ifndef CONFIG_FIPS
9fc6aa9f 852NEED_TLS_PRF=y
41014724
JM
853NEED_SHA1=y
854NEED_MD5=y
855endif
9fc6aa9f
DS
856endif
857
858ifndef CONFIG_TLS
859CONFIG_TLS=openssl
860endif
861
67e838fd
JM
862ifdef CONFIG_TLSV11
863L_CFLAGS += -DCONFIG_TLSV11
864endif
865
9fc6aa9f
DS
866ifeq ($(CONFIG_TLS), openssl)
867ifdef TLS_FUNCS
868L_CFLAGS += -DEAP_TLS_OPENSSL
869OBJS += src/crypto/tls_openssl.c
870LIBS += -lssl
871endif
872OBJS += src/crypto/crypto_openssl.c
873OBJS_p += src/crypto/crypto_openssl.c
874ifdef NEED_FIPS186_2_PRF
875OBJS += src/crypto/fips_prf_openssl.c
876endif
877LIBS += -lcrypto
878LIBS_p += -lcrypto
879endif
880
881ifeq ($(CONFIG_TLS), gnutls)
882ifdef TLS_FUNCS
883OBJS += src/crypto/tls_gnutls.c
884LIBS += -lgnutls -lgpg-error
9fc6aa9f
DS
885endif
886OBJS += src/crypto/crypto_gnutls.c
887OBJS_p += src/crypto/crypto_gnutls.c
888ifdef NEED_FIPS186_2_PRF
889OBJS += src/crypto/fips_prf_gnutls.c
890endif
891LIBS += -lgcrypt
892LIBS_p += -lgcrypt
893CONFIG_INTERNAL_SHA256=y
894CONFIG_INTERNAL_RC4=y
895CONFIG_INTERNAL_DH_GROUP5=y
896endif
897
898ifeq ($(CONFIG_TLS), schannel)
899ifdef TLS_FUNCS
900OBJS += src/crypto/tls_schannel.c
901endif
902OBJS += src/crypto/crypto_cryptoapi.c
903OBJS_p += src/crypto/crypto_cryptoapi.c
904ifdef NEED_FIPS186_2_PRF
905OBJS += src/crypto/fips_prf_cryptoapi.c
906endif
907CONFIG_INTERNAL_SHA256=y
908CONFIG_INTERNAL_RC4=y
909CONFIG_INTERNAL_DH_GROUP5=y
910endif
911
912ifeq ($(CONFIG_TLS), nss)
913ifdef TLS_FUNCS
914OBJS += src/crypto/tls_nss.c
915LIBS += -lssl3
916endif
917OBJS += src/crypto/crypto_nss.c
918OBJS_p += src/crypto/crypto_nss.c
919ifdef NEED_FIPS186_2_PRF
920OBJS += src/crypto/fips_prf_nss.c
921endif
922LIBS += -lnss3
923LIBS_p += -lnss3
924CONFIG_INTERNAL_MD4=y
925CONFIG_INTERNAL_DH_GROUP5=y
926endif
927
928ifeq ($(CONFIG_TLS), internal)
929ifndef CONFIG_CRYPTO
930CONFIG_CRYPTO=internal
931endif
932ifdef TLS_FUNCS
933OBJS += src/crypto/crypto_internal-rsa.c
934OBJS += src/crypto/tls_internal.c
935OBJS += src/tls/tlsv1_common.c
936OBJS += src/tls/tlsv1_record.c
937OBJS += src/tls/tlsv1_cred.c
938OBJS += src/tls/tlsv1_client.c
939OBJS += src/tls/tlsv1_client_write.c
940OBJS += src/tls/tlsv1_client_read.c
941OBJS += src/tls/asn1.c
942OBJS += src/tls/rsa.c
943OBJS += src/tls/x509v3.c
944OBJS += src/tls/pkcs1.c
945OBJS += src/tls/pkcs5.c
946OBJS += src/tls/pkcs8.c
947NEED_SHA256=y
948NEED_BASE64=y
949NEED_TLS_PRF=y
950NEED_MODEXP=y
951NEED_CIPHER=y
952L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
953endif
954ifdef NEED_CIPHER
955NEED_DES=y
956OBJS += src/crypto/crypto_internal-cipher.c
957endif
958ifdef NEED_MODEXP
959OBJS += src/crypto/crypto_internal-modexp.c
960OBJS += src/tls/bignum.c
961endif
962ifeq ($(CONFIG_CRYPTO), libtomcrypt)
963OBJS += src/crypto/crypto_libtomcrypt.c
964OBJS_p += src/crypto/crypto_libtomcrypt.c
965LIBS += -ltomcrypt -ltfm
966LIBS_p += -ltomcrypt -ltfm
967CONFIG_INTERNAL_SHA256=y
968CONFIG_INTERNAL_RC4=y
969CONFIG_INTERNAL_DH_GROUP5=y
970endif
971ifeq ($(CONFIG_CRYPTO), internal)
972OBJS += src/crypto/crypto_internal.c
973OBJS_p += src/crypto/crypto_internal.c
974NEED_AES_ENC=y
975L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
976ifdef CONFIG_INTERNAL_LIBTOMMATH
977L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
978ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
979L_CFLAGS += -DLTM_FAST
980endif
981else
982LIBS += -ltommath
983LIBS_p += -ltommath
984endif
985CONFIG_INTERNAL_AES=y
986CONFIG_INTERNAL_DES=y
987CONFIG_INTERNAL_SHA1=y
988CONFIG_INTERNAL_MD4=y
989CONFIG_INTERNAL_MD5=y
990CONFIG_INTERNAL_SHA256=y
991CONFIG_INTERNAL_RC4=y
992CONFIG_INTERNAL_DH_GROUP5=y
993endif
994ifeq ($(CONFIG_CRYPTO), cryptoapi)
995OBJS += src/crypto/crypto_cryptoapi.c
996OBJS_p += src/crypto/crypto_cryptoapi.c
997L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
998CONFIG_INTERNAL_SHA256=y
999CONFIG_INTERNAL_RC4=y
1000endif
1001endif
1002
1003ifeq ($(CONFIG_TLS), none)
1004ifdef TLS_FUNCS
1005OBJS += src/crypto/tls_none.c
1006L_CFLAGS += -DEAP_TLS_NONE
1007CONFIG_INTERNAL_AES=y
1008CONFIG_INTERNAL_SHA1=y
1009CONFIG_INTERNAL_MD5=y
1010endif
1011OBJS += src/crypto/crypto_none.c
1012OBJS_p += src/crypto/crypto_none.c
1013CONFIG_INTERNAL_SHA256=y
1014CONFIG_INTERNAL_RC4=y
1015endif
1016
1017ifdef TLS_FUNCS
1018ifdef CONFIG_SMARTCARD
1019ifndef CONFIG_NATIVE_WINDOWS
1020ifneq ($(CONFIG_L2_PACKET), freebsd)
1021LIBS += -ldl
1022endif
1023endif
1024endif
1025endif
1026
1027ifndef TLS_FUNCS
1028OBJS += src/crypto/tls_none.c
1029ifeq ($(CONFIG_TLS), internal)
1030CONFIG_INTERNAL_AES=y
1031CONFIG_INTERNAL_SHA1=y
1032CONFIG_INTERNAL_MD5=y
1033CONFIG_INTERNAL_RC4=y
1034endif
1035endif
1036
1037AESOBJS = # none so far (see below)
1038ifdef CONFIG_INTERNAL_AES
1039AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
1040endif
1041
1042AESOBJS += src/crypto/aes-unwrap.c
1043ifdef NEED_AES_EAX
1044AESOBJS += src/crypto/aes-eax.c
1045NEED_AES_CTR=y
1046endif
1047ifdef NEED_AES_CTR
1048AESOBJS += src/crypto/aes-ctr.c
1049endif
1050ifdef NEED_AES_ENCBLOCK
1051AESOBJS += src/crypto/aes-encblock.c
1052endif
1053ifdef NEED_AES_OMAC1
1054NEED_AES_ENC=y
0b5e9855
JM
1055ifdef CONFIG_OPENSSL_CMAC
1056CFLAGS += -DCONFIG_OPENSSL_CMAC
1057else
9fc6aa9f
DS
1058AESOBJS += src/crypto/aes-omac1.c
1059endif
0b5e9855 1060endif
9fc6aa9f
DS
1061ifdef NEED_AES_WRAP
1062NEED_AES_ENC=y
1063AESOBJS += src/crypto/aes-wrap.c
1064endif
1065ifdef NEED_AES_CBC
1066NEED_AES_ENC=y
1067AESOBJS += src/crypto/aes-cbc.c
1068endif
1069ifdef NEED_AES_ENC
1070ifdef CONFIG_INTERNAL_AES
1071AESOBJS += src/crypto/aes-internal-enc.c
1072endif
1073endif
1074ifdef NEED_AES
1075OBJS += $(AESOBJS)
1076endif
1077
1078SHA1OBJS =
1079ifdef NEED_SHA1
030d062f 1080ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f 1081SHA1OBJS += src/crypto/sha1.c
030d062f 1082endif
d6150094 1083SHA1OBJS += src/crypto/sha1-prf.c
9fc6aa9f
DS
1084ifdef CONFIG_INTERNAL_SHA1
1085SHA1OBJS += src/crypto/sha1-internal.c
1086ifdef NEED_FIPS186_2_PRF
1087SHA1OBJS += src/crypto/fips_prf_internal.c
1088endif
1089endif
67e838fd
JM
1090ifdef CONFIG_NO_WPA_PASSPHRASE
1091L_CFLAGS += -DCONFIG_NO_PBKDF2
1092else
e40c86ad 1093ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f
DS
1094SHA1OBJS += src/crypto/sha1-pbkdf2.c
1095endif
e40c86ad 1096endif
9fc6aa9f
DS
1097ifdef NEED_T_PRF
1098SHA1OBJS += src/crypto/sha1-tprf.c
1099endif
1100ifdef NEED_TLS_PRF
1101SHA1OBJS += src/crypto/sha1-tlsprf.c
1102endif
1103endif
1104
1105MD5OBJS = src/crypto/md5.c
1106ifdef NEED_MD5
1107ifdef CONFIG_INTERNAL_MD5
1108MD5OBJS += src/crypto/md5-internal.c
1109endif
9fc6aa9f
DS
1110OBJS += $(MD5OBJS)
1111OBJS_p += $(MD5OBJS)
1112endif
1113
1114ifdef NEED_MD4
1115ifdef CONFIG_INTERNAL_MD4
1116OBJS += src/crypto/md4-internal.c
1117endif
1118endif
1119
1120DESOBJS = # none needed when not internal
1121ifdef NEED_DES
1122ifdef CONFIG_INTERNAL_DES
1123DESOBJS += src/crypto/des-internal.c
1124endif
1125endif
1126
1127ifdef NEED_RC4
1128ifdef CONFIG_INTERNAL_RC4
1129OBJS += src/crypto/rc4.c
1130endif
1131endif
1132
1133SHA256OBJS = # none by default
1134ifdef NEED_SHA256
1135L_CFLAGS += -DCONFIG_SHA256
26a37922 1136ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f 1137SHA256OBJS += src/crypto/sha256.c
26a37922 1138endif
ab637dcb 1139SHA256OBJS += src/crypto/sha256-prf.c
9fc6aa9f
DS
1140ifdef CONFIG_INTERNAL_SHA256
1141SHA256OBJS += src/crypto/sha256-internal.c
1142endif
1143OBJS += $(SHA256OBJS)
1144endif
1145
1146ifdef NEED_DH_GROUPS
1147OBJS += src/crypto/dh_groups.c
1148endif
1149ifdef NEED_DH_GROUPS_ALL
1150L_CFLAGS += -DALL_DH_GROUPS
1151endif
1152ifdef CONFIG_INTERNAL_DH_GROUP5
1153ifdef NEED_DH_GROUPS
1154OBJS += src/crypto/dh_group5.c
1155endif
1156endif
1157
aadabe70
JM
1158ifdef NEED_ECC
1159L_CFLAGS += -DCONFIG_ECC
1160endif
1161
9fc6aa9f
DS
1162ifdef CONFIG_NO_RANDOM_POOL
1163L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
1164else
1165OBJS += src/crypto/random.c
1166endif
1167
1168ifdef CONFIG_CTRL_IFACE
1169ifeq ($(CONFIG_CTRL_IFACE), y)
1170ifdef CONFIG_NATIVE_WINDOWS
1171CONFIG_CTRL_IFACE=named_pipe
1172else
1173CONFIG_CTRL_IFACE=unix
1174endif
1175endif
1176L_CFLAGS += -DCONFIG_CTRL_IFACE
1177ifeq ($(CONFIG_CTRL_IFACE), unix)
1178L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1179endif
1180ifeq ($(CONFIG_CTRL_IFACE), udp)
1181L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1182endif
1183ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1184L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1185endif
afadf423
JD
1186ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1187CONFIG_CTRL_IFACE=udp
1188L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1189L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1190endif
9fc6aa9f
DS
1191OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c
1192endif
1193
1194ifdef CONFIG_CTRL_IFACE_DBUS
1195DBUS=y
1196DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1197DBUS_OBJS += dbus/dbus_old.c dbus/dbus_old_handlers.c
1198ifdef CONFIG_WPS
1199DBUS_OBJS += dbus/dbus_old_handlers_wps.c
1200endif
1201DBUS_OBJS += dbus/dbus_dict_helpers.c
1202ifndef DBUS_LIBS
572a171f 1203DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
9fc6aa9f
DS
1204endif
1205ifndef DBUS_INCLUDE
572a171f 1206DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
9fc6aa9f 1207endif
9fc6aa9f
DS
1208DBUS_CFLAGS += $(DBUS_INCLUDE)
1209endif
1210
1211ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1212DBUS=y
1213DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1214DBUS_OBJS ?= dbus/dbus_dict_helpers.c
1215DBUS_OBJS += dbus/dbus_new_helpers.c
1216DBUS_OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c
1217ifdef CONFIG_WPS
1218DBUS_OBJS += dbus/dbus_new_handlers_wps.c
1219endif
c8444330
JM
1220ifdef CONFIG_P2P
1221DBUS_OBJS += dbus/dbus_new_handlers_p2p.c
1222endif
9fc6aa9f 1223ifndef DBUS_LIBS
572a171f 1224DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
9fc6aa9f
DS
1225endif
1226ifndef DBUS_INCLUDE
572a171f 1227DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
9fc6aa9f
DS
1228endif
1229ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1230DBUS_OBJS += dbus/dbus_new_introspect.c
1231DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1232endif
1233DBUS_CFLAGS += $(DBUS_INCLUDE)
1234endif
1235
1236ifdef DBUS
1237DBUS_CFLAGS += -DCONFIG_DBUS
1238DBUS_OBJS += dbus/dbus_common.c
1239endif
1240
1241OBJS += $(DBUS_OBJS)
1242L_CFLAGS += $(DBUS_CFLAGS)
1243LIBS += $(DBUS_LIBS)
1244
1245ifdef CONFIG_READLINE
1246OBJS_c += src/utils/edit_readline.c
1247LIBS_c += -lncurses -lreadline
1248else
1249ifdef CONFIG_WPA_CLI_EDIT
1250OBJS_c += src/utils/edit.c
1251else
1252OBJS_c += src/utils/edit_simple.c
1253endif
1254endif
1255
1256ifdef CONFIG_NATIVE_WINDOWS
1257L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
1258LIBS += -lws2_32 -lgdi32 -lcrypt32
1259LIBS_c += -lws2_32
1260LIBS_p += -lws2_32 -lgdi32
1261ifeq ($(CONFIG_CRYPTO), cryptoapi)
1262LIBS_p += -lcrypt32
1263endif
1264endif
1265
1266ifdef CONFIG_NO_STDOUT_DEBUG
1267L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1268ifndef CONFIG_CTRL_IFACE
1269L_CFLAGS += -DCONFIG_NO_WPA_MSG
1270endif
1271endif
1272
1273ifdef CONFIG_ANDROID_LOG
1274L_CFLAGS += -DCONFIG_ANDROID_LOG
1275endif
1276
1277ifdef CONFIG_IPV6
1278# for eapol_test only
1279L_CFLAGS += -DCONFIG_IPV6
1280endif
1281
1282ifdef NEED_BASE64
1283OBJS += src/utils/base64.c
1284endif
1285
1286ifdef NEED_SME
1287NEED_80211_COMMON=y
1288OBJS += sme.c
1289L_CFLAGS += -DCONFIG_SME
1290endif
1291
9fc6aa9f
DS
1292ifdef NEED_80211_COMMON
1293OBJS += src/common/ieee802_11_common.c
1294endif
1295
1296ifdef NEED_EAP_COMMON
1297OBJS += src/eap_common/eap_common.c
1298endif
1299
1300ifndef CONFIG_MAIN
1301CONFIG_MAIN=main
1302endif
1303
1304ifdef CONFIG_DEBUG_SYSLOG
1305L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
67e838fd
JM
1306ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1307L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1308endif
9fc6aa9f
DS
1309endif
1310
1311ifdef CONFIG_DEBUG_FILE
1312L_CFLAGS += -DCONFIG_DEBUG_FILE
1313endif
1314
1315ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1316L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1317endif
1318
1319ifdef CONFIG_FIPS
1320L_CFLAGS += -DCONFIG_FIPS
1321endif
1322
1323OBJS += $(SHA1OBJS) $(DESOBJS)
1324
1325OBJS_p += $(SHA1OBJS)
1326
1327ifdef CONFIG_BGSCAN_SIMPLE
1328L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1329OBJS += bgscan_simple.c
1330NEED_BGSCAN=y
1331endif
1332
1333ifdef CONFIG_BGSCAN_LEARN
1334L_CFLAGS += -DCONFIG_BGSCAN_LEARN
1335OBJS += bgscan_learn.c
1336NEED_BGSCAN=y
1337endif
1338
1339ifdef NEED_BGSCAN
1340L_CFLAGS += -DCONFIG_BGSCAN
1341OBJS += bgscan.c
1342endif
1343
c0fba2b3
TB
1344ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1345L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1346OBJS += autoscan_exponential.c
1347NEED_AUTOSCAN=y
1348endif
1349
e3659c89
TB
1350ifdef CONFIG_AUTOSCAN_PERIODIC
1351CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1352OBJS += autoscan_periodic.c
1353NEED_AUTOSCAN=y
1354endif
1355
7c865c68
TB
1356ifdef NEED_AUTOSCAN
1357L_CFLAGS += -DCONFIG_AUTOSCAN
1358OBJS += autoscan.c
1359endif
1360
306ae225
JM
1361ifdef CONFIG_EXT_PASSWORD_TEST
1362OBJS += ../src/utils/ext_password_test.c
1363L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1364NEED_EXT_PASSWORD=y
1365endif
1366
1367ifdef NEED_EXT_PASSWORD
1368OBJS += ../src/utils/ext_password.c
1369L_CFLAGS += -DCONFIG_EXT_PASSWORD
1370endif
1371
67e838fd
JM
1372ifdef NEED_GAS
1373OBJS += ../src/common/gas.c
1374OBJS += gas_query.c
1375L_CFLAGS += -DCONFIG_GAS
1376NEED_OFFCHANNEL=y
1377endif
1378
1379ifdef NEED_OFFCHANNEL
1380OBJS += offchannel.c
1381L_CFLAGS += -DCONFIG_OFFCHANNEL
1382endif
1383
aea855d7
JM
1384OBJS += src/drivers/driver_common.c
1385
17fbb751 1386OBJS_wpa_rm := ctrl_iface.c ctrl_iface_unix.c
9fc6aa9f
DS
1387OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.c
1388ifdef CONFIG_AUTHENTICATOR
1389OBJS_wpa += tests/link_test.c
1390endif
1391OBJS_wpa += $(OBJS_l2)
1392OBJS += wpa_supplicant.c events.c blacklist.c wpas_glue.c scan.c
1393OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c
1394OBJS_t += src/radius/radius_client.c
1395OBJS_t += src/radius/radius.c
1396ifndef CONFIG_AP
1397OBJS_t += src/utils/ip_addr.c
1398endif
1399OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c
1400OBJS += $(CONFIG_MAIN).c
1401
1402ifdef CONFIG_PRIVSEP
1403OBJS_priv += $(OBJS_d) src/drivers/drivers.c
1404OBJS_priv += $(OBJS_l2)
1405OBJS_priv += src/utils/os_$(CONFIG_OS).c
1406OBJS_priv += src/utils/$(CONFIG_ELOOP).c
1407OBJS_priv += src/utils/common.c
1408OBJS_priv += src/utils/wpa_debug.c
1409OBJS_priv += src/utils/wpabuf.c
1410OBJS_priv += wpa_priv.c
1411ifdef CONFIG_DRIVER_TEST
1412OBJS_priv += $(SHA1OBJS)
1413OBJS_priv += $(MD5OBJS)
1414ifeq ($(CONFIG_TLS), openssl)
1415OBJS_priv += src/crypto/crypto_openssl.c
1416endif
1417ifeq ($(CONFIG_TLS), gnutls)
1418OBJS_priv += src/crypto/crypto_gnutls.c
1419endif
1420ifeq ($(CONFIG_TLS), nss)
1421OBJS_priv += src/crypto/crypto_nss.c
1422endif
1423ifeq ($(CONFIG_TLS), internal)
1424ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1425OBJS_priv += src/crypto/crypto_libtomcrypt.c
1426else
1427OBJS_priv += src/crypto/crypto_internal.c
1428endif
1429endif
1430endif # CONFIG_DRIVER_TEST
1431OBJS += src/l2_packet/l2_packet_privsep.c
1432OBJS += src/drivers/driver_privsep.c
1433EXTRA_progs += wpa_priv
1434else
1435OBJS += $(OBJS_d) src/drivers/drivers.c
1436OBJS += $(OBJS_l2)
1437endif
1438
1439ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1440L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1441OBJS += src/drivers/ndis_events.c
1442EXTRALIBS += -loleaut32 -lole32 -luuid
1443ifdef PLATFORMSDKLIB
1444EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1445else
1446EXTRALIBS += WbemUuid.Lib
1447endif
1448endif
1449
1450ifndef LDO
1451LDO=$(CC)
1452endif
1453
9fc6aa9f
DS
1454########################
1455
1456include $(CLEAR_VARS)
1457LOCAL_MODULE := wpa_cli
1458LOCAL_MODULE_TAGS := debug
1459LOCAL_SHARED_LIBRARIES := libc libcutils
1460LOCAL_CFLAGS := $(L_CFLAGS)
1461LOCAL_SRC_FILES := $(OBJS_c)
1462LOCAL_C_INCLUDES := $(INCLUDES)
1463include $(BUILD_EXECUTABLE)
1464
1465########################
1466include $(CLEAR_VARS)
1467LOCAL_MODULE := wpa_supplicant
1468ifdef CONFIG_DRIVER_CUSTOM
1469LOCAL_STATIC_LIBRARIES := libCustomWifi
1470endif
1471ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
1472LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)
1473endif
bf9d5518
JM
1474LOCAL_SHARED_LIBRARIES := libc libcutils
1475ifeq ($(CONFIG_TLS), openssl)
406edc84 1476LOCAL_SHARED_LIBRARIES += libcrypto libssl
bf9d5518 1477endif
9fc6aa9f 1478ifdef CONFIG_DRIVER_NL80211
7cb03b0e 1479LOCAL_STATIC_LIBRARIES += libnl_2
9fc6aa9f
DS
1480endif
1481LOCAL_CFLAGS := $(L_CFLAGS)
1482LOCAL_SRC_FILES := $(OBJS)
1483LOCAL_C_INCLUDES := $(INCLUDES)
1484include $(BUILD_EXECUTABLE)
1485
1486########################
1487#
1488#include $(CLEAR_VARS)
1489#LOCAL_MODULE := eapol_test
1490#ifdef CONFIG_DRIVER_CUSTOM
1491#LOCAL_STATIC_LIBRARIES := libCustomWifi
1492#endif
1493#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl
1494#LOCAL_CFLAGS := $(L_CFLAGS)
1495#LOCAL_SRC_FILES := $(OBJS_t)
1496#LOCAL_C_INCLUDES := $(INCLUDES)
1497#include $(BUILD_EXECUTABLE)
1498#
1499########################
1500#
1501#local_target_dir := $(TARGET_OUT)/etc/wifi
1502#
1503#include $(CLEAR_VARS)
1504#LOCAL_MODULE := wpa_supplicant.conf
1505#LOCAL_MODULE_TAGS := user
1506#LOCAL_MODULE_CLASS := ETC
1507#LOCAL_MODULE_PATH := $(local_target_dir)
1508#LOCAL_SRC_FILES := $(LOCAL_MODULE)
1509#include $(BUILD_PREBUILT)
1510#
1511########################
1512
1513endif # ifeq ($(WPA_BUILD_SUPPLICANT),true)
1514
1515include $(CLEAR_VARS)
1516LOCAL_MODULE = libwpa_client
1517LOCAL_CFLAGS = $(L_CFLAGS)
1518LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
1519LOCAL_C_INCLUDES = $(INCLUDES)
1520LOCAL_SHARED_LIBRARIES := libcutils
1521LOCAL_COPY_HEADERS_TO := libwpa_client
1522LOCAL_COPY_HEADERS := src/common/wpa_ctrl.h
1523include $(BUILD_SHARED_LIBRARY)