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