]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/Android.mk
Interworking: Fix failed GAS query processing
[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
bcb90f75
DS
182ifdef CONFIG_TDLS
183L_CFLAGS += -DCONFIG_TDLS
67e838fd 184OBJS += src/rsn_supp/tdls.c
bcb90f75
DS
185NEED_SHA256=y
186NEED_AES_OMAC1=y
187endif
188
ba3936d9
AN
189ifdef CONFIG_TDLS_TESTING
190L_CFLAGS += -DCONFIG_TDLS_TESTING
191endif
192
9fc6aa9f
DS
193ifdef CONFIG_PEERKEY
194L_CFLAGS += -DCONFIG_PEERKEY
195endif
196
197ifndef CONFIG_NO_WPA
198OBJS += src/rsn_supp/wpa.c
199OBJS += src/rsn_supp/preauth.c
200OBJS += src/rsn_supp/pmksa_cache.c
201OBJS += src/rsn_supp/peerkey.c
202OBJS += src/rsn_supp/wpa_ie.c
203OBJS += src/common/wpa_common.c
204NEED_AES=y
205NEED_SHA1=y
206NEED_MD5=y
207NEED_RC4=y
208else
209L_CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
210endif
211
212ifdef CONFIG_IBSS_RSN
213NEED_RSN_AUTHENTICATOR=y
214L_CFLAGS += -DCONFIG_IBSS_RSN
215OBJS += ibss_rsn.c
216endif
217
218ifdef CONFIG_P2P
219OBJS += p2p_supplicant.c
220OBJS += src/p2p/p2p.c
221OBJS += src/p2p/p2p_utils.c
222OBJS += src/p2p/p2p_parse.c
223OBJS += src/p2p/p2p_build.c
224OBJS += src/p2p/p2p_go_neg.c
225OBJS += src/p2p/p2p_sd.c
226OBJS += src/p2p/p2p_pd.c
227OBJS += src/p2p/p2p_invitation.c
228OBJS += src/p2p/p2p_dev_disc.c
229OBJS += src/p2p/p2p_group.c
230OBJS += src/ap/p2p_hostapd.c
231L_CFLAGS += -DCONFIG_P2P
67e838fd
JM
232NEED_GAS=y
233NEED_OFFCHANNEL=y
9fc6aa9f 234NEED_80211_COMMON=y
8271f14a
JM
235CONFIG_WPS=y
236CONFIG_AP=y
9fc6aa9f
DS
237ifdef CONFIG_P2P_STRICT
238L_CFLAGS += -DCONFIG_P2P_STRICT
239endif
240endif
241
55d834e1
JM
242ifdef CONFIG_WIFI_DISPLAY
243L_CFLAGS += -DCONFIG_WIFI_DISPLAY
244OBJS += wifi_display.c
245endif
246
43323e43
JM
247ifdef CONFIG_HS20
248OBJS += hs20_supplicant.c
249L_CFLAGS += -DCONFIG_HS20
250CONFIG_INTERWORKING=y
251endif
252
67e838fd
JM
253ifdef CONFIG_INTERWORKING
254OBJS += interworking.c
255L_CFLAGS += -DCONFIG_INTERWORKING
256NEED_GAS=y
257endif
258
9fc6aa9f
DS
259ifdef CONFIG_NO_WPA2
260L_CFLAGS += -DCONFIG_NO_WPA2
261endif
262
263include $(LOCAL_PATH)/src/drivers/drivers.mk
264
265ifdef CONFIG_AP
266OBJS_d += $(DRV_BOTH_OBJS)
267L_CFLAGS += $(DRV_BOTH_CFLAGS)
268LDFLAGS += $(DRV_BOTH_LDFLAGS)
269LIBS += $(DRV_BOTH_LIBS)
270else
271NEED_AP_MLME=
272OBJS_d += $(DRV_WPA_OBJS)
273L_CFLAGS += $(DRV_WPA_CFLAGS)
274LDFLAGS += $(DRV_WPA_LDFLAGS)
275LIBS += $(DRV_WPA_LIBS)
276endif
277
278ifndef CONFIG_L2_PACKET
279CONFIG_L2_PACKET=linux
280endif
281
282OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c
283
284ifeq ($(CONFIG_L2_PACKET), pcap)
285ifdef CONFIG_WINPCAP
286L_CFLAGS += -DCONFIG_WINPCAP
287LIBS += -lwpcap -lpacket
288LIBS_w += -lwpcap
289else
290LIBS += -ldnet -lpcap
291endif
292endif
293
294ifeq ($(CONFIG_L2_PACKET), winpcap)
295LIBS += -lwpcap -lpacket
296LIBS_w += -lwpcap
297endif
298
299ifeq ($(CONFIG_L2_PACKET), freebsd)
300LIBS += -lpcap
301endif
302
303ifdef CONFIG_EAP_TLS
304# EAP-TLS
305ifeq ($(CONFIG_EAP_TLS), dyn)
306L_CFLAGS += -DEAP_TLS_DYNAMIC
307EAPDYN += src/eap_peer/eap_tls.so
308else
309L_CFLAGS += -DEAP_TLS
310OBJS += src/eap_peer/eap_tls.c
311OBJS_h += src/eap_server/eap_server_tls.c
312endif
313TLS_FUNCS=y
314CONFIG_IEEE8021X_EAPOL=y
315endif
316
317ifdef CONFIG_EAP_PEAP
318# EAP-PEAP
319ifeq ($(CONFIG_EAP_PEAP), dyn)
320L_CFLAGS += -DEAP_PEAP_DYNAMIC
321EAPDYN += src/eap_peer/eap_peap.so
322else
323L_CFLAGS += -DEAP_PEAP
324OBJS += src/eap_peer/eap_peap.c
325OBJS += src/eap_common/eap_peap_common.c
326OBJS_h += src/eap_server/eap_server_peap.c
327endif
328TLS_FUNCS=y
329CONFIG_IEEE8021X_EAPOL=y
330endif
331
332ifdef CONFIG_EAP_TTLS
333# EAP-TTLS
334ifeq ($(CONFIG_EAP_TTLS), dyn)
335L_CFLAGS += -DEAP_TTLS_DYNAMIC
336EAPDYN += src/eap_peer/eap_ttls.so
337else
338L_CFLAGS += -DEAP_TTLS
339OBJS += src/eap_peer/eap_ttls.c
340OBJS_h += src/eap_server/eap_server_ttls.c
341endif
342MS_FUNCS=y
343TLS_FUNCS=y
344CHAP=y
345CONFIG_IEEE8021X_EAPOL=y
346endif
347
348ifdef CONFIG_EAP_MD5
349# EAP-MD5
350ifeq ($(CONFIG_EAP_MD5), dyn)
351L_CFLAGS += -DEAP_MD5_DYNAMIC
352EAPDYN += src/eap_peer/eap_md5.so
353else
354L_CFLAGS += -DEAP_MD5
355OBJS += src/eap_peer/eap_md5.c
356OBJS_h += src/eap_server/eap_server_md5.c
357endif
358CHAP=y
359CONFIG_IEEE8021X_EAPOL=y
360endif
361
362# backwards compatibility for old spelling
363ifdef CONFIG_MSCHAPV2
364ifndef CONFIG_EAP_MSCHAPV2
365CONFIG_EAP_MSCHAPV2=y
366endif
367endif
368
369ifdef CONFIG_EAP_MSCHAPV2
370# EAP-MSCHAPv2
371ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
372L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
373EAPDYN += src/eap_peer/eap_mschapv2.so
374EAPDYN += src/eap_peer/mschapv2.so
375else
376L_CFLAGS += -DEAP_MSCHAPv2
377OBJS += src/eap_peer/eap_mschapv2.c
378OBJS += src/eap_peer/mschapv2.c
379OBJS_h += src/eap_server/eap_server_mschapv2.c
380endif
381MS_FUNCS=y
382CONFIG_IEEE8021X_EAPOL=y
383endif
384
385ifdef CONFIG_EAP_GTC
386# EAP-GTC
387ifeq ($(CONFIG_EAP_GTC), dyn)
388L_CFLAGS += -DEAP_GTC_DYNAMIC
389EAPDYN += src/eap_peer/eap_gtc.so
390else
391L_CFLAGS += -DEAP_GTC
392OBJS += src/eap_peer/eap_gtc.c
393OBJS_h += src/eap_server/eap_server_gtc.c
394endif
395CONFIG_IEEE8021X_EAPOL=y
396endif
397
398ifdef CONFIG_EAP_OTP
399# EAP-OTP
400ifeq ($(CONFIG_EAP_OTP), dyn)
401L_CFLAGS += -DEAP_OTP_DYNAMIC
402EAPDYN += src/eap_peer/eap_otp.so
403else
404L_CFLAGS += -DEAP_OTP
405OBJS += src/eap_peer/eap_otp.c
406endif
407CONFIG_IEEE8021X_EAPOL=y
408endif
409
410ifdef CONFIG_EAP_SIM
411# EAP-SIM
412ifeq ($(CONFIG_EAP_SIM), dyn)
413L_CFLAGS += -DEAP_SIM_DYNAMIC
414EAPDYN += src/eap_peer/eap_sim.so
415else
416L_CFLAGS += -DEAP_SIM
417OBJS += src/eap_peer/eap_sim.c
418OBJS_h += src/eap_server/eap_server_sim.c
419endif
420CONFIG_IEEE8021X_EAPOL=y
421CONFIG_EAP_SIM_COMMON=y
422NEED_AES_CBC=y
423endif
424
425ifdef CONFIG_EAP_LEAP
426# EAP-LEAP
427ifeq ($(CONFIG_EAP_LEAP), dyn)
428L_CFLAGS += -DEAP_LEAP_DYNAMIC
429EAPDYN += src/eap_peer/eap_leap.so
430else
431L_CFLAGS += -DEAP_LEAP
432OBJS += src/eap_peer/eap_leap.c
433endif
434MS_FUNCS=y
435CONFIG_IEEE8021X_EAPOL=y
436endif
437
438ifdef CONFIG_EAP_PSK
439# EAP-PSK
440ifeq ($(CONFIG_EAP_PSK), dyn)
441L_CFLAGS += -DEAP_PSK_DYNAMIC
442EAPDYN += src/eap_peer/eap_psk.so
443else
444L_CFLAGS += -DEAP_PSK
445OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
446OBJS_h += src/eap_server/eap_server_psk.c
447endif
448CONFIG_IEEE8021X_EAPOL=y
449NEED_AES=y
450NEED_AES_OMAC1=y
451NEED_AES_ENCBLOCK=y
452NEED_AES_EAX=y
453endif
454
455ifdef CONFIG_EAP_AKA
456# EAP-AKA
457ifeq ($(CONFIG_EAP_AKA), dyn)
458L_CFLAGS += -DEAP_AKA_DYNAMIC
459EAPDYN += src/eap_peer/eap_aka.so
460else
461L_CFLAGS += -DEAP_AKA
462OBJS += src/eap_peer/eap_aka.c
463OBJS_h += src/eap_server/eap_server_aka.c
464endif
465CONFIG_IEEE8021X_EAPOL=y
466CONFIG_EAP_SIM_COMMON=y
467NEED_AES_CBC=y
468endif
469
470ifdef CONFIG_EAP_AKA_PRIME
471# EAP-AKA'
472ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
473L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
474else
475L_CFLAGS += -DEAP_AKA_PRIME
476endif
477NEED_SHA256=y
478endif
479
480ifdef CONFIG_EAP_SIM_COMMON
481OBJS += src/eap_common/eap_sim_common.c
482OBJS_h += src/eap_server/eap_sim_db.c
483NEED_AES=y
484NEED_FIPS186_2_PRF=y
485endif
486
487ifdef CONFIG_EAP_FAST
488# EAP-FAST
489ifeq ($(CONFIG_EAP_FAST), dyn)
490L_CFLAGS += -DEAP_FAST_DYNAMIC
491EAPDYN += src/eap_peer/eap_fast.so
492EAPDYN += src/eap_common/eap_fast_common.c
493else
494L_CFLAGS += -DEAP_FAST
495OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
496OBJS += src/eap_common/eap_fast_common.c
497OBJS_h += src/eap_server/eap_server_fast.c
498endif
499TLS_FUNCS=y
500CONFIG_IEEE8021X_EAPOL=y
501NEED_T_PRF=y
502endif
503
504ifdef CONFIG_EAP_PAX
505# EAP-PAX
506ifeq ($(CONFIG_EAP_PAX), dyn)
507L_CFLAGS += -DEAP_PAX_DYNAMIC
508EAPDYN += src/eap_peer/eap_pax.so
509else
510L_CFLAGS += -DEAP_PAX
511OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
512OBJS_h += src/eap_server/eap_server_pax.c
513endif
514CONFIG_IEEE8021X_EAPOL=y
515endif
516
517ifdef CONFIG_EAP_SAKE
518# EAP-SAKE
519ifeq ($(CONFIG_EAP_SAKE), dyn)
520L_CFLAGS += -DEAP_SAKE_DYNAMIC
521EAPDYN += src/eap_peer/eap_sake.so
522else
523L_CFLAGS += -DEAP_SAKE
524OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
525OBJS_h += src/eap_server/eap_server_sake.c
526endif
527CONFIG_IEEE8021X_EAPOL=y
528endif
529
530ifdef CONFIG_EAP_GPSK
531# EAP-GPSK
532ifeq ($(CONFIG_EAP_GPSK), dyn)
533L_CFLAGS += -DEAP_GPSK_DYNAMIC
534EAPDYN += src/eap_peer/eap_gpsk.so
535else
536L_CFLAGS += -DEAP_GPSK
537OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
538OBJS_h += src/eap_server/eap_server_gpsk.c
539endif
540CONFIG_IEEE8021X_EAPOL=y
541ifdef CONFIG_EAP_GPSK_SHA256
542L_CFLAGS += -DEAP_GPSK_SHA256
543endif
544NEED_SHA256=y
545NEED_AES_OMAC1=y
546endif
547
548ifdef CONFIG_EAP_PWD
549L_CFLAGS += -DEAP_PWD
550OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
551OBJS_h += src/eap_server/eap_pwd.c
552CONFIG_IEEE8021X_EAPOL=y
553NEED_SHA256=y
554endif
555
556ifdef CONFIG_WPS
557ifdef CONFIG_WPS2
558L_CFLAGS += -DCONFIG_WPS2
559endif
560
561# EAP-WSC
562L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
563OBJS += wps_supplicant.c
564OBJS += src/utils/uuid.c
565OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
566OBJS += src/wps/wps.c
567OBJS += src/wps/wps_common.c
568OBJS += src/wps/wps_attr_parse.c
569OBJS += src/wps/wps_attr_build.c
570OBJS += src/wps/wps_attr_process.c
571OBJS += src/wps/wps_dev_attr.c
572OBJS += src/wps/wps_enrollee.c
573OBJS += src/wps/wps_registrar.c
574OBJS_h += src/eap_server/eap_server_wsc.c
575CONFIG_IEEE8021X_EAPOL=y
576NEED_DH_GROUPS=y
577NEED_SHA256=y
578NEED_BASE64=y
579NEED_80211_COMMON=y
580NEED_AES_CBC=y
581NEED_MODEXP=y
582
583ifdef CONFIG_WPS_UFD
584L_CFLAGS += -DCONFIG_WPS_UFD
585OBJS += src/wps/wps_ufd.c
586NEED_WPS_OOB=y
587endif
588
589ifdef CONFIG_WPS_NFC
590L_CFLAGS += -DCONFIG_WPS_NFC
591OBJS += src/wps/ndef.c
592OBJS += src/wps/wps_nfc.c
593NEED_WPS_OOB=y
594ifdef CONFIG_WPS_NFC_PN531
595PN531_PATH ?= /usr/local/src/nfc
596L_CFLAGS += -DCONFIG_WPS_NFC_PN531
597L_CFLAGS += -I${PN531_PATH}/inc
598OBJS += src/wps/wps_nfc_pn531.c
599LIBS += ${PN531_PATH}/lib/wpsnfc.dll
600LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
601endif
602endif
603
604ifdef NEED_WPS_OOB
605L_CFLAGS += -DCONFIG_WPS_OOB
606endif
607
608ifdef CONFIG_WPS_ER
609CONFIG_WPS_UPNP=y
610L_CFLAGS += -DCONFIG_WPS_ER
611OBJS += src/wps/wps_er.c
612OBJS += src/wps/wps_er_ssdp.c
613endif
614
615ifdef CONFIG_WPS_UPNP
616L_CFLAGS += -DCONFIG_WPS_UPNP
617OBJS += src/wps/wps_upnp.c
618OBJS += src/wps/wps_upnp_ssdp.c
619OBJS += src/wps/wps_upnp_web.c
620OBJS += src/wps/wps_upnp_event.c
621OBJS += src/wps/wps_upnp_ap.c
622OBJS += src/wps/upnp_xml.c
623OBJS += src/wps/httpread.c
624OBJS += src/wps/http_client.c
625OBJS += src/wps/http_server.c
626endif
627
628ifdef CONFIG_WPS_STRICT
629L_CFLAGS += -DCONFIG_WPS_STRICT
630OBJS += src/wps/wps_validate.c
631endif
632
633ifdef CONFIG_WPS_TESTING
634L_CFLAGS += -DCONFIG_WPS_TESTING
635endif
636
637ifdef CONFIG_WPS_REG_DISABLE_OPEN
638L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
639endif
640
641endif
642
643ifdef CONFIG_EAP_IKEV2
644# EAP-IKEv2
645ifeq ($(CONFIG_EAP_IKEV2), dyn)
646L_CFLAGS += -DEAP_IKEV2_DYNAMIC
647EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
648EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
649else
650L_CFLAGS += -DEAP_IKEV2
651OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
652OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
653OBJS_h += src/eap_server/eap_server_ikev2.c
654OBJS_h += src/eap_server/ikev2.c
655endif
656CONFIG_IEEE8021X_EAPOL=y
657NEED_DH_GROUPS=y
658NEED_DH_GROUPS_ALL=y
659NEED_MODEXP=y
660NEED_CIPHER=y
661endif
662
663ifdef CONFIG_EAP_VENDOR_TEST
664ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
665L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
666EAPDYN += src/eap_peer/eap_vendor_test.so
667else
668L_CFLAGS += -DEAP_VENDOR_TEST
669OBJS += src/eap_peer/eap_vendor_test.c
670OBJS_h += src/eap_server/eap_server_vendor_test.c
671endif
672CONFIG_IEEE8021X_EAPOL=y
673endif
674
675ifdef CONFIG_EAP_TNC
676# EAP-TNC
677L_CFLAGS += -DEAP_TNC
678OBJS += src/eap_peer/eap_tnc.c
679OBJS += src/eap_peer/tncc.c
680OBJS_h += src/eap_server/eap_server_tnc.c
681OBJS_h += src/eap_server/tncs.c
682NEED_BASE64=y
683ifndef CONFIG_NATIVE_WINDOWS
684ifndef CONFIG_DRIVER_BSD
685LIBS += -ldl
686endif
687endif
688endif
689
690ifdef CONFIG_IEEE8021X_EAPOL
691# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
692L_CFLAGS += -DIEEE8021X_EAPOL
693OBJS += src/eapol_supp/eapol_supp_sm.c
694OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
695NEED_EAP_COMMON=y
696ifdef CONFIG_DYNAMIC_EAP_METHODS
697L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
698LIBS += -ldl -rdynamic
699endif
700endif
701
702ifdef CONFIG_AP
703NEED_80211_COMMON=y
704NEED_EAP_COMMON=y
705NEED_RSN_AUTHENTICATOR=y
706L_CFLAGS += -DCONFIG_AP
707OBJS += ap.c
708L_CFLAGS += -DCONFIG_NO_RADIUS
709L_CFLAGS += -DCONFIG_NO_ACCOUNTING
710L_CFLAGS += -DCONFIG_NO_VLAN
711OBJS += src/ap/hostapd.c
712OBJS += src/ap/wpa_auth_glue.c
713OBJS += src/ap/utils.c
714OBJS += src/ap/authsrv.c
715OBJS += src/ap/ap_config.c
716OBJS += src/utils/ip_addr.c
717OBJS += src/ap/sta_info.c
718OBJS += src/ap/tkip_countermeasures.c
719OBJS += src/ap/ap_mlme.c
720OBJS += src/ap/ieee802_1x.c
721OBJS += src/eapol_auth/eapol_auth_sm.c
722OBJS += src/ap/ieee802_11_auth.c
67e838fd 723OBJS += src/ap/ieee802_11_shared.c
9fc6aa9f
DS
724OBJS += src/ap/drv_callbacks.c
725OBJS += src/ap/ap_drv_ops.c
67e838fd 726OBJS += src/ap/beacon.c
9fc6aa9f
DS
727ifdef CONFIG_IEEE80211N
728OBJS += src/ap/ieee802_11_ht.c
729endif
730ifdef CONFIG_CTRL_IFACE
731OBJS += src/ap/ctrl_iface_ap.c
732endif
733
734L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
735OBJS += src/eap_server/eap_server.c
736OBJS += src/eap_server/eap_server_identity.c
737OBJS += src/eap_server/eap_server_methods.c
738
739ifdef CONFIG_IEEE80211N
740L_CFLAGS += -DCONFIG_IEEE80211N
741endif
742
743ifdef NEED_AP_MLME
9fc6aa9f
DS
744OBJS += src/ap/wmm.c
745OBJS += src/ap/ap_list.c
746OBJS += src/ap/ieee802_11.c
747OBJS += src/ap/hw_features.c
748L_CFLAGS += -DNEED_AP_MLME
749endif
750ifdef CONFIG_WPS
751L_CFLAGS += -DEAP_SERVER_WSC
752OBJS += src/ap/wps_hostapd.c
753OBJS += src/eap_server/eap_server_wsc.c
754endif
43323e43
JM
755ifdef CONFIG_INTERWORKING
756OBJS += src/ap/gas_serv.c
757endif
758ifdef CONFIG_HS20
759OBJS += src/ap/hs20.c
760endif
9fc6aa9f
DS
761endif
762
763ifdef NEED_RSN_AUTHENTICATOR
764L_CFLAGS += -DCONFIG_NO_RADIUS
765NEED_AES_WRAP=y
766OBJS += src/ap/wpa_auth.c
767OBJS += src/ap/wpa_auth_ie.c
768OBJS += src/ap/pmksa_cache_auth.c
769ifdef CONFIG_IEEE80211R
770OBJS += src/ap/wpa_auth_ft.c
771endif
772ifdef CONFIG_PEERKEY
773OBJS += src/ap/peerkey_auth.c
774endif
775endif
776
777ifdef CONFIG_EAP_SERVER
778L_CFLAGS += -DEAP_SERVER
779OBJS_h += src/eap_server/eap_server.c
780OBJS_h += src/eap_server/eap_server_identity.c
781OBJS_h += src/eap_server/eap_server_methods.c
782endif
783
784ifdef CONFIG_RADIUS_CLIENT
785OBJS_h += src/utils/ip_addr.c
786OBJS_h += src/radius/radius.c
787OBJS_h += src/radius/radius_client.c
788endif
789
790ifdef CONFIG_AUTHENTICATOR
791OBJS_h += src/eapol_auth/eapol_auth_sm.c
792OBJS_h += src/ap/ieee802_1x.c
793endif
794
795ifdef CONFIG_WPA_AUTHENTICATOR
796OBJS_h += src/ap/wpa_auth.c
797OBJS_h += src/ap/wpa_auth_ie.c
798OBJS_h += src/ap/pmksa_cache_auth.c
799ifdef CONFIG_IEEE80211R
800OBJS_h += src/ap/wpa_auth_ft.c
801endif
802ifdef CONFIG_PEERKEY
803OBJS_h += src/ap/peerkey_auth.c
804endif
805endif
806
807ifdef CONFIG_PCSC
808# PC/SC interface for smartcards (USIM, GSM SIM)
809L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
810OBJS += src/utils/pcsc_funcs.c
811# -lpthread may not be needed depending on how pcsc-lite was configured
812ifdef CONFIG_NATIVE_WINDOWS
813#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
814#dynamic symbol loading that is now used in pcsc_funcs.c
815#LIBS += -lwinscard
816else
817LIBS += -lpcsclite -lpthread
818endif
819endif
820
821ifdef CONFIG_SIM_SIMULATOR
822L_CFLAGS += -DCONFIG_SIM_SIMULATOR
823NEED_MILENAGE=y
824endif
825
826ifdef CONFIG_USIM_SIMULATOR
827L_CFLAGS += -DCONFIG_USIM_SIMULATOR
828NEED_MILENAGE=y
829endif
830
831ifdef NEED_MILENAGE
832OBJS += src/crypto/milenage.c
67e838fd 833NEED_AES_ENCBLOCK=y
9fc6aa9f
DS
834endif
835
836ifdef CONFIG_PKCS12
837L_CFLAGS += -DPKCS12_FUNCS
838endif
839
840ifdef CONFIG_SMARTCARD
841L_CFLAGS += -DCONFIG_SMARTCARD
842endif
843
844ifdef MS_FUNCS
845OBJS += src/crypto/ms_funcs.c
846NEED_DES=y
847NEED_MD4=y
848endif
849
850ifdef CHAP
851OBJS += src/eap_common/chap.c
852endif
853
854ifdef TLS_FUNCS
855NEED_DES=y
856# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
857OBJS += src/eap_peer/eap_tls_common.c
858OBJS_h += src/eap_server/eap_server_tls_common.c
859NEED_TLS_PRF=y
860endif
861
862ifndef CONFIG_TLS
863CONFIG_TLS=openssl
864endif
865
67e838fd
JM
866ifdef CONFIG_TLSV11
867L_CFLAGS += -DCONFIG_TLSV11
868endif
869
9fc6aa9f
DS
870ifeq ($(CONFIG_TLS), openssl)
871ifdef TLS_FUNCS
872L_CFLAGS += -DEAP_TLS_OPENSSL
873OBJS += src/crypto/tls_openssl.c
874LIBS += -lssl
875endif
876OBJS += src/crypto/crypto_openssl.c
877OBJS_p += src/crypto/crypto_openssl.c
878ifdef NEED_FIPS186_2_PRF
879OBJS += src/crypto/fips_prf_openssl.c
880endif
881LIBS += -lcrypto
882LIBS_p += -lcrypto
883endif
884
885ifeq ($(CONFIG_TLS), gnutls)
886ifdef TLS_FUNCS
887OBJS += src/crypto/tls_gnutls.c
888LIBS += -lgnutls -lgpg-error
9fc6aa9f
DS
889endif
890OBJS += src/crypto/crypto_gnutls.c
891OBJS_p += src/crypto/crypto_gnutls.c
892ifdef NEED_FIPS186_2_PRF
893OBJS += src/crypto/fips_prf_gnutls.c
894endif
895LIBS += -lgcrypt
896LIBS_p += -lgcrypt
897CONFIG_INTERNAL_SHA256=y
898CONFIG_INTERNAL_RC4=y
899CONFIG_INTERNAL_DH_GROUP5=y
900endif
901
902ifeq ($(CONFIG_TLS), schannel)
903ifdef TLS_FUNCS
904OBJS += src/crypto/tls_schannel.c
905endif
906OBJS += src/crypto/crypto_cryptoapi.c
907OBJS_p += src/crypto/crypto_cryptoapi.c
908ifdef NEED_FIPS186_2_PRF
909OBJS += src/crypto/fips_prf_cryptoapi.c
910endif
911CONFIG_INTERNAL_SHA256=y
912CONFIG_INTERNAL_RC4=y
913CONFIG_INTERNAL_DH_GROUP5=y
914endif
915
916ifeq ($(CONFIG_TLS), nss)
917ifdef TLS_FUNCS
918OBJS += src/crypto/tls_nss.c
919LIBS += -lssl3
920endif
921OBJS += src/crypto/crypto_nss.c
922OBJS_p += src/crypto/crypto_nss.c
923ifdef NEED_FIPS186_2_PRF
924OBJS += src/crypto/fips_prf_nss.c
925endif
926LIBS += -lnss3
927LIBS_p += -lnss3
928CONFIG_INTERNAL_MD4=y
929CONFIG_INTERNAL_DH_GROUP5=y
930endif
931
932ifeq ($(CONFIG_TLS), internal)
933ifndef CONFIG_CRYPTO
934CONFIG_CRYPTO=internal
935endif
936ifdef TLS_FUNCS
937OBJS += src/crypto/crypto_internal-rsa.c
938OBJS += src/crypto/tls_internal.c
939OBJS += src/tls/tlsv1_common.c
940OBJS += src/tls/tlsv1_record.c
941OBJS += src/tls/tlsv1_cred.c
942OBJS += src/tls/tlsv1_client.c
943OBJS += src/tls/tlsv1_client_write.c
944OBJS += src/tls/tlsv1_client_read.c
945OBJS += src/tls/asn1.c
946OBJS += src/tls/rsa.c
947OBJS += src/tls/x509v3.c
948OBJS += src/tls/pkcs1.c
949OBJS += src/tls/pkcs5.c
950OBJS += src/tls/pkcs8.c
951NEED_SHA256=y
952NEED_BASE64=y
953NEED_TLS_PRF=y
954NEED_MODEXP=y
955NEED_CIPHER=y
956L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
957endif
958ifdef NEED_CIPHER
959NEED_DES=y
960OBJS += src/crypto/crypto_internal-cipher.c
961endif
962ifdef NEED_MODEXP
963OBJS += src/crypto/crypto_internal-modexp.c
964OBJS += src/tls/bignum.c
965endif
966ifeq ($(CONFIG_CRYPTO), libtomcrypt)
967OBJS += src/crypto/crypto_libtomcrypt.c
968OBJS_p += src/crypto/crypto_libtomcrypt.c
969LIBS += -ltomcrypt -ltfm
970LIBS_p += -ltomcrypt -ltfm
971CONFIG_INTERNAL_SHA256=y
972CONFIG_INTERNAL_RC4=y
973CONFIG_INTERNAL_DH_GROUP5=y
974endif
975ifeq ($(CONFIG_CRYPTO), internal)
976OBJS += src/crypto/crypto_internal.c
977OBJS_p += src/crypto/crypto_internal.c
978NEED_AES_ENC=y
979L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
980ifdef CONFIG_INTERNAL_LIBTOMMATH
981L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
982ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
983L_CFLAGS += -DLTM_FAST
984endif
985else
986LIBS += -ltommath
987LIBS_p += -ltommath
988endif
989CONFIG_INTERNAL_AES=y
990CONFIG_INTERNAL_DES=y
991CONFIG_INTERNAL_SHA1=y
992CONFIG_INTERNAL_MD4=y
993CONFIG_INTERNAL_MD5=y
994CONFIG_INTERNAL_SHA256=y
995CONFIG_INTERNAL_RC4=y
996CONFIG_INTERNAL_DH_GROUP5=y
997endif
998ifeq ($(CONFIG_CRYPTO), cryptoapi)
999OBJS += src/crypto/crypto_cryptoapi.c
1000OBJS_p += src/crypto/crypto_cryptoapi.c
1001L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1002CONFIG_INTERNAL_SHA256=y
1003CONFIG_INTERNAL_RC4=y
1004endif
1005endif
1006
1007ifeq ($(CONFIG_TLS), none)
1008ifdef TLS_FUNCS
1009OBJS += src/crypto/tls_none.c
1010L_CFLAGS += -DEAP_TLS_NONE
1011CONFIG_INTERNAL_AES=y
1012CONFIG_INTERNAL_SHA1=y
1013CONFIG_INTERNAL_MD5=y
1014endif
1015OBJS += src/crypto/crypto_none.c
1016OBJS_p += src/crypto/crypto_none.c
1017CONFIG_INTERNAL_SHA256=y
1018CONFIG_INTERNAL_RC4=y
1019endif
1020
1021ifdef TLS_FUNCS
1022ifdef CONFIG_SMARTCARD
1023ifndef CONFIG_NATIVE_WINDOWS
1024ifneq ($(CONFIG_L2_PACKET), freebsd)
1025LIBS += -ldl
1026endif
1027endif
1028endif
1029endif
1030
1031ifndef TLS_FUNCS
1032OBJS += src/crypto/tls_none.c
1033ifeq ($(CONFIG_TLS), internal)
1034CONFIG_INTERNAL_AES=y
1035CONFIG_INTERNAL_SHA1=y
1036CONFIG_INTERNAL_MD5=y
1037CONFIG_INTERNAL_RC4=y
1038endif
1039endif
1040
1041AESOBJS = # none so far (see below)
1042ifdef CONFIG_INTERNAL_AES
1043AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
1044endif
1045
1046AESOBJS += src/crypto/aes-unwrap.c
1047ifdef NEED_AES_EAX
1048AESOBJS += src/crypto/aes-eax.c
1049NEED_AES_CTR=y
1050endif
1051ifdef NEED_AES_CTR
1052AESOBJS += src/crypto/aes-ctr.c
1053endif
1054ifdef NEED_AES_ENCBLOCK
1055AESOBJS += src/crypto/aes-encblock.c
1056endif
1057ifdef NEED_AES_OMAC1
1058NEED_AES_ENC=y
0b5e9855
JM
1059ifdef CONFIG_OPENSSL_CMAC
1060CFLAGS += -DCONFIG_OPENSSL_CMAC
1061else
9fc6aa9f
DS
1062AESOBJS += src/crypto/aes-omac1.c
1063endif
0b5e9855 1064endif
9fc6aa9f
DS
1065ifdef NEED_AES_WRAP
1066NEED_AES_ENC=y
1067AESOBJS += src/crypto/aes-wrap.c
1068endif
1069ifdef NEED_AES_CBC
1070NEED_AES_ENC=y
1071AESOBJS += src/crypto/aes-cbc.c
1072endif
1073ifdef NEED_AES_ENC
1074ifdef CONFIG_INTERNAL_AES
1075AESOBJS += src/crypto/aes-internal-enc.c
1076endif
1077endif
1078ifdef NEED_AES
1079OBJS += $(AESOBJS)
1080endif
1081
1082SHA1OBJS =
1083ifdef NEED_SHA1
030d062f 1084ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f 1085SHA1OBJS += src/crypto/sha1.c
030d062f 1086endif
d6150094 1087SHA1OBJS += src/crypto/sha1-prf.c
9fc6aa9f
DS
1088ifdef CONFIG_INTERNAL_SHA1
1089SHA1OBJS += src/crypto/sha1-internal.c
1090ifdef NEED_FIPS186_2_PRF
1091SHA1OBJS += src/crypto/fips_prf_internal.c
1092endif
1093endif
67e838fd
JM
1094ifdef CONFIG_NO_WPA_PASSPHRASE
1095L_CFLAGS += -DCONFIG_NO_PBKDF2
1096else
e40c86ad 1097ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f
DS
1098SHA1OBJS += src/crypto/sha1-pbkdf2.c
1099endif
e40c86ad 1100endif
9fc6aa9f
DS
1101ifdef NEED_T_PRF
1102SHA1OBJS += src/crypto/sha1-tprf.c
1103endif
1104ifdef NEED_TLS_PRF
1105SHA1OBJS += src/crypto/sha1-tlsprf.c
1106endif
1107endif
1108
1109MD5OBJS = src/crypto/md5.c
1110ifdef NEED_MD5
1111ifdef CONFIG_INTERNAL_MD5
1112MD5OBJS += src/crypto/md5-internal.c
1113endif
9fc6aa9f
DS
1114OBJS += $(MD5OBJS)
1115OBJS_p += $(MD5OBJS)
1116endif
1117
1118ifdef NEED_MD4
1119ifdef CONFIG_INTERNAL_MD4
1120OBJS += src/crypto/md4-internal.c
1121endif
1122endif
1123
1124DESOBJS = # none needed when not internal
1125ifdef NEED_DES
1126ifdef CONFIG_INTERNAL_DES
1127DESOBJS += src/crypto/des-internal.c
1128endif
1129endif
1130
1131ifdef NEED_RC4
1132ifdef CONFIG_INTERNAL_RC4
1133OBJS += src/crypto/rc4.c
1134endif
1135endif
1136
1137SHA256OBJS = # none by default
1138ifdef NEED_SHA256
1139L_CFLAGS += -DCONFIG_SHA256
26a37922 1140ifneq ($(CONFIG_TLS), openssl)
9fc6aa9f 1141SHA256OBJS += src/crypto/sha256.c
26a37922 1142endif
ab637dcb 1143SHA256OBJS += src/crypto/sha256-prf.c
9fc6aa9f
DS
1144ifdef CONFIG_INTERNAL_SHA256
1145SHA256OBJS += src/crypto/sha256-internal.c
1146endif
1147OBJS += $(SHA256OBJS)
1148endif
1149
1150ifdef NEED_DH_GROUPS
1151OBJS += src/crypto/dh_groups.c
1152endif
1153ifdef NEED_DH_GROUPS_ALL
1154L_CFLAGS += -DALL_DH_GROUPS
1155endif
1156ifdef CONFIG_INTERNAL_DH_GROUP5
1157ifdef NEED_DH_GROUPS
1158OBJS += src/crypto/dh_group5.c
1159endif
1160endif
1161
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)