blob: 499eb732a48a852de84855843beda6ee782bca06 [file] [log] [blame]
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001#
2# Copyright (C) 2008 The Android Open Source Project
3#
Dmitry Shmidtc81d5b62012-05-14 13:35:02 -07004# This software may be distributed under the terms of the BSD license.
5# See README for more details.
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07006#
7
8LOCAL_PATH := $(call my-dir)
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07009PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070010
Jeff Brownbbda6272011-07-11 22:12:15 -070011ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),)
Jeff Brownbbda6272011-07-11 22:12:15 -070012 CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070013endif
14
Dmitry Shmidt7dd0f202012-02-21 16:49:00 -080015include $(LOCAL_PATH)/android.config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070016
17# To ignore possible wrong network configurations
18L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
19
Dmitry Shmidtea01dac2011-10-25 10:50:42 -070020L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\"
21
Dmitry Shmidt648b7492011-09-30 15:03:42 -070022# Set Android log name
23L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\"
24
Dmitry Shmidtf9bdef92014-04-25 10:46:36 -070025# Disable unused parameter warnings
26L_CFLAGS += -Wno-unused-parameter
27
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070028# Set Android extended P2P functionality
29L_CFLAGS += -DANDROID_P2P
Dmitry Shmidt41712582015-06-29 11:02:15 -070030
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070031ifeq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
Dmitry Shmidt41712582015-06-29 11:02:15 -070032L_CFLAGS += -DANDROID_LIB_STUB
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070033endif
34
Dmitry Shmidt006dedf2012-02-21 16:30:45 -080035# Disable roaming in wpa_supplicant
36ifdef CONFIG_NO_ROAMING
37L_CFLAGS += -DCONFIG_NO_ROAMING
38endif
39
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070040# Use Android specific directory for control interface sockets
41L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\"
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080042L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/misc/wifi/sockets\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070043
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -070044# Use Android specific directory for wpa_cli command completion history
45L_CFLAGS += -DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/misc/wifi\"
46
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070047# To force sizeof(enum) = 4
48ifeq ($(TARGET_ARCH),arm)
49L_CFLAGS += -mabi=aapcs-linux
50endif
51
Roshan Pius57ffbcf2016-09-27 09:12:46 -070052# C++ flags for hidl interface
Roshan Piusad7939e2016-12-06 16:48:59 -080053L_CPPFLAGS := -Wall -Werror
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070054# TODO: Remove these allowed warnings later.
55L_CPPFLAGS += -Wno-unused-variable -Wno-unused-parameter
56L_CPPFLAGS += -Wno-unused-private-field
57
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070058INCLUDES = $(LOCAL_PATH)
59INCLUDES += $(LOCAL_PATH)/src
60INCLUDES += $(LOCAL_PATH)/src/common
61# INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes
62INCLUDES += $(LOCAL_PATH)/src/drivers
63INCLUDES += $(LOCAL_PATH)/src/eap_common
64INCLUDES += $(LOCAL_PATH)/src/eapol_supp
65INCLUDES += $(LOCAL_PATH)/src/eap_peer
66INCLUDES += $(LOCAL_PATH)/src/eap_server
67INCLUDES += $(LOCAL_PATH)/src/hlr_auc_gw
68INCLUDES += $(LOCAL_PATH)/src/l2_packet
69INCLUDES += $(LOCAL_PATH)/src/radius
70INCLUDES += $(LOCAL_PATH)/src/rsn_supp
71INCLUDES += $(LOCAL_PATH)/src/tls
72INCLUDES += $(LOCAL_PATH)/src/utils
73INCLUDES += $(LOCAL_PATH)/src/wps
Dmitry Shmidtffd6bf92013-11-07 18:13:08 -080074INCLUDES += system/security/keystore/include
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070075ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -080076ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -080077INCLUDES += external/libnl/include
Dmitry Shmidtcd446452014-02-18 16:03:35 -080078else
79INCLUDES += external/libnl-headers
80endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070081endif
82
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070083ifdef CONFIG_FIPS
84CONFIG_NO_RANDOM_POOL=
85CONFIG_OPENSSL_CMAC=y
86endif
87
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070088OBJS = config.c
89OBJS += notify.c
90OBJS += bss.c
91OBJS += eap_register.c
92OBJS += src/utils/common.c
93OBJS += src/utils/wpa_debug.c
94OBJS += src/utils/wpabuf.c
Dmitry Shmidt29333592017-01-09 12:27:11 -080095OBJS += src/utils/bitfield.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -080096OBJS += wmm_ac.c
Dmitry Shmidt29333592017-01-09 12:27:11 -080097OBJS += op_classes.c
98OBJS += rrm.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070099OBJS_p = wpa_passphrase.c
100OBJS_p += src/utils/common.c
101OBJS_p += src/utils/wpa_debug.c
102OBJS_p += src/utils/wpabuf.c
103OBJS_c = wpa_cli.c src/common/wpa_ctrl.c
104OBJS_c += src/utils/wpa_debug.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800105OBJS_c += src/utils/common.c
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700106OBJS_c += src/common/cli.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700107OBJS_d =
108OBJS_priv =
109
110ifndef CONFIG_OS
111ifdef CONFIG_NATIVE_WINDOWS
112CONFIG_OS=win32
113else
114CONFIG_OS=unix
115endif
116endif
117
118ifeq ($(CONFIG_OS), internal)
119L_CFLAGS += -DOS_NO_C_LIB_DEFINES
120endif
121
122OBJS += src/utils/os_$(CONFIG_OS).c
123OBJS_p += src/utils/os_$(CONFIG_OS).c
124OBJS_c += src/utils/os_$(CONFIG_OS).c
125
126ifdef CONFIG_WPA_TRACE
127L_CFLAGS += -DWPA_TRACE
128OBJS += src/utils/trace.c
129OBJS_p += src/utils/trace.c
130OBJS_c += src/utils/trace.c
131LDFLAGS += -rdynamic
132L_CFLAGS += -funwind-tables
133ifdef CONFIG_WPA_TRACE_BFD
134L_CFLAGS += -DWPA_TRACE_BFD
135LIBS += -lbfd
136LIBS_p += -lbfd
137LIBS_c += -lbfd
138endif
139endif
140
141ifndef CONFIG_ELOOP
142CONFIG_ELOOP=eloop
143endif
144OBJS += src/utils/$(CONFIG_ELOOP).c
145OBJS_c += src/utils/$(CONFIG_ELOOP).c
146
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800147ifdef CONFIG_ELOOP_POLL
148L_CFLAGS += -DCONFIG_ELOOP_POLL
149endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700150
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700151ifdef CONFIG_ELOOP_EPOLL
152L_CFLAGS += -DCONFIG_ELOOP_EPOLL
153endif
154
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700155ifdef CONFIG_EAPOL_TEST
156L_CFLAGS += -Werror -DEAPOL_TEST
157endif
158
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800159ifdef CONFIG_HT_OVERRIDES
160L_CFLAGS += -DCONFIG_HT_OVERRIDES
161endif
162
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700163ifdef CONFIG_VHT_OVERRIDES
164L_CFLAGS += -DCONFIG_VHT_OVERRIDES
165endif
166
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700167ifndef CONFIG_BACKEND
168CONFIG_BACKEND=file
169endif
170
171ifeq ($(CONFIG_BACKEND), file)
172OBJS += config_file.c
173ifndef CONFIG_NO_CONFIG_BLOBS
174NEED_BASE64=y
175endif
176L_CFLAGS += -DCONFIG_BACKEND_FILE
177endif
178
179ifeq ($(CONFIG_BACKEND), winreg)
180OBJS += config_winreg.c
181endif
182
183ifeq ($(CONFIG_BACKEND), none)
184OBJS += config_none.c
185endif
186
187ifdef CONFIG_NO_CONFIG_WRITE
188L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE
189endif
190
191ifdef CONFIG_NO_CONFIG_BLOBS
192L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
193endif
194
195ifdef CONFIG_NO_SCAN_PROCESSING
196L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
197endif
198
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800199ifdef CONFIG_SUITEB
200L_CFLAGS += -DCONFIG_SUITEB
201NEED_SHA256=y
202NEED_AES_OMAC1=y
203endif
204
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800205ifdef CONFIG_SUITEB192
206L_CFLAGS += -DCONFIG_SUITEB192
207NEED_SHA384=y
208endif
209
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700210ifdef CONFIG_IEEE80211W
211L_CFLAGS += -DCONFIG_IEEE80211W
212NEED_SHA256=y
213NEED_AES_OMAC1=y
214endif
215
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800216ifdef CONFIG_IEEE80211R_AP
217CONFIG_IEEE80211R=y
218endif
219
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700220ifdef CONFIG_IEEE80211R
221L_CFLAGS += -DCONFIG_IEEE80211R
222OBJS += src/rsn_supp/wpa_ft.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700223NEED_SHA256=y
224NEED_AES_OMAC1=y
225endif
226
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800227ifdef CONFIG_MESH
228NEED_80211_COMMON=y
229NEED_SHA256=y
230NEED_AES_SIV=y
231NEED_AES_OMAC1=y
232NEED_AES_CTR=y
233CONFIG_SAE=y
234CONFIG_AP=y
235L_CFLAGS += -DCONFIG_MESH
236OBJS += mesh.c
237OBJS += mesh_mpm.c
238OBJS += mesh_rsn.c
239endif
240
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800241ifdef CONFIG_SAE
242L_CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800243OBJS += src/common/sae.c
244NEED_ECC=y
245NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800246endif
247
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800248ifdef CONFIG_FILS
249L_CFLAGS += -DCONFIG_FILS
250NEED_CRC32=y
251NEED_SHA384=y
252NEED_AES_SIV=y
253endif
254
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800255ifdef CONFIG_WNM
256L_CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700257OBJS += wnm_sta.c
258endif
259
Dmitry Shmidt405b5af2011-05-09 14:53:38 -0700260ifdef CONFIG_TDLS
261L_CFLAGS += -DCONFIG_TDLS
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800262OBJS += src/rsn_supp/tdls.c
Dmitry Shmidt405b5af2011-05-09 14:53:38 -0700263NEED_SHA256=y
264NEED_AES_OMAC1=y
265endif
266
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800267ifdef CONFIG_TDLS_TESTING
268L_CFLAGS += -DCONFIG_TDLS_TESTING
269endif
270
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700271ifdef CONFIG_PEERKEY
272L_CFLAGS += -DCONFIG_PEERKEY
273endif
274
Dmitry Shmidt29333592017-01-09 12:27:11 -0800275ifdef CONFIG_PMKSA_CACHE_EXTERNAL
276L_CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
277endif
278
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700279ifndef CONFIG_NO_WPA
280OBJS += src/rsn_supp/wpa.c
281OBJS += src/rsn_supp/preauth.c
282OBJS += src/rsn_supp/pmksa_cache.c
283OBJS += src/rsn_supp/peerkey.c
284OBJS += src/rsn_supp/wpa_ie.c
285OBJS += src/common/wpa_common.c
286NEED_AES=y
287NEED_SHA1=y
288NEED_MD5=y
289NEED_RC4=y
290else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700291L_CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700292endif
293
294ifdef CONFIG_IBSS_RSN
295NEED_RSN_AUTHENTICATOR=y
296L_CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700297L_CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700298OBJS += ibss_rsn.c
299endif
300
301ifdef CONFIG_P2P
302OBJS += p2p_supplicant.c
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700303OBJS += p2p_supplicant_sd.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700304OBJS += src/p2p/p2p.c
305OBJS += src/p2p/p2p_utils.c
306OBJS += src/p2p/p2p_parse.c
307OBJS += src/p2p/p2p_build.c
308OBJS += src/p2p/p2p_go_neg.c
309OBJS += src/p2p/p2p_sd.c
310OBJS += src/p2p/p2p_pd.c
311OBJS += src/p2p/p2p_invitation.c
312OBJS += src/p2p/p2p_dev_disc.c
313OBJS += src/p2p/p2p_group.c
314OBJS += src/ap/p2p_hostapd.c
315L_CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800316NEED_GAS=y
317NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800318CONFIG_WPS=y
319CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700320ifdef CONFIG_P2P_STRICT
321L_CFLAGS += -DCONFIG_P2P_STRICT
322endif
323endif
324
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700325ifdef CONFIG_WIFI_DISPLAY
326L_CFLAGS += -DCONFIG_WIFI_DISPLAY
327OBJS += wifi_display.c
328endif
329
330ifdef CONFIG_HS20
331OBJS += hs20_supplicant.c
332L_CFLAGS += -DCONFIG_HS20
333CONFIG_INTERWORKING=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800334NEED_AES_OMAC1=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700335endif
336
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800337ifdef CONFIG_INTERWORKING
338OBJS += interworking.c
339L_CFLAGS += -DCONFIG_INTERWORKING
340NEED_GAS=y
341endif
342
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800343ifdef CONFIG_FST
344L_CFLAGS += -DCONFIG_FST
345OBJS += src/fst/fst.c
346OBJS += src/fst/fst_session.c
347OBJS += src/fst/fst_iface.c
348OBJS += src/fst/fst_group.c
349OBJS += src/fst/fst_ctrl_aux.c
350ifdef CONFIG_FST_TEST
351L_CFLAGS += -DCONFIG_FST_TEST
352endif
353ifdef CONFIG_CTRL_IFACE
354OBJS += src/fst/fst_ctrl_iface.c
355endif
356endif
357
358
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700359include $(LOCAL_PATH)/src/drivers/drivers.mk
360
361ifdef CONFIG_AP
362OBJS_d += $(DRV_BOTH_OBJS)
363L_CFLAGS += $(DRV_BOTH_CFLAGS)
364LDFLAGS += $(DRV_BOTH_LDFLAGS)
365LIBS += $(DRV_BOTH_LIBS)
366else
367NEED_AP_MLME=
368OBJS_d += $(DRV_WPA_OBJS)
369L_CFLAGS += $(DRV_WPA_CFLAGS)
370LDFLAGS += $(DRV_WPA_LDFLAGS)
371LIBS += $(DRV_WPA_LIBS)
372endif
373
374ifndef CONFIG_L2_PACKET
375CONFIG_L2_PACKET=linux
376endif
377
378OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c
379
380ifeq ($(CONFIG_L2_PACKET), pcap)
381ifdef CONFIG_WINPCAP
382L_CFLAGS += -DCONFIG_WINPCAP
383LIBS += -lwpcap -lpacket
384LIBS_w += -lwpcap
385else
386LIBS += -ldnet -lpcap
387endif
388endif
389
390ifeq ($(CONFIG_L2_PACKET), winpcap)
391LIBS += -lwpcap -lpacket
392LIBS_w += -lwpcap
393endif
394
395ifeq ($(CONFIG_L2_PACKET), freebsd)
396LIBS += -lpcap
397endif
398
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800399ifdef CONFIG_ERP
400L_CFLAGS += -DCONFIG_ERP
401NEED_SHA256=y
402NEED_HMAC_SHA256_KDF=y
403endif
404
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700405ifdef CONFIG_EAP_TLS
406# EAP-TLS
407ifeq ($(CONFIG_EAP_TLS), dyn)
408L_CFLAGS += -DEAP_TLS_DYNAMIC
409EAPDYN += src/eap_peer/eap_tls.so
410else
411L_CFLAGS += -DEAP_TLS
412OBJS += src/eap_peer/eap_tls.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700413endif
414TLS_FUNCS=y
415CONFIG_IEEE8021X_EAPOL=y
416endif
417
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800418ifdef CONFIG_EAP_UNAUTH_TLS
419# EAP-UNAUTH-TLS
420L_CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700421ifndef CONFIG_EAP_TLS
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800422OBJS += src/eap_peer/eap_tls.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800423TLS_FUNCS=y
424endif
425CONFIG_IEEE8021X_EAPOL=y
426endif
427
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700428ifdef CONFIG_EAP_PEAP
429# EAP-PEAP
430ifeq ($(CONFIG_EAP_PEAP), dyn)
431L_CFLAGS += -DEAP_PEAP_DYNAMIC
432EAPDYN += src/eap_peer/eap_peap.so
433else
434L_CFLAGS += -DEAP_PEAP
435OBJS += src/eap_peer/eap_peap.c
436OBJS += src/eap_common/eap_peap_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700437endif
438TLS_FUNCS=y
439CONFIG_IEEE8021X_EAPOL=y
440endif
441
442ifdef CONFIG_EAP_TTLS
443# EAP-TTLS
444ifeq ($(CONFIG_EAP_TTLS), dyn)
445L_CFLAGS += -DEAP_TTLS_DYNAMIC
446EAPDYN += src/eap_peer/eap_ttls.so
447else
448L_CFLAGS += -DEAP_TTLS
449OBJS += src/eap_peer/eap_ttls.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700450endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700451TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800452ifndef CONFIG_FIPS
453MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700454CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800455endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700456CONFIG_IEEE8021X_EAPOL=y
457endif
458
459ifdef CONFIG_EAP_MD5
460# EAP-MD5
461ifeq ($(CONFIG_EAP_MD5), dyn)
462L_CFLAGS += -DEAP_MD5_DYNAMIC
463EAPDYN += src/eap_peer/eap_md5.so
464else
465L_CFLAGS += -DEAP_MD5
466OBJS += src/eap_peer/eap_md5.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700467endif
468CHAP=y
469CONFIG_IEEE8021X_EAPOL=y
470endif
471
472# backwards compatibility for old spelling
473ifdef CONFIG_MSCHAPV2
474ifndef CONFIG_EAP_MSCHAPV2
475CONFIG_EAP_MSCHAPV2=y
476endif
477endif
478
479ifdef CONFIG_EAP_MSCHAPV2
480# EAP-MSCHAPv2
481ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
482L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
483EAPDYN += src/eap_peer/eap_mschapv2.so
484EAPDYN += src/eap_peer/mschapv2.so
485else
486L_CFLAGS += -DEAP_MSCHAPv2
487OBJS += src/eap_peer/eap_mschapv2.c
488OBJS += src/eap_peer/mschapv2.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700489endif
490MS_FUNCS=y
491CONFIG_IEEE8021X_EAPOL=y
492endif
493
494ifdef CONFIG_EAP_GTC
495# EAP-GTC
496ifeq ($(CONFIG_EAP_GTC), dyn)
497L_CFLAGS += -DEAP_GTC_DYNAMIC
498EAPDYN += src/eap_peer/eap_gtc.so
499else
500L_CFLAGS += -DEAP_GTC
501OBJS += src/eap_peer/eap_gtc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700502endif
503CONFIG_IEEE8021X_EAPOL=y
504endif
505
506ifdef CONFIG_EAP_OTP
507# EAP-OTP
508ifeq ($(CONFIG_EAP_OTP), dyn)
509L_CFLAGS += -DEAP_OTP_DYNAMIC
510EAPDYN += src/eap_peer/eap_otp.so
511else
512L_CFLAGS += -DEAP_OTP
513OBJS += src/eap_peer/eap_otp.c
514endif
515CONFIG_IEEE8021X_EAPOL=y
516endif
517
518ifdef CONFIG_EAP_SIM
519# EAP-SIM
520ifeq ($(CONFIG_EAP_SIM), dyn)
521L_CFLAGS += -DEAP_SIM_DYNAMIC
522EAPDYN += src/eap_peer/eap_sim.so
523else
524L_CFLAGS += -DEAP_SIM
525OBJS += src/eap_peer/eap_sim.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700526endif
527CONFIG_IEEE8021X_EAPOL=y
528CONFIG_EAP_SIM_COMMON=y
529NEED_AES_CBC=y
530endif
531
532ifdef CONFIG_EAP_LEAP
533# EAP-LEAP
534ifeq ($(CONFIG_EAP_LEAP), dyn)
535L_CFLAGS += -DEAP_LEAP_DYNAMIC
536EAPDYN += src/eap_peer/eap_leap.so
537else
538L_CFLAGS += -DEAP_LEAP
539OBJS += src/eap_peer/eap_leap.c
540endif
541MS_FUNCS=y
542CONFIG_IEEE8021X_EAPOL=y
543endif
544
545ifdef CONFIG_EAP_PSK
546# EAP-PSK
547ifeq ($(CONFIG_EAP_PSK), dyn)
548L_CFLAGS += -DEAP_PSK_DYNAMIC
549EAPDYN += src/eap_peer/eap_psk.so
550else
551L_CFLAGS += -DEAP_PSK
552OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700553endif
554CONFIG_IEEE8021X_EAPOL=y
555NEED_AES=y
556NEED_AES_OMAC1=y
557NEED_AES_ENCBLOCK=y
558NEED_AES_EAX=y
559endif
560
561ifdef CONFIG_EAP_AKA
562# EAP-AKA
563ifeq ($(CONFIG_EAP_AKA), dyn)
564L_CFLAGS += -DEAP_AKA_DYNAMIC
565EAPDYN += src/eap_peer/eap_aka.so
566else
567L_CFLAGS += -DEAP_AKA
568OBJS += src/eap_peer/eap_aka.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700569endif
570CONFIG_IEEE8021X_EAPOL=y
571CONFIG_EAP_SIM_COMMON=y
572NEED_AES_CBC=y
573endif
574
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800575ifdef CONFIG_EAP_PROXY
576L_CFLAGS += -DCONFIG_EAP_PROXY
577OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c
Dmitry Shmidt04f534e2013-12-09 15:50:16 -0800578include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800579CONFIG_IEEE8021X_EAPOL=y
580endif
581
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700582ifdef CONFIG_EAP_AKA_PRIME
583# EAP-AKA'
584ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
585L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
586else
587L_CFLAGS += -DEAP_AKA_PRIME
588endif
589NEED_SHA256=y
590endif
591
592ifdef CONFIG_EAP_SIM_COMMON
593OBJS += src/eap_common/eap_sim_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700594NEED_AES=y
595NEED_FIPS186_2_PRF=y
596endif
597
598ifdef CONFIG_EAP_FAST
599# EAP-FAST
600ifeq ($(CONFIG_EAP_FAST), dyn)
601L_CFLAGS += -DEAP_FAST_DYNAMIC
602EAPDYN += src/eap_peer/eap_fast.so
603EAPDYN += src/eap_common/eap_fast_common.c
604else
605L_CFLAGS += -DEAP_FAST
606OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
607OBJS += src/eap_common/eap_fast_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700608endif
609TLS_FUNCS=y
610CONFIG_IEEE8021X_EAPOL=y
611NEED_T_PRF=y
612endif
613
614ifdef CONFIG_EAP_PAX
615# EAP-PAX
616ifeq ($(CONFIG_EAP_PAX), dyn)
617L_CFLAGS += -DEAP_PAX_DYNAMIC
618EAPDYN += src/eap_peer/eap_pax.so
619else
620L_CFLAGS += -DEAP_PAX
621OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700622endif
623CONFIG_IEEE8021X_EAPOL=y
624endif
625
626ifdef CONFIG_EAP_SAKE
627# EAP-SAKE
628ifeq ($(CONFIG_EAP_SAKE), dyn)
629L_CFLAGS += -DEAP_SAKE_DYNAMIC
630EAPDYN += src/eap_peer/eap_sake.so
631else
632L_CFLAGS += -DEAP_SAKE
633OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700634endif
635CONFIG_IEEE8021X_EAPOL=y
636endif
637
638ifdef CONFIG_EAP_GPSK
639# EAP-GPSK
640ifeq ($(CONFIG_EAP_GPSK), dyn)
641L_CFLAGS += -DEAP_GPSK_DYNAMIC
642EAPDYN += src/eap_peer/eap_gpsk.so
643else
644L_CFLAGS += -DEAP_GPSK
645OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700646endif
647CONFIG_IEEE8021X_EAPOL=y
648ifdef CONFIG_EAP_GPSK_SHA256
649L_CFLAGS += -DEAP_GPSK_SHA256
650endif
651NEED_SHA256=y
652NEED_AES_OMAC1=y
653endif
654
655ifdef CONFIG_EAP_PWD
656L_CFLAGS += -DEAP_PWD
657OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700658CONFIG_IEEE8021X_EAPOL=y
659NEED_SHA256=y
660endif
661
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700662ifdef CONFIG_EAP_EKE
663# EAP-EKE
664ifeq ($(CONFIG_EAP_EKE), dyn)
665L_CFLAGS += -DEAP_EKE_DYNAMIC
666EAPDYN += src/eap_peer/eap_eke.so
667else
668L_CFLAGS += -DEAP_EKE
669OBJS += src/eap_peer/eap_eke.c src/eap_common/eap_eke_common.c
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700670endif
671CONFIG_IEEE8021X_EAPOL=y
672NEED_DH_GROUPS=y
673NEED_DH_GROUPS_ALL=y
674NEED_SHA256=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800675NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700676endif
677
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700678ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700679# EAP-WSC
680L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
681OBJS += wps_supplicant.c
682OBJS += src/utils/uuid.c
683OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
684OBJS += src/wps/wps.c
685OBJS += src/wps/wps_common.c
686OBJS += src/wps/wps_attr_parse.c
687OBJS += src/wps/wps_attr_build.c
688OBJS += src/wps/wps_attr_process.c
689OBJS += src/wps/wps_dev_attr.c
690OBJS += src/wps/wps_enrollee.c
691OBJS += src/wps/wps_registrar.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700692CONFIG_IEEE8021X_EAPOL=y
693NEED_DH_GROUPS=y
694NEED_SHA256=y
695NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700696NEED_AES_CBC=y
697NEED_MODEXP=y
698
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700699ifdef CONFIG_WPS_NFC
700L_CFLAGS += -DCONFIG_WPS_NFC
701OBJS += src/wps/ndef.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700702NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700703endif
704
705ifdef NEED_WPS_OOB
706L_CFLAGS += -DCONFIG_WPS_OOB
707endif
708
709ifdef CONFIG_WPS_ER
710CONFIG_WPS_UPNP=y
711L_CFLAGS += -DCONFIG_WPS_ER
712OBJS += src/wps/wps_er.c
713OBJS += src/wps/wps_er_ssdp.c
714endif
715
716ifdef CONFIG_WPS_UPNP
717L_CFLAGS += -DCONFIG_WPS_UPNP
718OBJS += src/wps/wps_upnp.c
719OBJS += src/wps/wps_upnp_ssdp.c
720OBJS += src/wps/wps_upnp_web.c
721OBJS += src/wps/wps_upnp_event.c
722OBJS += src/wps/wps_upnp_ap.c
723OBJS += src/wps/upnp_xml.c
724OBJS += src/wps/httpread.c
725OBJS += src/wps/http_client.c
726OBJS += src/wps/http_server.c
727endif
728
729ifdef CONFIG_WPS_STRICT
730L_CFLAGS += -DCONFIG_WPS_STRICT
731OBJS += src/wps/wps_validate.c
732endif
733
734ifdef CONFIG_WPS_TESTING
735L_CFLAGS += -DCONFIG_WPS_TESTING
736endif
737
738ifdef CONFIG_WPS_REG_DISABLE_OPEN
739L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
740endif
741
742endif
743
744ifdef CONFIG_EAP_IKEV2
745# EAP-IKEv2
746ifeq ($(CONFIG_EAP_IKEV2), dyn)
747L_CFLAGS += -DEAP_IKEV2_DYNAMIC
748EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
749EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
750else
751L_CFLAGS += -DEAP_IKEV2
752OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
753OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700754endif
755CONFIG_IEEE8021X_EAPOL=y
756NEED_DH_GROUPS=y
757NEED_DH_GROUPS_ALL=y
758NEED_MODEXP=y
759NEED_CIPHER=y
760endif
761
762ifdef CONFIG_EAP_VENDOR_TEST
763ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
764L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
765EAPDYN += src/eap_peer/eap_vendor_test.so
766else
767L_CFLAGS += -DEAP_VENDOR_TEST
768OBJS += src/eap_peer/eap_vendor_test.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700769endif
770CONFIG_IEEE8021X_EAPOL=y
771endif
772
773ifdef CONFIG_EAP_TNC
774# EAP-TNC
775L_CFLAGS += -DEAP_TNC
776OBJS += src/eap_peer/eap_tnc.c
777OBJS += src/eap_peer/tncc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700778NEED_BASE64=y
779ifndef CONFIG_NATIVE_WINDOWS
780ifndef CONFIG_DRIVER_BSD
781LIBS += -ldl
782endif
783endif
784endif
785
786ifdef CONFIG_IEEE8021X_EAPOL
787# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
788L_CFLAGS += -DIEEE8021X_EAPOL
789OBJS += src/eapol_supp/eapol_supp_sm.c
790OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
791NEED_EAP_COMMON=y
792ifdef CONFIG_DYNAMIC_EAP_METHODS
793L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
794LIBS += -ldl -rdynamic
795endif
796endif
797
798ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700799NEED_EAP_COMMON=y
800NEED_RSN_AUTHENTICATOR=y
801L_CFLAGS += -DCONFIG_AP
802OBJS += ap.c
803L_CFLAGS += -DCONFIG_NO_RADIUS
804L_CFLAGS += -DCONFIG_NO_ACCOUNTING
805L_CFLAGS += -DCONFIG_NO_VLAN
806OBJS += src/ap/hostapd.c
807OBJS += src/ap/wpa_auth_glue.c
808OBJS += src/ap/utils.c
809OBJS += src/ap/authsrv.c
810OBJS += src/ap/ap_config.c
811OBJS += src/utils/ip_addr.c
812OBJS += src/ap/sta_info.c
813OBJS += src/ap/tkip_countermeasures.c
814OBJS += src/ap/ap_mlme.c
815OBJS += src/ap/ieee802_1x.c
816OBJS += src/eapol_auth/eapol_auth_sm.c
817OBJS += src/ap/ieee802_11_auth.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800818OBJS += src/ap/ieee802_11_shared.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700819OBJS += src/ap/drv_callbacks.c
820OBJS += src/ap/ap_drv_ops.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800821OBJS += src/ap/beacon.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800822OBJS += src/ap/bss_load.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800823OBJS += src/ap/eap_user_db.c
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700824OBJS += src/ap/neighbor_db.c
825OBJS += src/ap/rrm.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700826ifdef CONFIG_IEEE80211N
827OBJS += src/ap/ieee802_11_ht.c
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700828ifdef CONFIG_IEEE80211AC
829OBJS += src/ap/ieee802_11_vht.c
830endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700831endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800832ifdef CONFIG_WNM
833OBJS += src/ap/wnm_ap.c
834endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800835ifdef CONFIG_MBO
836OBJS += src/ap/mbo_ap.c
837endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700838ifdef CONFIG_CTRL_IFACE
839OBJS += src/ap/ctrl_iface_ap.c
840endif
841
842L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
843OBJS += src/eap_server/eap_server.c
844OBJS += src/eap_server/eap_server_identity.c
845OBJS += src/eap_server/eap_server_methods.c
846
847ifdef CONFIG_IEEE80211N
848L_CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700849ifdef CONFIG_IEEE80211AC
850L_CFLAGS += -DCONFIG_IEEE80211AC
851endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700852endif
853
854ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700855OBJS += src/ap/wmm.c
856OBJS += src/ap/ap_list.c
857OBJS += src/ap/ieee802_11.c
858OBJS += src/ap/hw_features.c
Dmitry Shmidt051af732013-10-22 13:52:46 -0700859OBJS += src/ap/dfs.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700860L_CFLAGS += -DNEED_AP_MLME
861endif
862ifdef CONFIG_WPS
863L_CFLAGS += -DEAP_SERVER_WSC
864OBJS += src/ap/wps_hostapd.c
865OBJS += src/eap_server/eap_server_wsc.c
866endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700867ifdef CONFIG_INTERWORKING
868OBJS += src/ap/gas_serv.c
869endif
870ifdef CONFIG_HS20
871OBJS += src/ap/hs20.c
872endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700873endif
874
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800875ifdef CONFIG_MBO
876OBJS += mbo.c
877L_CFLAGS += -DCONFIG_MBO
878endif
879
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700880ifdef NEED_RSN_AUTHENTICATOR
881L_CFLAGS += -DCONFIG_NO_RADIUS
882NEED_AES_WRAP=y
883OBJS += src/ap/wpa_auth.c
884OBJS += src/ap/wpa_auth_ie.c
885OBJS += src/ap/pmksa_cache_auth.c
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800886ifdef CONFIG_IEEE80211R_AP
887L_CFLAGS += -DCONFIG_IEEE80211R_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700888OBJS += src/ap/wpa_auth_ft.c
889endif
890ifdef CONFIG_PEERKEY
891OBJS += src/ap/peerkey_auth.c
892endif
893endif
894
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -0800895ifdef CONFIG_ACS
896L_CFLAGS += -DCONFIG_ACS
897OBJS += src/ap/acs.c
898LIBS += -lm
899endif
900
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700901ifdef CONFIG_PCSC
902# PC/SC interface for smartcards (USIM, GSM SIM)
903L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
904OBJS += src/utils/pcsc_funcs.c
905# -lpthread may not be needed depending on how pcsc-lite was configured
906ifdef CONFIG_NATIVE_WINDOWS
907#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
908#dynamic symbol loading that is now used in pcsc_funcs.c
909#LIBS += -lwinscard
910else
911LIBS += -lpcsclite -lpthread
912endif
913endif
914
915ifdef CONFIG_SIM_SIMULATOR
916L_CFLAGS += -DCONFIG_SIM_SIMULATOR
917NEED_MILENAGE=y
918endif
919
920ifdef CONFIG_USIM_SIMULATOR
921L_CFLAGS += -DCONFIG_USIM_SIMULATOR
922NEED_MILENAGE=y
923endif
924
925ifdef NEED_MILENAGE
926OBJS += src/crypto/milenage.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800927NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700928endif
929
930ifdef CONFIG_PKCS12
931L_CFLAGS += -DPKCS12_FUNCS
932endif
933
934ifdef CONFIG_SMARTCARD
935L_CFLAGS += -DCONFIG_SMARTCARD
936endif
937
938ifdef MS_FUNCS
939OBJS += src/crypto/ms_funcs.c
940NEED_DES=y
941NEED_MD4=y
942endif
943
944ifdef CHAP
945OBJS += src/eap_common/chap.c
946endif
947
948ifdef TLS_FUNCS
949NEED_DES=y
950# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
951OBJS += src/eap_peer/eap_tls_common.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700952ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700953NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800954NEED_SHA1=y
955NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700956endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700957endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700958
959ifndef CONFIG_TLS
960CONFIG_TLS=openssl
961endif
962
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800963ifdef CONFIG_TLSV11
964L_CFLAGS += -DCONFIG_TLSV11
965endif
966
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700967ifdef CONFIG_TLSV12
968L_CFLAGS += -DCONFIG_TLSV12
969NEED_SHA256=y
970endif
971
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700972ifeq ($(CONFIG_TLS), openssl)
973ifdef TLS_FUNCS
974L_CFLAGS += -DEAP_TLS_OPENSSL
975OBJS += src/crypto/tls_openssl.c
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800976OBJS += src/crypto/tls_openssl_ocsp.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700977LIBS += -lssl
978endif
979OBJS += src/crypto/crypto_openssl.c
980OBJS_p += src/crypto/crypto_openssl.c
981ifdef NEED_FIPS186_2_PRF
982OBJS += src/crypto/fips_prf_openssl.c
983endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800984NEED_SHA256=y
985NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700986LIBS += -lcrypto
987LIBS_p += -lcrypto
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800988ifdef CONFIG_TLS_ADD_DL
989LIBS += -ldl
990LIBS_p += -ldl
991endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700992endif
993
994ifeq ($(CONFIG_TLS), gnutls)
995ifdef TLS_FUNCS
996OBJS += src/crypto/tls_gnutls.c
997LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700998endif
999OBJS += src/crypto/crypto_gnutls.c
1000OBJS_p += src/crypto/crypto_gnutls.c
1001ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001002OBJS += src/crypto/fips_prf_internal.c
1003OBJS += src/crypto/sha1-internal.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001004endif
1005LIBS += -lgcrypt
1006LIBS_p += -lgcrypt
1007CONFIG_INTERNAL_SHA256=y
1008CONFIG_INTERNAL_RC4=y
1009CONFIG_INTERNAL_DH_GROUP5=y
1010endif
1011
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001012ifeq ($(CONFIG_TLS), internal)
1013ifndef CONFIG_CRYPTO
1014CONFIG_CRYPTO=internal
1015endif
1016ifdef TLS_FUNCS
1017OBJS += src/crypto/crypto_internal-rsa.c
1018OBJS += src/crypto/tls_internal.c
1019OBJS += src/tls/tlsv1_common.c
1020OBJS += src/tls/tlsv1_record.c
1021OBJS += src/tls/tlsv1_cred.c
1022OBJS += src/tls/tlsv1_client.c
1023OBJS += src/tls/tlsv1_client_write.c
1024OBJS += src/tls/tlsv1_client_read.c
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001025OBJS += src/tls/tlsv1_client_ocsp.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001026OBJS += src/tls/asn1.c
1027OBJS += src/tls/rsa.c
1028OBJS += src/tls/x509v3.c
1029OBJS += src/tls/pkcs1.c
1030OBJS += src/tls/pkcs5.c
1031OBJS += src/tls/pkcs8.c
1032NEED_SHA256=y
1033NEED_BASE64=y
1034NEED_TLS_PRF=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001035ifdef CONFIG_TLSV12
1036NEED_TLS_PRF_SHA256=y
1037endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001038NEED_MODEXP=y
1039NEED_CIPHER=y
1040L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1041endif
1042ifdef NEED_CIPHER
1043NEED_DES=y
1044OBJS += src/crypto/crypto_internal-cipher.c
1045endif
1046ifdef NEED_MODEXP
1047OBJS += src/crypto/crypto_internal-modexp.c
1048OBJS += src/tls/bignum.c
1049endif
1050ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1051OBJS += src/crypto/crypto_libtomcrypt.c
1052OBJS_p += src/crypto/crypto_libtomcrypt.c
1053LIBS += -ltomcrypt -ltfm
1054LIBS_p += -ltomcrypt -ltfm
1055CONFIG_INTERNAL_SHA256=y
1056CONFIG_INTERNAL_RC4=y
1057CONFIG_INTERNAL_DH_GROUP5=y
1058endif
1059ifeq ($(CONFIG_CRYPTO), internal)
1060OBJS += src/crypto/crypto_internal.c
1061OBJS_p += src/crypto/crypto_internal.c
1062NEED_AES_ENC=y
1063L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1064ifdef CONFIG_INTERNAL_LIBTOMMATH
1065L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1066ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1067L_CFLAGS += -DLTM_FAST
1068endif
1069else
1070LIBS += -ltommath
1071LIBS_p += -ltommath
1072endif
1073CONFIG_INTERNAL_AES=y
1074CONFIG_INTERNAL_DES=y
1075CONFIG_INTERNAL_SHA1=y
1076CONFIG_INTERNAL_MD4=y
1077CONFIG_INTERNAL_MD5=y
1078CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001079CONFIG_INTERNAL_SHA384=y
1080CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001081CONFIG_INTERNAL_RC4=y
1082CONFIG_INTERNAL_DH_GROUP5=y
1083endif
1084ifeq ($(CONFIG_CRYPTO), cryptoapi)
1085OBJS += src/crypto/crypto_cryptoapi.c
1086OBJS_p += src/crypto/crypto_cryptoapi.c
1087L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1088CONFIG_INTERNAL_SHA256=y
1089CONFIG_INTERNAL_RC4=y
1090endif
1091endif
1092
1093ifeq ($(CONFIG_TLS), none)
1094ifdef TLS_FUNCS
1095OBJS += src/crypto/tls_none.c
1096L_CFLAGS += -DEAP_TLS_NONE
1097CONFIG_INTERNAL_AES=y
1098CONFIG_INTERNAL_SHA1=y
1099CONFIG_INTERNAL_MD5=y
1100endif
1101OBJS += src/crypto/crypto_none.c
1102OBJS_p += src/crypto/crypto_none.c
1103CONFIG_INTERNAL_SHA256=y
1104CONFIG_INTERNAL_RC4=y
1105endif
1106
1107ifdef TLS_FUNCS
1108ifdef CONFIG_SMARTCARD
1109ifndef CONFIG_NATIVE_WINDOWS
1110ifneq ($(CONFIG_L2_PACKET), freebsd)
1111LIBS += -ldl
1112endif
1113endif
1114endif
1115endif
1116
1117ifndef TLS_FUNCS
1118OBJS += src/crypto/tls_none.c
1119ifeq ($(CONFIG_TLS), internal)
1120CONFIG_INTERNAL_AES=y
1121CONFIG_INTERNAL_SHA1=y
1122CONFIG_INTERNAL_MD5=y
1123CONFIG_INTERNAL_RC4=y
1124endif
1125endif
1126
1127AESOBJS = # none so far (see below)
1128ifdef CONFIG_INTERNAL_AES
1129AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
1130endif
1131
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001132ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001133NEED_INTERNAL_AES_WRAP=y
1134endif
1135ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1136# Seems to be needed at least with BoringSSL
1137NEED_INTERNAL_AES_WRAP=y
1138L_CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1139endif
1140ifdef CONFIG_FIPS
1141# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1142# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1143NEED_INTERNAL_AES_WRAP=y
1144endif
1145
1146ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001147AESOBJS += src/crypto/aes-unwrap.c
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001148endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001149ifdef NEED_AES_EAX
1150AESOBJS += src/crypto/aes-eax.c
1151NEED_AES_CTR=y
1152endif
1153ifdef NEED_AES_CTR
1154AESOBJS += src/crypto/aes-ctr.c
1155endif
1156ifdef NEED_AES_ENCBLOCK
1157AESOBJS += src/crypto/aes-encblock.c
1158endif
1159ifdef NEED_AES_OMAC1
1160NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001161ifdef CONFIG_OPENSSL_CMAC
Dmitry Shmidt0fdea2c2013-11-05 18:12:54 -08001162L_CFLAGS += -DCONFIG_OPENSSL_CMAC
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001163else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001164AESOBJS += src/crypto/aes-omac1.c
1165endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001166endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001167ifdef NEED_AES_WRAP
1168NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001169ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001170AESOBJS += src/crypto/aes-wrap.c
1171endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001172endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001173ifdef NEED_AES_CBC
1174NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001175ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001176AESOBJS += src/crypto/aes-cbc.c
1177endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001178endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001179ifdef NEED_AES_ENC
1180ifdef CONFIG_INTERNAL_AES
1181AESOBJS += src/crypto/aes-internal-enc.c
1182endif
1183endif
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001184ifdef NEED_AES_SIV
1185AESOBJS += src/crypto/aes-siv.c
1186endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001187ifdef NEED_AES
1188OBJS += $(AESOBJS)
1189endif
1190
1191SHA1OBJS =
1192ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001193ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001194SHA1OBJS += src/crypto/sha1.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001195endif
1196SHA1OBJS += src/crypto/sha1-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001197ifdef CONFIG_INTERNAL_SHA1
1198SHA1OBJS += src/crypto/sha1-internal.c
1199ifdef NEED_FIPS186_2_PRF
1200SHA1OBJS += src/crypto/fips_prf_internal.c
1201endif
1202endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001203ifdef CONFIG_NO_WPA_PASSPHRASE
1204L_CFLAGS += -DCONFIG_NO_PBKDF2
1205else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001206ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001207SHA1OBJS += src/crypto/sha1-pbkdf2.c
1208endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001209endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001210ifdef NEED_T_PRF
1211SHA1OBJS += src/crypto/sha1-tprf.c
1212endif
1213ifdef NEED_TLS_PRF
1214SHA1OBJS += src/crypto/sha1-tlsprf.c
1215endif
1216endif
1217
Dmitry Shmidt54605472013-11-08 11:10:19 -08001218MD5OBJS =
1219ifndef CONFIG_FIPS
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001220ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt54605472013-11-08 11:10:19 -08001221MD5OBJS += src/crypto/md5.c
1222endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001223endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001224ifdef NEED_MD5
1225ifdef CONFIG_INTERNAL_MD5
1226MD5OBJS += src/crypto/md5-internal.c
1227endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001228OBJS += $(MD5OBJS)
1229OBJS_p += $(MD5OBJS)
1230endif
1231
1232ifdef NEED_MD4
1233ifdef CONFIG_INTERNAL_MD4
1234OBJS += src/crypto/md4-internal.c
1235endif
1236endif
1237
1238DESOBJS = # none needed when not internal
1239ifdef NEED_DES
1240ifdef CONFIG_INTERNAL_DES
1241DESOBJS += src/crypto/des-internal.c
1242endif
1243endif
1244
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001245ifdef CONFIG_NO_RC4
1246L_CFLAGS += -DCONFIG_NO_RC4
1247endif
1248
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001249ifdef NEED_RC4
1250ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001251ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001252OBJS += src/crypto/rc4.c
1253endif
1254endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001255endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001256
1257SHA256OBJS = # none by default
1258ifdef NEED_SHA256
1259L_CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001260ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001261SHA256OBJS += src/crypto/sha256.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001262endif
1263SHA256OBJS += src/crypto/sha256-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001264ifdef CONFIG_INTERNAL_SHA256
1265SHA256OBJS += src/crypto/sha256-internal.c
1266endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001267ifdef CONFIG_INTERNAL_SHA384
1268L_CFLAGS += -DCONFIG_INTERNAL_SHA384
1269SHA256OBJS += src/crypto/sha384-internal.c
1270endif
1271ifdef CONFIG_INTERNAL_SHA512
1272L_CFLAGS += -DCONFIG_INTERNAL_SHA512
1273SHA256OBJS += src/crypto/sha512-internal.c
1274endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001275ifdef NEED_TLS_PRF_SHA256
1276SHA256OBJS += src/crypto/sha256-tlsprf.c
1277endif
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001278ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001279L_CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001280SHA256OBJS += src/crypto/sha256-kdf.c
1281endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001282OBJS += $(SHA256OBJS)
1283endif
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001284ifdef NEED_SHA384
1285L_CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001286OBJS += src/crypto/sha384-prf.c
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001287endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001288
1289ifdef NEED_DH_GROUPS
1290OBJS += src/crypto/dh_groups.c
1291endif
1292ifdef NEED_DH_GROUPS_ALL
1293L_CFLAGS += -DALL_DH_GROUPS
1294endif
1295ifdef CONFIG_INTERNAL_DH_GROUP5
1296ifdef NEED_DH_GROUPS
1297OBJS += src/crypto/dh_group5.c
1298endif
1299endif
1300
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001301ifdef NEED_ECC
1302L_CFLAGS += -DCONFIG_ECC
1303endif
1304
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -08001305ifdef NEED_CRC32
1306OBJS += src/utils/crc32.c
1307endif
1308
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001309ifdef CONFIG_NO_RANDOM_POOL
1310L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
1311else
1312OBJS += src/crypto/random.c
1313endif
1314
1315ifdef CONFIG_CTRL_IFACE
1316ifeq ($(CONFIG_CTRL_IFACE), y)
1317ifdef CONFIG_NATIVE_WINDOWS
1318CONFIG_CTRL_IFACE=named_pipe
1319else
1320CONFIG_CTRL_IFACE=unix
1321endif
1322endif
1323L_CFLAGS += -DCONFIG_CTRL_IFACE
1324ifeq ($(CONFIG_CTRL_IFACE), unix)
1325L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001326OBJS += src/common/ctrl_iface_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001327endif
1328ifeq ($(CONFIG_CTRL_IFACE), udp)
1329L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1330endif
1331ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1332L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1333endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001334ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1335CONFIG_CTRL_IFACE=udp
1336L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1337L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1338endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001339OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c
1340endif
1341
1342ifdef CONFIG_CTRL_IFACE_DBUS
1343DBUS=y
1344DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1345DBUS_OBJS += dbus/dbus_old.c dbus/dbus_old_handlers.c
1346ifdef CONFIG_WPS
1347DBUS_OBJS += dbus/dbus_old_handlers_wps.c
1348endif
1349DBUS_OBJS += dbus/dbus_dict_helpers.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001350DBUS_CFLAGS += $(DBUS_INCLUDE)
1351endif
1352
1353ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1354DBUS=y
1355DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1356DBUS_OBJS ?= dbus/dbus_dict_helpers.c
1357DBUS_OBJS += dbus/dbus_new_helpers.c
1358DBUS_OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c
1359ifdef CONFIG_WPS
1360DBUS_OBJS += dbus/dbus_new_handlers_wps.c
1361endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001362ifdef CONFIG_P2P
1363DBUS_OBJS += dbus/dbus_new_handlers_p2p.c
1364endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001365ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1366DBUS_OBJS += dbus/dbus_new_introspect.c
1367DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1368endif
1369DBUS_CFLAGS += $(DBUS_INCLUDE)
1370endif
1371
1372ifdef DBUS
1373DBUS_CFLAGS += -DCONFIG_DBUS
1374DBUS_OBJS += dbus/dbus_common.c
1375endif
1376
1377OBJS += $(DBUS_OBJS)
1378L_CFLAGS += $(DBUS_CFLAGS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001379
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001380ifdef CONFIG_CTRL_IFACE_HIDL
1381WPA_SUPPLICANT_USE_HIDL=y
1382L_CFLAGS += -DCONFIG_HIDL -DCONFIG_CTRL_IFACE_HIDL
Dmitry Shmidte4663042016-04-04 10:07:49 -07001383endif
1384
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001385ifdef CONFIG_READLINE
1386OBJS_c += src/utils/edit_readline.c
1387LIBS_c += -lncurses -lreadline
1388else
1389ifdef CONFIG_WPA_CLI_EDIT
1390OBJS_c += src/utils/edit.c
1391else
1392OBJS_c += src/utils/edit_simple.c
1393endif
1394endif
1395
1396ifdef CONFIG_NATIVE_WINDOWS
1397L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
1398LIBS += -lws2_32 -lgdi32 -lcrypt32
1399LIBS_c += -lws2_32
1400LIBS_p += -lws2_32 -lgdi32
1401ifeq ($(CONFIG_CRYPTO), cryptoapi)
1402LIBS_p += -lcrypt32
1403endif
1404endif
1405
1406ifdef CONFIG_NO_STDOUT_DEBUG
1407L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1408ifndef CONFIG_CTRL_IFACE
1409L_CFLAGS += -DCONFIG_NO_WPA_MSG
1410endif
1411endif
1412
1413ifdef CONFIG_ANDROID_LOG
1414L_CFLAGS += -DCONFIG_ANDROID_LOG
1415endif
1416
1417ifdef CONFIG_IPV6
1418# for eapol_test only
1419L_CFLAGS += -DCONFIG_IPV6
1420endif
1421
1422ifdef NEED_BASE64
1423OBJS += src/utils/base64.c
1424endif
1425
1426ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001427OBJS += sme.c
1428L_CFLAGS += -DCONFIG_SME
1429endif
1430
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001431OBJS += src/common/ieee802_11_common.c
Dmitry Shmidt746bde52015-01-12 13:01:47 -08001432OBJS += src/common/hw_features_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001433
1434ifdef NEED_EAP_COMMON
1435OBJS += src/eap_common/eap_common.c
1436endif
1437
1438ifndef CONFIG_MAIN
1439CONFIG_MAIN=main
1440endif
1441
1442ifdef CONFIG_DEBUG_SYSLOG
1443L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001444ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1445L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1446endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001447endif
1448
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001449ifdef CONFIG_DEBUG_LINUX_TRACING
1450L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1451endif
1452
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001453ifdef CONFIG_DEBUG_FILE
1454L_CFLAGS += -DCONFIG_DEBUG_FILE
1455endif
1456
1457ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1458L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1459endif
1460
1461ifdef CONFIG_FIPS
1462L_CFLAGS += -DCONFIG_FIPS
1463endif
1464
1465OBJS += $(SHA1OBJS) $(DESOBJS)
1466
1467OBJS_p += $(SHA1OBJS)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001468OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001469
1470ifdef CONFIG_BGSCAN_SIMPLE
1471L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1472OBJS += bgscan_simple.c
1473NEED_BGSCAN=y
1474endif
1475
1476ifdef CONFIG_BGSCAN_LEARN
1477L_CFLAGS += -DCONFIG_BGSCAN_LEARN
1478OBJS += bgscan_learn.c
1479NEED_BGSCAN=y
1480endif
1481
1482ifdef NEED_BGSCAN
1483L_CFLAGS += -DCONFIG_BGSCAN
1484OBJS += bgscan.c
1485endif
1486
Dmitry Shmidt04949592012-07-19 12:16:46 -07001487ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1488L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1489OBJS += autoscan_exponential.c
1490NEED_AUTOSCAN=y
1491endif
1492
1493ifdef CONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt0fdea2c2013-11-05 18:12:54 -08001494L_CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt04949592012-07-19 12:16:46 -07001495OBJS += autoscan_periodic.c
1496NEED_AUTOSCAN=y
1497endif
1498
1499ifdef NEED_AUTOSCAN
1500L_CFLAGS += -DCONFIG_AUTOSCAN
1501OBJS += autoscan.c
1502endif
1503
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001504ifdef CONFIG_EXT_PASSWORD_TEST
1505OBJS += src/utils/ext_password_test.c
1506L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1507NEED_EXT_PASSWORD=y
1508endif
1509
1510ifdef NEED_EXT_PASSWORD
1511OBJS += src/utils/ext_password.c
1512L_CFLAGS += -DCONFIG_EXT_PASSWORD
1513endif
1514
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001515ifdef NEED_GAS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001516OBJS += src/common/gas.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001517OBJS += gas_query.c
1518L_CFLAGS += -DCONFIG_GAS
1519NEED_OFFCHANNEL=y
1520endif
1521
1522ifdef NEED_OFFCHANNEL
1523OBJS += offchannel.c
1524L_CFLAGS += -DCONFIG_OFFCHANNEL
1525endif
1526
1527OBJS += src/drivers/driver_common.c
1528
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001529OBJS += wpa_supplicant.c events.c blacklist.c wpas_glue.c scan.c
1530OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c
1531OBJS_t += src/radius/radius_client.c
1532OBJS_t += src/radius/radius.c
1533ifndef CONFIG_AP
1534OBJS_t += src/utils/ip_addr.c
1535endif
1536OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c
1537OBJS += $(CONFIG_MAIN).c
1538
1539ifdef CONFIG_PRIVSEP
1540OBJS_priv += $(OBJS_d) src/drivers/drivers.c
1541OBJS_priv += $(OBJS_l2)
1542OBJS_priv += src/utils/os_$(CONFIG_OS).c
1543OBJS_priv += src/utils/$(CONFIG_ELOOP).c
1544OBJS_priv += src/utils/common.c
1545OBJS_priv += src/utils/wpa_debug.c
1546OBJS_priv += src/utils/wpabuf.c
1547OBJS_priv += wpa_priv.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001548ifdef CONFIG_DRIVER_NL80211
1549OBJS_priv += src/common/ieee802_11_common.c
1550endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001551OBJS += src/l2_packet/l2_packet_privsep.c
1552OBJS += src/drivers/driver_privsep.c
1553EXTRA_progs += wpa_priv
1554else
1555OBJS += $(OBJS_d) src/drivers/drivers.c
1556OBJS += $(OBJS_l2)
1557endif
1558
1559ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1560L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1561OBJS += src/drivers/ndis_events.c
1562EXTRALIBS += -loleaut32 -lole32 -luuid
1563ifdef PLATFORMSDKLIB
1564EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1565else
1566EXTRALIBS += WbemUuid.Lib
1567endif
1568endif
1569
1570ifndef LDO
1571LDO=$(CC)
1572endif
1573
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001574########################
1575
1576include $(CLEAR_VARS)
1577LOCAL_MODULE := wpa_cli
1578LOCAL_MODULE_TAGS := debug
Ying Wange93dd112013-04-09 21:53:29 -07001579LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001580LOCAL_CFLAGS := $(L_CFLAGS)
1581LOCAL_SRC_FILES := $(OBJS_c)
1582LOCAL_C_INCLUDES := $(INCLUDES)
1583include $(BUILD_EXECUTABLE)
1584
1585########################
1586include $(CLEAR_VARS)
1587LOCAL_MODULE := wpa_supplicant
1588ifdef CONFIG_DRIVER_CUSTOM
1589LOCAL_STATIC_LIBRARIES := libCustomWifi
1590endif
1591ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
1592LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)
1593endif
Ying Wange93dd112013-04-09 21:53:29 -07001594LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt04f534e2013-12-09 15:50:16 -08001595ifdef CONFIG_EAP_PROXY
1596LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY)
1597LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY)
1598endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001599ifeq ($(CONFIG_TLS), openssl)
Kenny Root3f3ca3b2012-11-12 16:33:36 -08001600LOCAL_SHARED_LIBRARIES += libcrypto libssl libkeystore_binder
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001601endif
Adam Langley1eb02ed2015-04-21 19:00:05 -07001602
1603# With BoringSSL we need libkeystore-engine in order to provide access to
1604# keystore keys.
Adam Langley1eb02ed2015-04-21 19:00:05 -07001605LOCAL_SHARED_LIBRARIES += libkeystore-engine
Adam Langley1eb02ed2015-04-21 19:00:05 -07001606
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001607ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001608ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -08001609LOCAL_SHARED_LIBRARIES += libnl
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001610else
1611LOCAL_STATIC_LIBRARIES += libnl_2
1612endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001613endif
1614LOCAL_CFLAGS := $(L_CFLAGS)
1615LOCAL_SRC_FILES := $(OBJS)
1616LOCAL_C_INCLUDES := $(INCLUDES)
Samuel Tanb7983992015-08-11 09:59:20 -07001617ifeq ($(DBUS), y)
1618LOCAL_SHARED_LIBRARIES += libdbus
1619endif
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001620ifeq ($(WPA_SUPPLICANT_USE_HIDL), y)
Roshan Pius7c0ebf22016-09-20 15:11:56 -07001621LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant@1.0
Yifan Hong4313d262016-11-17 10:54:47 -08001622LOCAL_SHARED_LIBRARIES += libhidlbase libhidltransport libhwbinder libutils
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001623LOCAL_STATIC_LIBRARIES += libwpa_hidl
Dmitry Shmidte4663042016-04-04 10:07:49 -07001624endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001625include $(BUILD_EXECUTABLE)
1626
1627########################
1628#
1629#include $(CLEAR_VARS)
1630#LOCAL_MODULE := eapol_test
1631#ifdef CONFIG_DRIVER_CUSTOM
1632#LOCAL_STATIC_LIBRARIES := libCustomWifi
1633#endif
1634#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl
1635#LOCAL_CFLAGS := $(L_CFLAGS)
1636#LOCAL_SRC_FILES := $(OBJS_t)
1637#LOCAL_C_INCLUDES := $(INCLUDES)
1638#include $(BUILD_EXECUTABLE)
1639#
1640########################
1641#
1642#local_target_dir := $(TARGET_OUT)/etc/wifi
1643#
1644#include $(CLEAR_VARS)
1645#LOCAL_MODULE := wpa_supplicant.conf
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001646#LOCAL_MODULE_CLASS := ETC
1647#LOCAL_MODULE_PATH := $(local_target_dir)
1648#LOCAL_SRC_FILES := $(LOCAL_MODULE)
1649#include $(BUILD_PREBUILT)
1650#
1651########################
1652
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001653include $(CLEAR_VARS)
1654LOCAL_MODULE = libwpa_client
1655LOCAL_CFLAGS = $(L_CFLAGS)
1656LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
1657LOCAL_C_INCLUDES = $(INCLUDES)
Ying Wange93dd112013-04-09 21:53:29 -07001658LOCAL_SHARED_LIBRARIES := libcutils liblog
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001659LOCAL_COPY_HEADERS_TO := libwpa_client
1660LOCAL_COPY_HEADERS := src/common/wpa_ctrl.h
Dmitry Shmidt413dde72014-04-11 10:23:22 -07001661LOCAL_COPY_HEADERS += src/common/qca-vendor.h
Dan Willemsen945669e2016-10-21 21:26:16 -07001662LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/wpa_client_include
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001663include $(BUILD_SHARED_LIBRARY)
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001664
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001665ifeq ($(WPA_SUPPLICANT_USE_HIDL), y)
1666### Hidl service library ###
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001667########################
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001668include $(CLEAR_VARS)
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001669LOCAL_MODULE := libwpa_hidl
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001670LOCAL_CPPFLAGS := $(L_CPPFLAGS)
1671LOCAL_CFLAGS := $(L_CFLAGS)
1672LOCAL_C_INCLUDES := $(INCLUDES)
1673LOCAL_SRC_FILES := \
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001674 hidl/hidl.cpp \
1675 hidl/hidl_manager.cpp \
Roshan Piusfdac43d2016-11-03 14:41:14 -07001676 hidl/p2p_iface.cpp \
1677 hidl/p2p_network.cpp \
Roshan Piusbc024e62016-11-03 14:39:18 -07001678 hidl/sta_iface.cpp \
1679 hidl/sta_network.cpp \
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001680 hidl/supplicant.cpp
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001681LOCAL_SHARED_LIBRARIES := \
Roshan Pius7c0ebf22016-09-20 15:11:56 -07001682 android.hardware.wifi.supplicant@1.0 \
Yifan Hong4313d262016-11-17 10:54:47 -08001683 libhidlbase \
1684 libhidltransport \
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001685 libhwbinder \
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001686 libutils
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001687include $(BUILD_STATIC_LIBRARY)
Roshan Pius57ffbcf2016-09-27 09:12:46 -07001688endif # WPA_SUPPLICANT_USE_HIDL == y