blob: f276c489584655b7840b8d2b94052315fcd79c8f [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
Bob Badour618e16c2022-02-14 12:41:29 -080011$(eval $(call declare-copy-files-license-metadata,external/wpa_supplicant_8/wpa_supplicant,.conf,SPDX-license-identifier-BSD-3-Clause,notice,external/wpa_supplicant_8/wpa_supplicant/LICENSE_BSD,))
12
Jeff Brownbbda6272011-07-11 22:12:15 -070013ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),)
Jeff Brownbbda6272011-07-11 22:12:15 -070014 CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070015endif
16
Ecco Park7d24a752018-06-06 14:45:45 -070017ifeq ($(BOARD_WLAN_DEVICE), qcwcn)
18 CONFIG_DRIVER_NL80211_QCA=y
19endif
20
Dmitry Shmidt7dd0f202012-02-21 16:49:00 -080021include $(LOCAL_PATH)/android.config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070022
23# To ignore possible wrong network configurations
24L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
25
Dmitry Shmidtea01dac2011-10-25 10:50:42 -070026L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\"
27
Dmitry Shmidt648b7492011-09-30 15:03:42 -070028# Set Android log name
29L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\"
30
Chih-Hung Hsiehcedf5562017-10-26 10:56:55 -070031L_CFLAGS += -Wall -Werror
32
33# Keep sometimes uninitialized warnings
Chih-Hung Hsieh5d1bac22021-02-01 22:06:49 -080034L_CFLAGS += -Wno-error=sometimes-uninitialized
Chih-Hung Hsiehcedf5562017-10-26 10:56:55 -070035
36# Disable incompatible pointer type warnings
37L_CFLAGS += -Wno-incompatible-pointer-types
38L_CFLAGS += -Wno-incompatible-pointer-types-discards-qualifiers
39
40# Disable extraneous parentheses warnings
41L_CFLAGS += -Wno-parentheses-equality
42
43# Disable sign compare warnings
44L_CFLAGS += -Wno-sign-compare
45
46# Disable unused function warnings
47L_CFLAGS += -Wno-unused-function
48
49# Disable unused variable warnings
50L_CFLAGS += -Wno-unused-variable
51
Dmitry Shmidtf9bdef92014-04-25 10:46:36 -070052# Disable unused parameter warnings
53L_CFLAGS += -Wno-unused-parameter
54
Christopher Ferrisb6c19e02017-02-23 15:50:04 -080055# Disable redefined macro warnings
56L_CFLAGS += -Wno-macro-redefined
57
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070058# Set Android extended P2P functionality
59L_CFLAGS += -DANDROID_P2P
Dmitry Shmidt41712582015-06-29 11:02:15 -070060
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070061ifeq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
Dmitry Shmidt41712582015-06-29 11:02:15 -070062L_CFLAGS += -DANDROID_LIB_STUB
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070063endif
64
Hai Shalom60840252021-02-19 19:02:11 -080065ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB_EVENT),)
66L_CFLAGS += -DANDROID_LIB_EVENT
67endif
68
Dmitry Shmidt006dedf2012-02-21 16:30:45 -080069# Disable roaming in wpa_supplicant
70ifdef CONFIG_NO_ROAMING
71L_CFLAGS += -DCONFIG_NO_ROAMING
72endif
73
Dennis Jeone2cb56b2020-10-23 21:23:01 +090074ifeq ($(WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS), enabled)
75L_CFLAGS += -DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS
76endif
77
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070078# Use Android specific directory for control interface sockets
Jeff Vander Stoepf9b80ff2018-01-24 07:51:04 -080079L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"
80L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070081
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -070082# Use Android specific directory for wpa_cli command completion history
Jeff Vander Stoepf9b80ff2018-01-24 07:51:04 -080083L_CFLAGS += -DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -070084
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070085# To force sizeof(enum) = 4
86ifeq ($(TARGET_ARCH),arm)
87L_CFLAGS += -mabi=aapcs-linux
88endif
89
Gabriel Biren57ededa2021-09-03 16:08:50 +000090# C++ flags for aidl interface
Roshan Piusad7939e2016-12-06 16:48:59 -080091L_CPPFLAGS := -Wall -Werror
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070092# TODO: Remove these allowed warnings later.
93L_CPPFLAGS += -Wno-unused-variable -Wno-unused-parameter
94L_CPPFLAGS += -Wno-unused-private-field
95
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070096INCLUDES = $(LOCAL_PATH)
97INCLUDES += $(LOCAL_PATH)/src
98INCLUDES += $(LOCAL_PATH)/src/common
99# INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes
100INCLUDES += $(LOCAL_PATH)/src/drivers
101INCLUDES += $(LOCAL_PATH)/src/eap_common
102INCLUDES += $(LOCAL_PATH)/src/eapol_supp
103INCLUDES += $(LOCAL_PATH)/src/eap_peer
104INCLUDES += $(LOCAL_PATH)/src/eap_server
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700105INCLUDES += $(LOCAL_PATH)/src/l2_packet
106INCLUDES += $(LOCAL_PATH)/src/radius
107INCLUDES += $(LOCAL_PATH)/src/rsn_supp
108INCLUDES += $(LOCAL_PATH)/src/tls
109INCLUDES += $(LOCAL_PATH)/src/utils
110INCLUDES += $(LOCAL_PATH)/src/wps
Dmitry Shmidtffd6bf92013-11-07 18:13:08 -0800111INCLUDES += system/security/keystore/include
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700112ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -0800113ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -0800114INCLUDES += external/libnl/include
Dmitry Shmidtcd446452014-02-18 16:03:35 -0800115else
116INCLUDES += external/libnl-headers
117endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700118endif
119
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700120ifdef CONFIG_FIPS
121CONFIG_NO_RANDOM_POOL=
122CONFIG_OPENSSL_CMAC=y
123endif
124
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700125OBJS = config.c
126OBJS += notify.c
127OBJS += bss.c
128OBJS += eap_register.c
129OBJS += src/utils/common.c
Hai Shalom60840252021-02-19 19:02:11 -0800130OBJS += src/utils/config.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700131OBJS += src/utils/wpa_debug.c
132OBJS += src/utils/wpabuf.c
Dmitry Shmidt29333592017-01-09 12:27:11 -0800133OBJS += src/utils/bitfield.c
Hai Shalomc3565922019-10-28 11:58:20 -0700134OBJS += src/utils/ip_addr.c
Hai Shalomfdcde762020-04-02 11:19:20 -0700135OBJS += src/utils/crc32.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800136OBJS += wmm_ac.c
Dmitry Shmidt29333592017-01-09 12:27:11 -0800137OBJS += op_classes.c
138OBJS += rrm.c
Hai Shaloma20dcd72022-02-04 13:43:00 -0800139OBJS += twt.c
Hai Shalom899fcc72020-10-19 14:38:18 -0700140OBJS += robust_av.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700141OBJS_p = wpa_passphrase.c
142OBJS_p += src/utils/common.c
143OBJS_p += src/utils/wpa_debug.c
144OBJS_p += src/utils/wpabuf.c
145OBJS_c = wpa_cli.c src/common/wpa_ctrl.c
146OBJS_c += src/utils/wpa_debug.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800147OBJS_c += src/utils/common.c
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700148OBJS_c += src/common/cli.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700149OBJS_d =
150OBJS_priv =
151
152ifndef CONFIG_OS
153ifdef CONFIG_NATIVE_WINDOWS
154CONFIG_OS=win32
155else
156CONFIG_OS=unix
157endif
158endif
159
160ifeq ($(CONFIG_OS), internal)
161L_CFLAGS += -DOS_NO_C_LIB_DEFINES
162endif
163
164OBJS += src/utils/os_$(CONFIG_OS).c
165OBJS_p += src/utils/os_$(CONFIG_OS).c
166OBJS_c += src/utils/os_$(CONFIG_OS).c
167
168ifdef CONFIG_WPA_TRACE
169L_CFLAGS += -DWPA_TRACE
170OBJS += src/utils/trace.c
171OBJS_p += src/utils/trace.c
172OBJS_c += src/utils/trace.c
173LDFLAGS += -rdynamic
174L_CFLAGS += -funwind-tables
175ifdef CONFIG_WPA_TRACE_BFD
176L_CFLAGS += -DWPA_TRACE_BFD
177LIBS += -lbfd
178LIBS_p += -lbfd
179LIBS_c += -lbfd
180endif
181endif
182
183ifndef CONFIG_ELOOP
184CONFIG_ELOOP=eloop
185endif
186OBJS += src/utils/$(CONFIG_ELOOP).c
187OBJS_c += src/utils/$(CONFIG_ELOOP).c
188
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800189ifdef CONFIG_ELOOP_POLL
190L_CFLAGS += -DCONFIG_ELOOP_POLL
191endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700192
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700193ifdef CONFIG_ELOOP_EPOLL
194L_CFLAGS += -DCONFIG_ELOOP_EPOLL
195endif
196
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700197ifdef CONFIG_EAPOL_TEST
198L_CFLAGS += -Werror -DEAPOL_TEST
199endif
200
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800201ifdef CONFIG_HT_OVERRIDES
202L_CFLAGS += -DCONFIG_HT_OVERRIDES
203endif
204
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700205ifdef CONFIG_VHT_OVERRIDES
206L_CFLAGS += -DCONFIG_VHT_OVERRIDES
207endif
208
Hai Shalomfdcde762020-04-02 11:19:20 -0700209ifdef CONFIG_HE_OVERRIDES
210L_CFLAGS += -DCONFIG_HE_OVERRIDES
211endif
212
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700213ifndef CONFIG_BACKEND
214CONFIG_BACKEND=file
215endif
216
217ifeq ($(CONFIG_BACKEND), file)
218OBJS += config_file.c
219ifndef CONFIG_NO_CONFIG_BLOBS
220NEED_BASE64=y
221endif
222L_CFLAGS += -DCONFIG_BACKEND_FILE
223endif
224
225ifeq ($(CONFIG_BACKEND), winreg)
226OBJS += config_winreg.c
227endif
228
229ifeq ($(CONFIG_BACKEND), none)
230OBJS += config_none.c
231endif
232
233ifdef CONFIG_NO_CONFIG_WRITE
234L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE
235endif
236
237ifdef CONFIG_NO_CONFIG_BLOBS
238L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
239endif
240
241ifdef CONFIG_NO_SCAN_PROCESSING
242L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
243endif
244
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800245ifdef CONFIG_SUITEB
246L_CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800247endif
248
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800249ifdef CONFIG_SUITEB192
250L_CFLAGS += -DCONFIG_SUITEB192
251NEED_SHA384=y
252endif
253
Hai Shalom74f70d42019-02-11 14:42:39 -0800254ifdef CONFIG_OCV
255L_CFLAGS += -DCONFIG_OCV
256OBJS += src/common/ocv.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700257endif
258
259ifdef CONFIG_IEEE80211R
260L_CFLAGS += -DCONFIG_IEEE80211R
261OBJS += src/rsn_supp/wpa_ft.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700262endif
263
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800264ifdef CONFIG_MESH
265NEED_80211_COMMON=y
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800266NEED_AES_SIV=y
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800267CONFIG_SAE=y
268CONFIG_AP=y
269L_CFLAGS += -DCONFIG_MESH
270OBJS += mesh.c
271OBJS += mesh_mpm.c
272OBJS += mesh_rsn.c
273endif
274
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800275ifdef CONFIG_SAE
276L_CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800277OBJS += src/common/sae.c
Hai Shalom899fcc72020-10-19 14:38:18 -0700278ifdef CONFIG_SAE_PK
279L_CFLAGS += -DCONFIG_SAE_PK
280OBJS += src/common/sae_pk.c
281endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800282NEED_ECC=y
283NEED_DH_GROUPS=y
Hai Shalomb755a2a2020-04-23 21:49:02 -0700284NEED_HMAC_SHA256_KDF=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700285NEED_DRAGONFLY=y
Ahmed ElArabawy0ff61c52019-12-26 12:38:39 -0800286ifdef CONFIG_TESTING_OPTIONS
287NEED_DH_GROUPS_ALL=y
288endif
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800289endif
290
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700291ifdef CONFIG_DPP
292L_CFLAGS += -DCONFIG_DPP
293OBJS += src/common/dpp.c
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700294OBJS += src/common/dpp_auth.c
295OBJS += src/common/dpp_backup.c
296OBJS += src/common/dpp_crypto.c
297OBJS += src/common/dpp_pkex.c
298OBJS += src/common/dpp_reconfig.c
299OBJS += src/common/dpp_tcp.c
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700300OBJS += dpp_supplicant.c
301NEED_AES_SIV=y
302NEED_HMAC_SHA256_KDF=y
303NEED_HMAC_SHA384_KDF=y
304NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700305NEED_SHA384=y
306NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700307NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700308NEED_JSON=y
309NEED_GAS_SERVER=y
310NEED_BASE64=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700311NEED_ASN1=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700312ifdef CONFIG_DPP2
313L_CFLAGS += -DCONFIG_DPP2
314endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800315ifdef CONFIG_DPP3
316L_CFLAGS += -DCONFIG_DPP3
317endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700318endif
319
320ifdef CONFIG_OWE
321L_CFLAGS += -DCONFIG_OWE
322NEED_ECC=y
323NEED_HMAC_SHA256_KDF=y
324NEED_HMAC_SHA384_KDF=y
325NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700326NEED_SHA384=y
327NEED_SHA512=y
328endif
329
Jimmy Chencaaac072019-09-16 16:36:06 +0800330ifdef CONFIG_WAPI_INTERFACE
331L_CFLAGS += -DCONFIG_WAPI_INTERFACE
332endif
333
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800334ifdef CONFIG_FILS
335L_CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800336NEED_SHA384=y
337NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700338ifdef CONFIG_FILS_SK_PFS
339L_CFLAGS += -DCONFIG_FILS_SK_PFS
340NEED_ECC=y
341endif
342endif
343
344ifdef CONFIG_MBO
345CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800346endif
347
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800348ifdef CONFIG_WNM
349L_CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700350OBJS += wnm_sta.c
351endif
352
Dmitry Shmidt405b5af2011-05-09 14:53:38 -0700353ifdef CONFIG_TDLS
354L_CFLAGS += -DCONFIG_TDLS
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800355OBJS += src/rsn_supp/tdls.c
Dmitry Shmidt405b5af2011-05-09 14:53:38 -0700356endif
357
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800358ifdef CONFIG_TDLS_TESTING
359L_CFLAGS += -DCONFIG_TDLS_TESTING
360endif
361
Dmitry Shmidt29333592017-01-09 12:27:11 -0800362ifdef CONFIG_PMKSA_CACHE_EXTERNAL
363L_CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
364endif
365
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700366ifndef CONFIG_NO_WPA
367OBJS += src/rsn_supp/wpa.c
368OBJS += src/rsn_supp/preauth.c
369OBJS += src/rsn_supp/pmksa_cache.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700370OBJS += src/rsn_supp/wpa_ie.c
371OBJS += src/common/wpa_common.c
372NEED_AES=y
373NEED_SHA1=y
374NEED_MD5=y
375NEED_RC4=y
376else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700377L_CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700378endif
379
380ifdef CONFIG_IBSS_RSN
381NEED_RSN_AUTHENTICATOR=y
382L_CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700383L_CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700384OBJS += ibss_rsn.c
385endif
386
387ifdef CONFIG_P2P
388OBJS += p2p_supplicant.c
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700389OBJS += p2p_supplicant_sd.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700390OBJS += src/p2p/p2p.c
391OBJS += src/p2p/p2p_utils.c
392OBJS += src/p2p/p2p_parse.c
393OBJS += src/p2p/p2p_build.c
394OBJS += src/p2p/p2p_go_neg.c
395OBJS += src/p2p/p2p_sd.c
396OBJS += src/p2p/p2p_pd.c
397OBJS += src/p2p/p2p_invitation.c
398OBJS += src/p2p/p2p_dev_disc.c
399OBJS += src/p2p/p2p_group.c
400OBJS += src/ap/p2p_hostapd.c
401L_CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800402NEED_GAS=y
403NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800404CONFIG_WPS=y
405CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700406ifdef CONFIG_P2P_STRICT
407L_CFLAGS += -DCONFIG_P2P_STRICT
408endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700409ifdef CONFIG_WIFI_DISPLAY
410L_CFLAGS += -DCONFIG_WIFI_DISPLAY
411OBJS += wifi_display.c
412endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800413endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700414
Hai Shalom60840252021-02-19 19:02:11 -0800415ifdef CONFIG_PASN
416L_CFLAGS += -DCONFIG_PASN
417L_CFLAGS += -DCONFIG_PTKSA_CACHE
418NEED_HMAC_SHA256_KDF=y
419NEED_HMAC_SHA384_KDF=y
420NEED_SHA256=y
421NEED_SHA384=y
422OBJS += src/common/ptksa_cache.c
423OBJS += pasn_supplicant.c
424endif
425
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700426ifdef CONFIG_HS20
427OBJS += hs20_supplicant.c
428L_CFLAGS += -DCONFIG_HS20
429CONFIG_INTERWORKING=y
430endif
431
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800432ifdef CONFIG_INTERWORKING
433OBJS += interworking.c
434L_CFLAGS += -DCONFIG_INTERWORKING
435NEED_GAS=y
436endif
437
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800438ifdef CONFIG_FST
439L_CFLAGS += -DCONFIG_FST
440OBJS += src/fst/fst.c
441OBJS += src/fst/fst_session.c
442OBJS += src/fst/fst_iface.c
443OBJS += src/fst/fst_group.c
444OBJS += src/fst/fst_ctrl_aux.c
445ifdef CONFIG_FST_TEST
446L_CFLAGS += -DCONFIG_FST_TEST
447endif
448ifdef CONFIG_CTRL_IFACE
449OBJS += src/fst/fst_ctrl_iface.c
450endif
451endif
452
Hai Shalomfdcde762020-04-02 11:19:20 -0700453ifdef CONFIG_WEP
454L_CFLAGS += -DCONFIG_WEP
455endif
456
Hai Shalomb755a2a2020-04-23 21:49:02 -0700457ifdef CONFIG_NO_TKIP
458L_CFLAGS += -DCONFIG_NO_TKIP
459endif
460
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800461
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700462include $(LOCAL_PATH)/src/drivers/drivers.mk
463
464ifdef CONFIG_AP
465OBJS_d += $(DRV_BOTH_OBJS)
466L_CFLAGS += $(DRV_BOTH_CFLAGS)
467LDFLAGS += $(DRV_BOTH_LDFLAGS)
468LIBS += $(DRV_BOTH_LIBS)
469else
470NEED_AP_MLME=
471OBJS_d += $(DRV_WPA_OBJS)
472L_CFLAGS += $(DRV_WPA_CFLAGS)
473LDFLAGS += $(DRV_WPA_LDFLAGS)
474LIBS += $(DRV_WPA_LIBS)
475endif
476
477ifndef CONFIG_L2_PACKET
478CONFIG_L2_PACKET=linux
479endif
480
481OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c
482
483ifeq ($(CONFIG_L2_PACKET), pcap)
484ifdef CONFIG_WINPCAP
485L_CFLAGS += -DCONFIG_WINPCAP
486LIBS += -lwpcap -lpacket
487LIBS_w += -lwpcap
488else
489LIBS += -ldnet -lpcap
490endif
491endif
492
493ifeq ($(CONFIG_L2_PACKET), winpcap)
494LIBS += -lwpcap -lpacket
495LIBS_w += -lwpcap
496endif
497
498ifeq ($(CONFIG_L2_PACKET), freebsd)
499LIBS += -lpcap
500endif
501
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800502ifdef CONFIG_ERP
503L_CFLAGS += -DCONFIG_ERP
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800504NEED_HMAC_SHA256_KDF=y
505endif
506
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700507ifdef CONFIG_EAP_TLS
508# EAP-TLS
509ifeq ($(CONFIG_EAP_TLS), dyn)
510L_CFLAGS += -DEAP_TLS_DYNAMIC
511EAPDYN += src/eap_peer/eap_tls.so
512else
513L_CFLAGS += -DEAP_TLS
514OBJS += src/eap_peer/eap_tls.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700515endif
516TLS_FUNCS=y
517CONFIG_IEEE8021X_EAPOL=y
518endif
519
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800520ifdef CONFIG_EAP_UNAUTH_TLS
521# EAP-UNAUTH-TLS
522L_CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700523ifndef CONFIG_EAP_TLS
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800524OBJS += src/eap_peer/eap_tls.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800525TLS_FUNCS=y
526endif
527CONFIG_IEEE8021X_EAPOL=y
528endif
529
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700530ifdef CONFIG_EAP_PEAP
531# EAP-PEAP
532ifeq ($(CONFIG_EAP_PEAP), dyn)
533L_CFLAGS += -DEAP_PEAP_DYNAMIC
534EAPDYN += src/eap_peer/eap_peap.so
535else
536L_CFLAGS += -DEAP_PEAP
537OBJS += src/eap_peer/eap_peap.c
538OBJS += src/eap_common/eap_peap_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700539endif
540TLS_FUNCS=y
541CONFIG_IEEE8021X_EAPOL=y
542endif
543
544ifdef CONFIG_EAP_TTLS
545# EAP-TTLS
546ifeq ($(CONFIG_EAP_TTLS), dyn)
547L_CFLAGS += -DEAP_TTLS_DYNAMIC
548EAPDYN += src/eap_peer/eap_ttls.so
549else
550L_CFLAGS += -DEAP_TTLS
551OBJS += src/eap_peer/eap_ttls.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700552endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700553TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800554ifndef CONFIG_FIPS
555MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700556CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800557endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700558CONFIG_IEEE8021X_EAPOL=y
559endif
560
561ifdef CONFIG_EAP_MD5
562# EAP-MD5
563ifeq ($(CONFIG_EAP_MD5), dyn)
564L_CFLAGS += -DEAP_MD5_DYNAMIC
565EAPDYN += src/eap_peer/eap_md5.so
566else
567L_CFLAGS += -DEAP_MD5
568OBJS += src/eap_peer/eap_md5.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700569endif
570CHAP=y
571CONFIG_IEEE8021X_EAPOL=y
572endif
573
574# backwards compatibility for old spelling
575ifdef CONFIG_MSCHAPV2
576ifndef CONFIG_EAP_MSCHAPV2
577CONFIG_EAP_MSCHAPV2=y
578endif
579endif
580
581ifdef CONFIG_EAP_MSCHAPV2
582# EAP-MSCHAPv2
583ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
584L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
585EAPDYN += src/eap_peer/eap_mschapv2.so
586EAPDYN += src/eap_peer/mschapv2.so
587else
588L_CFLAGS += -DEAP_MSCHAPv2
589OBJS += src/eap_peer/eap_mschapv2.c
590OBJS += src/eap_peer/mschapv2.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700591endif
592MS_FUNCS=y
593CONFIG_IEEE8021X_EAPOL=y
594endif
595
596ifdef CONFIG_EAP_GTC
597# EAP-GTC
598ifeq ($(CONFIG_EAP_GTC), dyn)
599L_CFLAGS += -DEAP_GTC_DYNAMIC
600EAPDYN += src/eap_peer/eap_gtc.so
601else
602L_CFLAGS += -DEAP_GTC
603OBJS += src/eap_peer/eap_gtc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700604endif
605CONFIG_IEEE8021X_EAPOL=y
606endif
607
608ifdef CONFIG_EAP_OTP
609# EAP-OTP
610ifeq ($(CONFIG_EAP_OTP), dyn)
611L_CFLAGS += -DEAP_OTP_DYNAMIC
612EAPDYN += src/eap_peer/eap_otp.so
613else
614L_CFLAGS += -DEAP_OTP
615OBJS += src/eap_peer/eap_otp.c
616endif
617CONFIG_IEEE8021X_EAPOL=y
618endif
619
620ifdef CONFIG_EAP_SIM
621# EAP-SIM
622ifeq ($(CONFIG_EAP_SIM), dyn)
623L_CFLAGS += -DEAP_SIM_DYNAMIC
624EAPDYN += src/eap_peer/eap_sim.so
625else
626L_CFLAGS += -DEAP_SIM
627OBJS += src/eap_peer/eap_sim.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700628endif
629CONFIG_IEEE8021X_EAPOL=y
630CONFIG_EAP_SIM_COMMON=y
631NEED_AES_CBC=y
632endif
633
634ifdef CONFIG_EAP_LEAP
635# EAP-LEAP
636ifeq ($(CONFIG_EAP_LEAP), dyn)
637L_CFLAGS += -DEAP_LEAP_DYNAMIC
638EAPDYN += src/eap_peer/eap_leap.so
639else
640L_CFLAGS += -DEAP_LEAP
641OBJS += src/eap_peer/eap_leap.c
642endif
643MS_FUNCS=y
644CONFIG_IEEE8021X_EAPOL=y
645endif
646
647ifdef CONFIG_EAP_PSK
648# EAP-PSK
649ifeq ($(CONFIG_EAP_PSK), dyn)
650L_CFLAGS += -DEAP_PSK_DYNAMIC
651EAPDYN += src/eap_peer/eap_psk.so
652else
653L_CFLAGS += -DEAP_PSK
654OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700655endif
656CONFIG_IEEE8021X_EAPOL=y
657NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700658NEED_AES_ENCBLOCK=y
659NEED_AES_EAX=y
660endif
661
662ifdef CONFIG_EAP_AKA
663# EAP-AKA
664ifeq ($(CONFIG_EAP_AKA), dyn)
665L_CFLAGS += -DEAP_AKA_DYNAMIC
666EAPDYN += src/eap_peer/eap_aka.so
667else
668L_CFLAGS += -DEAP_AKA
669OBJS += src/eap_peer/eap_aka.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700670endif
671CONFIG_IEEE8021X_EAPOL=y
672CONFIG_EAP_SIM_COMMON=y
673NEED_AES_CBC=y
674endif
675
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800676ifdef CONFIG_EAP_PROXY
677L_CFLAGS += -DCONFIG_EAP_PROXY
678OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c
Dmitry Shmidt04f534e2013-12-09 15:50:16 -0800679include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800680CONFIG_IEEE8021X_EAPOL=y
681endif
682
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700683ifdef CONFIG_EAP_AKA_PRIME
684# EAP-AKA'
685ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
686L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
687else
688L_CFLAGS += -DEAP_AKA_PRIME
689endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700690endif
691
692ifdef CONFIG_EAP_SIM_COMMON
693OBJS += src/eap_common/eap_sim_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700694NEED_AES=y
695NEED_FIPS186_2_PRF=y
696endif
697
698ifdef CONFIG_EAP_FAST
699# EAP-FAST
700ifeq ($(CONFIG_EAP_FAST), dyn)
701L_CFLAGS += -DEAP_FAST_DYNAMIC
702EAPDYN += src/eap_peer/eap_fast.so
703EAPDYN += src/eap_common/eap_fast_common.c
704else
705L_CFLAGS += -DEAP_FAST
706OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
707OBJS += src/eap_common/eap_fast_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700708endif
709TLS_FUNCS=y
710CONFIG_IEEE8021X_EAPOL=y
711NEED_T_PRF=y
712endif
713
Hai Shalom81f62d82019-07-22 12:10:00 -0700714ifdef CONFIG_EAP_TEAP
715# EAP-TEAP
716ifeq ($(CONFIG_EAP_TEAP), dyn)
717L_CFLAGS += -DEAP_YEAP_DYNAMIC
718EAPDYN += src/eap_peer/eap_teap.so
719EAPDYN += src/eap_common/eap_teap_common.c
720else
721L_CFLAGS += -DEAP_TEAP
722OBJS += src/eap_peer/eap_teap.c src/eap_peer/eap_teap_pac.c
723OBJS += src/eap_common/eap_teap_common.c
724endif
725TLS_FUNCS=y
726CONFIG_IEEE8021X_EAPOL=y
727NEED_T_PRF=y
728NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700729NEED_TLS_PRF_SHA256=y
730NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700731endif
732
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700733ifdef CONFIG_EAP_PAX
734# EAP-PAX
735ifeq ($(CONFIG_EAP_PAX), dyn)
736L_CFLAGS += -DEAP_PAX_DYNAMIC
737EAPDYN += src/eap_peer/eap_pax.so
738else
739L_CFLAGS += -DEAP_PAX
740OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700741endif
742CONFIG_IEEE8021X_EAPOL=y
743endif
744
745ifdef CONFIG_EAP_SAKE
746# EAP-SAKE
747ifeq ($(CONFIG_EAP_SAKE), dyn)
748L_CFLAGS += -DEAP_SAKE_DYNAMIC
749EAPDYN += src/eap_peer/eap_sake.so
750else
751L_CFLAGS += -DEAP_SAKE
752OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700753endif
754CONFIG_IEEE8021X_EAPOL=y
755endif
756
757ifdef CONFIG_EAP_GPSK
758# EAP-GPSK
759ifeq ($(CONFIG_EAP_GPSK), dyn)
760L_CFLAGS += -DEAP_GPSK_DYNAMIC
761EAPDYN += src/eap_peer/eap_gpsk.so
762else
763L_CFLAGS += -DEAP_GPSK
764OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700765endif
766CONFIG_IEEE8021X_EAPOL=y
767ifdef CONFIG_EAP_GPSK_SHA256
768L_CFLAGS += -DEAP_GPSK_SHA256
769endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700770endif
771
772ifdef CONFIG_EAP_PWD
773L_CFLAGS += -DEAP_PWD
774OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700775CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700776NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700777NEED_DRAGONFLY=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700778endif
779
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700780ifdef CONFIG_EAP_EKE
781# EAP-EKE
782ifeq ($(CONFIG_EAP_EKE), dyn)
783L_CFLAGS += -DEAP_EKE_DYNAMIC
784EAPDYN += src/eap_peer/eap_eke.so
785else
786L_CFLAGS += -DEAP_EKE
787OBJS += src/eap_peer/eap_eke.c src/eap_common/eap_eke_common.c
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700788endif
789CONFIG_IEEE8021X_EAPOL=y
790NEED_DH_GROUPS=y
791NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800792NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700793endif
794
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700795ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700796# EAP-WSC
797L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
798OBJS += wps_supplicant.c
799OBJS += src/utils/uuid.c
800OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
801OBJS += src/wps/wps.c
802OBJS += src/wps/wps_common.c
803OBJS += src/wps/wps_attr_parse.c
804OBJS += src/wps/wps_attr_build.c
805OBJS += src/wps/wps_attr_process.c
806OBJS += src/wps/wps_dev_attr.c
807OBJS += src/wps/wps_enrollee.c
808OBJS += src/wps/wps_registrar.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700809CONFIG_IEEE8021X_EAPOL=y
810NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700811NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700812NEED_AES_CBC=y
813NEED_MODEXP=y
814
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700815ifdef CONFIG_WPS_NFC
816L_CFLAGS += -DCONFIG_WPS_NFC
817OBJS += src/wps/ndef.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700818NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700819endif
820
821ifdef NEED_WPS_OOB
822L_CFLAGS += -DCONFIG_WPS_OOB
823endif
824
825ifdef CONFIG_WPS_ER
826CONFIG_WPS_UPNP=y
827L_CFLAGS += -DCONFIG_WPS_ER
828OBJS += src/wps/wps_er.c
829OBJS += src/wps/wps_er_ssdp.c
830endif
831
832ifdef CONFIG_WPS_UPNP
833L_CFLAGS += -DCONFIG_WPS_UPNP
834OBJS += src/wps/wps_upnp.c
835OBJS += src/wps/wps_upnp_ssdp.c
836OBJS += src/wps/wps_upnp_web.c
837OBJS += src/wps/wps_upnp_event.c
838OBJS += src/wps/wps_upnp_ap.c
839OBJS += src/wps/upnp_xml.c
840OBJS += src/wps/httpread.c
841OBJS += src/wps/http_client.c
842OBJS += src/wps/http_server.c
843endif
844
845ifdef CONFIG_WPS_STRICT
846L_CFLAGS += -DCONFIG_WPS_STRICT
847OBJS += src/wps/wps_validate.c
848endif
849
850ifdef CONFIG_WPS_TESTING
851L_CFLAGS += -DCONFIG_WPS_TESTING
852endif
853
854ifdef CONFIG_WPS_REG_DISABLE_OPEN
855L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
856endif
857
858endif
859
860ifdef CONFIG_EAP_IKEV2
861# EAP-IKEv2
862ifeq ($(CONFIG_EAP_IKEV2), dyn)
863L_CFLAGS += -DEAP_IKEV2_DYNAMIC
864EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
865EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
866else
867L_CFLAGS += -DEAP_IKEV2
868OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
869OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700870endif
871CONFIG_IEEE8021X_EAPOL=y
872NEED_DH_GROUPS=y
873NEED_DH_GROUPS_ALL=y
874NEED_MODEXP=y
875NEED_CIPHER=y
876endif
877
878ifdef CONFIG_EAP_VENDOR_TEST
879ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
880L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
881EAPDYN += src/eap_peer/eap_vendor_test.so
882else
883L_CFLAGS += -DEAP_VENDOR_TEST
884OBJS += src/eap_peer/eap_vendor_test.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700885endif
886CONFIG_IEEE8021X_EAPOL=y
887endif
888
889ifdef CONFIG_EAP_TNC
890# EAP-TNC
891L_CFLAGS += -DEAP_TNC
892OBJS += src/eap_peer/eap_tnc.c
893OBJS += src/eap_peer/tncc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700894NEED_BASE64=y
895ifndef CONFIG_NATIVE_WINDOWS
896ifndef CONFIG_DRIVER_BSD
897LIBS += -ldl
898endif
899endif
900endif
901
902ifdef CONFIG_IEEE8021X_EAPOL
903# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
904L_CFLAGS += -DIEEE8021X_EAPOL
905OBJS += src/eapol_supp/eapol_supp_sm.c
906OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
907NEED_EAP_COMMON=y
908ifdef CONFIG_DYNAMIC_EAP_METHODS
909L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
910LIBS += -ldl -rdynamic
911endif
912endif
913
914ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700915NEED_EAP_COMMON=y
916NEED_RSN_AUTHENTICATOR=y
917L_CFLAGS += -DCONFIG_AP
918OBJS += ap.c
919L_CFLAGS += -DCONFIG_NO_RADIUS
920L_CFLAGS += -DCONFIG_NO_ACCOUNTING
921L_CFLAGS += -DCONFIG_NO_VLAN
922OBJS += src/ap/hostapd.c
923OBJS += src/ap/wpa_auth_glue.c
924OBJS += src/ap/utils.c
925OBJS += src/ap/authsrv.c
926OBJS += src/ap/ap_config.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700927OBJS += src/ap/sta_info.c
928OBJS += src/ap/tkip_countermeasures.c
929OBJS += src/ap/ap_mlme.c
930OBJS += src/ap/ieee802_1x.c
931OBJS += src/eapol_auth/eapol_auth_sm.c
932OBJS += src/ap/ieee802_11_auth.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800933OBJS += src/ap/ieee802_11_shared.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700934OBJS += src/ap/drv_callbacks.c
935OBJS += src/ap/ap_drv_ops.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800936OBJS += src/ap/beacon.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800937OBJS += src/ap/bss_load.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800938OBJS += src/ap/eap_user_db.c
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700939OBJS += src/ap/neighbor_db.c
940OBJS += src/ap/rrm.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700941OBJS += src/ap/ieee802_11_ht.c
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700942ifdef CONFIG_IEEE80211AC
943OBJS += src/ap/ieee802_11_vht.c
944endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800945ifdef CONFIG_IEEE80211AX
946OBJS += src/ap/ieee802_11_he.c
947endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700948ifdef CONFIG_WNM_AP
949L_CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800950OBJS += src/ap/wnm_ap.c
951endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800952ifdef CONFIG_MBO
953OBJS += src/ap/mbo_ap.c
954endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800955ifdef CONFIG_FILS
956OBJS += src/ap/fils_hlp.c
957endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700958ifdef CONFIG_CTRL_IFACE
959OBJS += src/ap/ctrl_iface_ap.c
960endif
961
962L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
963OBJS += src/eap_server/eap_server.c
964OBJS += src/eap_server/eap_server_identity.c
965OBJS += src/eap_server/eap_server_methods.c
966
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700967ifdef CONFIG_IEEE80211AC
968L_CFLAGS += -DCONFIG_IEEE80211AC
969endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800970ifdef CONFIG_IEEE80211AX
971L_CFLAGS += -DCONFIG_IEEE80211AX
972endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700973
974ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700975OBJS += src/ap/wmm.c
976OBJS += src/ap/ap_list.c
977OBJS += src/ap/ieee802_11.c
978OBJS += src/ap/hw_features.c
Dmitry Shmidt051af732013-10-22 13:52:46 -0700979OBJS += src/ap/dfs.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700980L_CFLAGS += -DNEED_AP_MLME
981endif
982ifdef CONFIG_WPS
983L_CFLAGS += -DEAP_SERVER_WSC
984OBJS += src/ap/wps_hostapd.c
985OBJS += src/eap_server/eap_server_wsc.c
986endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700987ifdef CONFIG_DPP
988OBJS += src/ap/dpp_hostapd.c
989OBJS += src/ap/gas_query_ap.c
Hai Shalomc3565922019-10-28 11:58:20 -0700990NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700991endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700992ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -0700993NEED_AP_GAS_SERV=y
994endif
995ifdef NEED_AP_GAS_SERV
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700996OBJS += src/ap/gas_serv.c
997endif
998ifdef CONFIG_HS20
999OBJS += src/ap/hs20.c
1000endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001001endif
1002
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -08001003ifdef CONFIG_MBO
1004OBJS += mbo.c
1005L_CFLAGS += -DCONFIG_MBO
1006endif
1007
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001008ifdef CONFIG_TESTING_OPTIONS
1009L_CFLAGS += -DCONFIG_TESTING_OPTIONS
1010endif
1011
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001012ifdef NEED_RSN_AUTHENTICATOR
1013L_CFLAGS += -DCONFIG_NO_RADIUS
1014NEED_AES_WRAP=y
1015OBJS += src/ap/wpa_auth.c
1016OBJS += src/ap/wpa_auth_ie.c
1017OBJS += src/ap/pmksa_cache_auth.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001018endif
1019
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08001020ifdef CONFIG_ACS
1021L_CFLAGS += -DCONFIG_ACS
1022OBJS += src/ap/acs.c
1023LIBS += -lm
1024endif
1025
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001026ifdef CONFIG_PCSC
1027# PC/SC interface for smartcards (USIM, GSM SIM)
1028L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
1029OBJS += src/utils/pcsc_funcs.c
1030# -lpthread may not be needed depending on how pcsc-lite was configured
1031ifdef CONFIG_NATIVE_WINDOWS
1032#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
1033#dynamic symbol loading that is now used in pcsc_funcs.c
1034#LIBS += -lwinscard
1035else
1036LIBS += -lpcsclite -lpthread
1037endif
1038endif
1039
1040ifdef CONFIG_SIM_SIMULATOR
1041L_CFLAGS += -DCONFIG_SIM_SIMULATOR
1042NEED_MILENAGE=y
1043endif
1044
1045ifdef CONFIG_USIM_SIMULATOR
1046L_CFLAGS += -DCONFIG_USIM_SIMULATOR
1047NEED_MILENAGE=y
1048endif
1049
1050ifdef NEED_MILENAGE
1051OBJS += src/crypto/milenage.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001052NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001053endif
1054
1055ifdef CONFIG_PKCS12
1056L_CFLAGS += -DPKCS12_FUNCS
1057endif
1058
1059ifdef CONFIG_SMARTCARD
1060L_CFLAGS += -DCONFIG_SMARTCARD
1061endif
1062
Hai Shalom81f62d82019-07-22 12:10:00 -07001063ifdef NEED_DRAGONFLY
1064OBJS += src/common/dragonfly.c
1065endif
1066
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001067ifdef MS_FUNCS
1068OBJS += src/crypto/ms_funcs.c
1069NEED_DES=y
1070NEED_MD4=y
1071endif
1072
1073ifdef CHAP
1074OBJS += src/eap_common/chap.c
1075endif
1076
1077ifdef TLS_FUNCS
1078NEED_DES=y
1079# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
1080OBJS += src/eap_peer/eap_tls_common.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001081ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001082NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001083NEED_SHA1=y
1084NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001085endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001086endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001087
1088ifndef CONFIG_TLS
1089CONFIG_TLS=openssl
Rich Canningsf8d3d112018-10-09 13:56:37 -07001090L_CFLAGS += -DCONFIG_USE_OPENSSL_RNG
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001091endif
1092
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001093ifdef CONFIG_TLSV11
1094L_CFLAGS += -DCONFIG_TLSV11
1095endif
1096
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001097ifdef CONFIG_TLSV12
1098L_CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001099endif
1100
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001101ifeq ($(CONFIG_TLS), openssl)
1102ifdef TLS_FUNCS
1103L_CFLAGS += -DEAP_TLS_OPENSSL
1104OBJS += src/crypto/tls_openssl.c
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001105OBJS += src/crypto/tls_openssl_ocsp.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001106LIBS += -lssl
1107endif
1108OBJS += src/crypto/crypto_openssl.c
1109OBJS_p += src/crypto/crypto_openssl.c
1110ifdef NEED_FIPS186_2_PRF
1111OBJS += src/crypto/fips_prf_openssl.c
1112endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001113NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001114LIBS += -lcrypto
1115LIBS_p += -lcrypto
Dmitry Shmidtd5e49232012-12-03 15:08:10 -08001116ifdef CONFIG_TLS_ADD_DL
1117LIBS += -ldl
1118LIBS_p += -ldl
1119endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001120ifndef CONFIG_TLS_DEFAULT_CIPHERS
1121CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1122endif
1123L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001124endif
1125
1126ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001127ifndef CONFIG_CRYPTO
1128# default to libgcrypt
1129CONFIG_CRYPTO=gnutls
1130endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001131ifdef TLS_FUNCS
1132OBJS += src/crypto/tls_gnutls.c
1133LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001134endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001135OBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c
1136OBJS_p += src/crypto/crypto_$(CONFIG_CRYPTO).c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001137ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001138OBJS += src/crypto/fips_prf_internal.c
1139OBJS += src/crypto/sha1-internal.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001140endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001141ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001142LIBS += -lgcrypt
1143LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001144CONFIG_INTERNAL_RC4=y
1145CONFIG_INTERNAL_DH_GROUP5=y
1146endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001147ifeq ($(CONFIG_CRYPTO), nettle)
1148LIBS += -lnettle -lgmp
1149LIBS_p += -lnettle -lgmp
1150CONFIG_INTERNAL_RC4=y
1151CONFIG_INTERNAL_DH_GROUP5=y
1152endif
1153endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001154
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001155ifeq ($(CONFIG_TLS), internal)
1156ifndef CONFIG_CRYPTO
1157CONFIG_CRYPTO=internal
1158endif
1159ifdef TLS_FUNCS
1160OBJS += src/crypto/crypto_internal-rsa.c
1161OBJS += src/crypto/tls_internal.c
1162OBJS += src/tls/tlsv1_common.c
1163OBJS += src/tls/tlsv1_record.c
1164OBJS += src/tls/tlsv1_cred.c
1165OBJS += src/tls/tlsv1_client.c
1166OBJS += src/tls/tlsv1_client_write.c
1167OBJS += src/tls/tlsv1_client_read.c
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001168OBJS += src/tls/tlsv1_client_ocsp.c
Hai Shalomfdcde762020-04-02 11:19:20 -07001169NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001170OBJS += src/tls/rsa.c
1171OBJS += src/tls/x509v3.c
1172OBJS += src/tls/pkcs1.c
1173OBJS += src/tls/pkcs5.c
1174OBJS += src/tls/pkcs8.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001175NEED_BASE64=y
1176NEED_TLS_PRF=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001177ifdef CONFIG_TLSV12
1178NEED_TLS_PRF_SHA256=y
1179endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001180NEED_MODEXP=y
1181NEED_CIPHER=y
1182L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1183endif
1184ifdef NEED_CIPHER
1185NEED_DES=y
1186OBJS += src/crypto/crypto_internal-cipher.c
1187endif
1188ifdef NEED_MODEXP
1189OBJS += src/crypto/crypto_internal-modexp.c
1190OBJS += src/tls/bignum.c
1191endif
1192ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1193OBJS += src/crypto/crypto_libtomcrypt.c
1194OBJS_p += src/crypto/crypto_libtomcrypt.c
1195LIBS += -ltomcrypt -ltfm
1196LIBS_p += -ltomcrypt -ltfm
1197CONFIG_INTERNAL_SHA256=y
1198CONFIG_INTERNAL_RC4=y
1199CONFIG_INTERNAL_DH_GROUP5=y
1200endif
1201ifeq ($(CONFIG_CRYPTO), internal)
1202OBJS += src/crypto/crypto_internal.c
1203OBJS_p += src/crypto/crypto_internal.c
1204NEED_AES_ENC=y
1205L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1206ifdef CONFIG_INTERNAL_LIBTOMMATH
1207L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1208ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1209L_CFLAGS += -DLTM_FAST
1210endif
1211else
1212LIBS += -ltommath
1213LIBS_p += -ltommath
1214endif
1215CONFIG_INTERNAL_AES=y
1216CONFIG_INTERNAL_DES=y
1217CONFIG_INTERNAL_SHA1=y
1218CONFIG_INTERNAL_MD4=y
1219CONFIG_INTERNAL_MD5=y
1220CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001221CONFIG_INTERNAL_SHA384=y
1222CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001223CONFIG_INTERNAL_RC4=y
1224CONFIG_INTERNAL_DH_GROUP5=y
1225endif
1226ifeq ($(CONFIG_CRYPTO), cryptoapi)
1227OBJS += src/crypto/crypto_cryptoapi.c
1228OBJS_p += src/crypto/crypto_cryptoapi.c
1229L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1230CONFIG_INTERNAL_SHA256=y
1231CONFIG_INTERNAL_RC4=y
1232endif
1233endif
1234
1235ifeq ($(CONFIG_TLS), none)
1236ifdef TLS_FUNCS
1237OBJS += src/crypto/tls_none.c
1238L_CFLAGS += -DEAP_TLS_NONE
1239CONFIG_INTERNAL_AES=y
1240CONFIG_INTERNAL_SHA1=y
1241CONFIG_INTERNAL_MD5=y
1242endif
1243OBJS += src/crypto/crypto_none.c
1244OBJS_p += src/crypto/crypto_none.c
1245CONFIG_INTERNAL_SHA256=y
1246CONFIG_INTERNAL_RC4=y
1247endif
1248
1249ifdef TLS_FUNCS
1250ifdef CONFIG_SMARTCARD
1251ifndef CONFIG_NATIVE_WINDOWS
1252ifneq ($(CONFIG_L2_PACKET), freebsd)
1253LIBS += -ldl
1254endif
1255endif
1256endif
1257endif
1258
1259ifndef TLS_FUNCS
1260OBJS += src/crypto/tls_none.c
1261ifeq ($(CONFIG_TLS), internal)
1262CONFIG_INTERNAL_AES=y
1263CONFIG_INTERNAL_SHA1=y
1264CONFIG_INTERNAL_MD5=y
1265CONFIG_INTERNAL_RC4=y
1266endif
1267endif
1268
1269AESOBJS = # none so far (see below)
1270ifdef CONFIG_INTERNAL_AES
1271AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
1272endif
1273
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001274ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001275NEED_INTERNAL_AES_WRAP=y
1276endif
1277ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1278# Seems to be needed at least with BoringSSL
1279NEED_INTERNAL_AES_WRAP=y
1280L_CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1281endif
1282ifdef CONFIG_FIPS
1283# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1284# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1285NEED_INTERNAL_AES_WRAP=y
1286endif
1287
1288ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001289AESOBJS += src/crypto/aes-unwrap.c
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001290endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001291ifdef NEED_AES_EAX
1292AESOBJS += src/crypto/aes-eax.c
1293NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001294endif
1295ifdef NEED_AES_SIV
1296AESOBJS += src/crypto/aes-siv.c
1297NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001298endif
1299ifdef NEED_AES_CTR
1300AESOBJS += src/crypto/aes-ctr.c
1301endif
1302ifdef NEED_AES_ENCBLOCK
1303AESOBJS += src/crypto/aes-encblock.c
1304endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001305NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001306ifdef CONFIG_OPENSSL_CMAC
Dmitry Shmidt0fdea2c2013-11-05 18:12:54 -08001307L_CFLAGS += -DCONFIG_OPENSSL_CMAC
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001308else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001309AESOBJS += src/crypto/aes-omac1.c
1310endif
1311ifdef NEED_AES_WRAP
1312NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001313ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001314AESOBJS += src/crypto/aes-wrap.c
1315endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001316endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001317ifdef NEED_AES_CBC
1318NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001319ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001320AESOBJS += src/crypto/aes-cbc.c
1321endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001322endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001323ifdef NEED_AES_ENC
1324ifdef CONFIG_INTERNAL_AES
1325AESOBJS += src/crypto/aes-internal-enc.c
1326endif
1327endif
1328ifdef NEED_AES
1329OBJS += $(AESOBJS)
1330endif
1331
1332SHA1OBJS =
1333ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001334ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001335ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001336SHA1OBJS += src/crypto/sha1.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001337endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001338endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001339SHA1OBJS += src/crypto/sha1-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001340ifdef CONFIG_INTERNAL_SHA1
1341SHA1OBJS += src/crypto/sha1-internal.c
1342ifdef NEED_FIPS186_2_PRF
1343SHA1OBJS += src/crypto/fips_prf_internal.c
1344endif
1345endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001346ifdef CONFIG_NO_WPA_PASSPHRASE
1347L_CFLAGS += -DCONFIG_NO_PBKDF2
1348else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001349ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001350SHA1OBJS += src/crypto/sha1-pbkdf2.c
1351endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001352endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001353ifdef NEED_T_PRF
1354SHA1OBJS += src/crypto/sha1-tprf.c
1355endif
1356ifdef NEED_TLS_PRF
1357SHA1OBJS += src/crypto/sha1-tlsprf.c
1358endif
1359endif
1360
Dmitry Shmidt54605472013-11-08 11:10:19 -08001361MD5OBJS =
1362ifndef CONFIG_FIPS
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001363ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001364ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt54605472013-11-08 11:10:19 -08001365MD5OBJS += src/crypto/md5.c
1366endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001367endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001368endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001369ifdef NEED_MD5
1370ifdef CONFIG_INTERNAL_MD5
1371MD5OBJS += src/crypto/md5-internal.c
1372endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001373OBJS += $(MD5OBJS)
1374OBJS_p += $(MD5OBJS)
1375endif
1376
1377ifdef NEED_MD4
1378ifdef CONFIG_INTERNAL_MD4
1379OBJS += src/crypto/md4-internal.c
1380endif
1381endif
1382
1383DESOBJS = # none needed when not internal
1384ifdef NEED_DES
1385ifdef CONFIG_INTERNAL_DES
1386DESOBJS += src/crypto/des-internal.c
1387endif
1388endif
1389
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001390ifdef CONFIG_NO_RC4
1391L_CFLAGS += -DCONFIG_NO_RC4
1392endif
1393
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001394ifdef NEED_RC4
1395ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001396ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001397OBJS += src/crypto/rc4.c
1398endif
1399endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001400endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001401
1402SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001403L_CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001404ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001405ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001406SHA256OBJS += src/crypto/sha256.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001407endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001408endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001409SHA256OBJS += src/crypto/sha256-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001410ifdef CONFIG_INTERNAL_SHA256
1411SHA256OBJS += src/crypto/sha256-internal.c
1412endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001413ifdef CONFIG_INTERNAL_SHA384
1414L_CFLAGS += -DCONFIG_INTERNAL_SHA384
1415SHA256OBJS += src/crypto/sha384-internal.c
1416endif
1417ifdef CONFIG_INTERNAL_SHA512
1418L_CFLAGS += -DCONFIG_INTERNAL_SHA512
1419SHA256OBJS += src/crypto/sha512-internal.c
1420endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001421ifdef NEED_TLS_PRF_SHA256
1422SHA256OBJS += src/crypto/sha256-tlsprf.c
1423endif
Hai Shalomc3565922019-10-28 11:58:20 -07001424ifdef NEED_TLS_PRF_SHA384
1425SHA256OBJS += src/crypto/sha384-tlsprf.c
1426endif
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001427ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001428L_CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001429SHA256OBJS += src/crypto/sha256-kdf.c
1430endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001431ifdef NEED_HMAC_SHA384_KDF
1432L_CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1433SHA256OBJS += src/crypto/sha384-kdf.c
1434endif
1435ifdef NEED_HMAC_SHA512_KDF
1436L_CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1437SHA256OBJS += src/crypto/sha512-kdf.c
1438endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001439OBJS += $(SHA256OBJS)
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001440ifdef NEED_SHA384
1441L_CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001442ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001443ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001444OBJS += src/crypto/sha384.c
1445endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001446endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001447OBJS += src/crypto/sha384-prf.c
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001448endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001449ifdef NEED_SHA512
1450L_CFLAGS += -DCONFIG_SHA512
1451ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001452ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001453OBJS += src/crypto/sha512.c
1454endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001455endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001456OBJS += src/crypto/sha512-prf.c
1457endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001458
Hai Shalomfdcde762020-04-02 11:19:20 -07001459ifdef NEED_ASN1
1460OBJS += src/tls/asn1.c
1461endif
1462
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001463ifdef NEED_DH_GROUPS
1464OBJS += src/crypto/dh_groups.c
1465endif
1466ifdef NEED_DH_GROUPS_ALL
1467L_CFLAGS += -DALL_DH_GROUPS
1468endif
1469ifdef CONFIG_INTERNAL_DH_GROUP5
1470ifdef NEED_DH_GROUPS
1471OBJS += src/crypto/dh_group5.c
1472endif
1473endif
1474
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001475ifdef NEED_ECC
1476L_CFLAGS += -DCONFIG_ECC
1477endif
1478
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001479ifdef CONFIG_NO_RANDOM_POOL
1480L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
1481else
1482OBJS += src/crypto/random.c
1483endif
1484
1485ifdef CONFIG_CTRL_IFACE
1486ifeq ($(CONFIG_CTRL_IFACE), y)
1487ifdef CONFIG_NATIVE_WINDOWS
1488CONFIG_CTRL_IFACE=named_pipe
1489else
1490CONFIG_CTRL_IFACE=unix
1491endif
1492endif
1493L_CFLAGS += -DCONFIG_CTRL_IFACE
1494ifeq ($(CONFIG_CTRL_IFACE), unix)
1495L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001496OBJS += src/common/ctrl_iface_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001497endif
1498ifeq ($(CONFIG_CTRL_IFACE), udp)
1499L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1500endif
1501ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1502L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1503endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001504ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1505CONFIG_CTRL_IFACE=udp
1506L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1507L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1508endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001509OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c
1510endif
1511
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001512ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001513L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1514OBJS += dbus/dbus_dict_helpers.c
1515OBJS += dbus/dbus_new_helpers.c
1516OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c
1517OBJS += dbus/dbus_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001518ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001519OBJS += dbus/dbus_new_handlers_wps.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001520endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001521ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001522OBJS += dbus/dbus_new_handlers_p2p.c
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001523endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001524ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001525OBJS += dbus/dbus_new_introspect.c
1526L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001527endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001528L_CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001529endif
1530
Gabriel Biren57ededa2021-09-03 16:08:50 +00001531ifdef CONFIG_CTRL_IFACE_AIDL
1532WPA_SUPPLICANT_USE_AIDL=y
1533L_CFLAGS += -DCONFIG_AIDL -DCONFIG_CTRL_IFACE_AIDL
Dmitry Shmidte4663042016-04-04 10:07:49 -07001534endif
1535
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001536ifdef CONFIG_READLINE
1537OBJS_c += src/utils/edit_readline.c
1538LIBS_c += -lncurses -lreadline
1539else
1540ifdef CONFIG_WPA_CLI_EDIT
1541OBJS_c += src/utils/edit.c
1542else
1543OBJS_c += src/utils/edit_simple.c
1544endif
1545endif
1546
1547ifdef CONFIG_NATIVE_WINDOWS
1548L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
1549LIBS += -lws2_32 -lgdi32 -lcrypt32
1550LIBS_c += -lws2_32
1551LIBS_p += -lws2_32 -lgdi32
1552ifeq ($(CONFIG_CRYPTO), cryptoapi)
1553LIBS_p += -lcrypt32
1554endif
1555endif
1556
1557ifdef CONFIG_NO_STDOUT_DEBUG
1558L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1559ifndef CONFIG_CTRL_IFACE
1560L_CFLAGS += -DCONFIG_NO_WPA_MSG
1561endif
1562endif
1563
1564ifdef CONFIG_ANDROID_LOG
1565L_CFLAGS += -DCONFIG_ANDROID_LOG
1566endif
1567
1568ifdef CONFIG_IPV6
1569# for eapol_test only
1570L_CFLAGS += -DCONFIG_IPV6
1571endif
1572
1573ifdef NEED_BASE64
1574OBJS += src/utils/base64.c
1575endif
1576
1577ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001578OBJS += sme.c
1579L_CFLAGS += -DCONFIG_SME
1580endif
1581
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001582OBJS += src/common/ieee802_11_common.c
Dmitry Shmidt746bde52015-01-12 13:01:47 -08001583OBJS += src/common/hw_features_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001584
1585ifdef NEED_EAP_COMMON
1586OBJS += src/eap_common/eap_common.c
1587endif
1588
1589ifndef CONFIG_MAIN
1590CONFIG_MAIN=main
1591endif
1592
1593ifdef CONFIG_DEBUG_SYSLOG
1594L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001595ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1596L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1597endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001598endif
1599
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001600ifdef CONFIG_DEBUG_LINUX_TRACING
1601L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1602endif
1603
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001604ifdef CONFIG_DEBUG_FILE
1605L_CFLAGS += -DCONFIG_DEBUG_FILE
1606endif
1607
1608ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1609L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1610endif
1611
1612ifdef CONFIG_FIPS
1613L_CFLAGS += -DCONFIG_FIPS
1614endif
1615
1616OBJS += $(SHA1OBJS) $(DESOBJS)
1617
1618OBJS_p += $(SHA1OBJS)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001619OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001620
1621ifdef CONFIG_BGSCAN_SIMPLE
1622L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1623OBJS += bgscan_simple.c
1624NEED_BGSCAN=y
1625endif
1626
1627ifdef CONFIG_BGSCAN_LEARN
1628L_CFLAGS += -DCONFIG_BGSCAN_LEARN
1629OBJS += bgscan_learn.c
1630NEED_BGSCAN=y
1631endif
1632
1633ifdef NEED_BGSCAN
1634L_CFLAGS += -DCONFIG_BGSCAN
1635OBJS += bgscan.c
1636endif
1637
Dmitry Shmidt04949592012-07-19 12:16:46 -07001638ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1639L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1640OBJS += autoscan_exponential.c
1641NEED_AUTOSCAN=y
1642endif
1643
1644ifdef CONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt0fdea2c2013-11-05 18:12:54 -08001645L_CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt04949592012-07-19 12:16:46 -07001646OBJS += autoscan_periodic.c
1647NEED_AUTOSCAN=y
1648endif
1649
1650ifdef NEED_AUTOSCAN
1651L_CFLAGS += -DCONFIG_AUTOSCAN
1652OBJS += autoscan.c
1653endif
1654
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001655ifdef CONFIG_EXT_PASSWORD_TEST
1656OBJS += src/utils/ext_password_test.c
1657L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1658NEED_EXT_PASSWORD=y
1659endif
1660
Hai Shalom60840252021-02-19 19:02:11 -08001661ifdef CONFIG_EXT_PASSWORD_FILE
1662OBJS += src/utils/ext_password_file.c
1663L_CFLAGS += -DCONFIG_EXT_PASSWORD_FILE
1664NEED_EXT_PASSWORD=y
1665endif
1666
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001667ifdef NEED_EXT_PASSWORD
1668OBJS += src/utils/ext_password.c
1669L_CFLAGS += -DCONFIG_EXT_PASSWORD
1670endif
1671
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001672ifdef NEED_GAS_SERVER
1673OBJS += src/common/gas_server.c
1674L_CFLAGS += -DCONFIG_GAS_SERVER
1675NEED_GAS=y
1676endif
1677
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001678ifdef NEED_GAS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001679OBJS += src/common/gas.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001680OBJS += gas_query.c
1681L_CFLAGS += -DCONFIG_GAS
1682NEED_OFFCHANNEL=y
1683endif
1684
1685ifdef NEED_OFFCHANNEL
1686OBJS += offchannel.c
1687L_CFLAGS += -DCONFIG_OFFCHANNEL
1688endif
1689
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001690ifdef NEED_JSON
1691OBJS += src/utils/json.c
1692L_CFLAGS += -DCONFIG_JSON
1693endif
1694
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001695OBJS += src/drivers/driver_common.c
1696
Hai Shalom60840252021-02-19 19:02:11 -08001697OBJS += wpa_supplicant.c events.c bssid_ignore.c wpas_glue.c scan.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001698OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c
1699OBJS_t += src/radius/radius_client.c
1700OBJS_t += src/radius/radius.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001701OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c
1702OBJS += $(CONFIG_MAIN).c
1703
1704ifdef CONFIG_PRIVSEP
1705OBJS_priv += $(OBJS_d) src/drivers/drivers.c
1706OBJS_priv += $(OBJS_l2)
1707OBJS_priv += src/utils/os_$(CONFIG_OS).c
1708OBJS_priv += src/utils/$(CONFIG_ELOOP).c
1709OBJS_priv += src/utils/common.c
1710OBJS_priv += src/utils/wpa_debug.c
1711OBJS_priv += src/utils/wpabuf.c
1712OBJS_priv += wpa_priv.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001713ifdef CONFIG_DRIVER_NL80211
1714OBJS_priv += src/common/ieee802_11_common.c
1715endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001716OBJS += src/l2_packet/l2_packet_privsep.c
1717OBJS += src/drivers/driver_privsep.c
1718EXTRA_progs += wpa_priv
1719else
1720OBJS += $(OBJS_d) src/drivers/drivers.c
1721OBJS += $(OBJS_l2)
1722endif
1723
1724ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1725L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1726OBJS += src/drivers/ndis_events.c
1727EXTRALIBS += -loleaut32 -lole32 -luuid
1728ifdef PLATFORMSDKLIB
1729EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1730else
1731EXTRALIBS += WbemUuid.Lib
1732endif
1733endif
1734
1735ifndef LDO
1736LDO=$(CC)
1737endif
1738
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001739########################
1740
1741include $(CLEAR_VARS)
1742LOCAL_MODULE := wpa_cli
Bob Badouref67f872021-02-12 15:20:04 -08001743LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1744LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001745LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001746LOCAL_PROPRIETARY_MODULE := true
Ying Wange93dd112013-04-09 21:53:29 -07001747LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001748LOCAL_CFLAGS := $(L_CFLAGS)
1749LOCAL_SRC_FILES := $(OBJS_c)
1750LOCAL_C_INCLUDES := $(INCLUDES)
1751include $(BUILD_EXECUTABLE)
1752
1753########################
1754include $(CLEAR_VARS)
1755LOCAL_MODULE := wpa_supplicant
Bob Badouref67f872021-02-12 15:20:04 -08001756LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1757LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001758LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001759LOCAL_PROPRIETARY_MODULE := true
1760LOCAL_MODULE_RELATIVE_PATH := hw
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001761ifdef CONFIG_DRIVER_CUSTOM
1762LOCAL_STATIC_LIBRARIES := libCustomWifi
1763endif
1764ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
1765LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)
1766endif
Ying Wange93dd112013-04-09 21:53:29 -07001767LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt04f534e2013-12-09 15:50:16 -08001768ifdef CONFIG_EAP_PROXY
1769LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY)
1770LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY)
1771endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001772ifeq ($(CONFIG_TLS), openssl)
Roshan Pius3eb7b242017-03-28 13:39:46 -07001773LOCAL_SHARED_LIBRARIES += libcrypto libssl libkeystore-wifi-hidl
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001774endif
Adam Langley1eb02ed2015-04-21 19:00:05 -07001775
1776# With BoringSSL we need libkeystore-engine in order to provide access to
1777# keystore keys.
Roshan Pius3eb7b242017-03-28 13:39:46 -07001778LOCAL_SHARED_LIBRARIES += libkeystore-engine-wifi-hidl
Adam Langley1eb02ed2015-04-21 19:00:05 -07001779
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001780ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001781ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -08001782LOCAL_SHARED_LIBRARIES += libnl
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001783else
1784LOCAL_STATIC_LIBRARIES += libnl_2
1785endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001786endif
1787LOCAL_CFLAGS := $(L_CFLAGS)
1788LOCAL_SRC_FILES := $(OBJS)
1789LOCAL_C_INCLUDES := $(INCLUDES)
Samuel Tanb7983992015-08-11 09:59:20 -07001790ifeq ($(DBUS), y)
1791LOCAL_SHARED_LIBRARIES += libdbus
1792endif
Gabriel Biren57ededa2021-09-03 16:08:50 +00001793ifeq ($(WPA_SUPPLICANT_USE_AIDL), y)
1794LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant-V1-ndk
1795LOCAL_SHARED_LIBRARIES += libutils libbase
1796LOCAL_SHARED_LIBRARIES += libbinder_ndk
1797LOCAL_STATIC_LIBRARIES += libwpa_aidl
1798LOCAL_VINTF_FRAGMENTS := aidl/android.hardware.wifi.supplicant.xml
Greg Kaiser9c039c42022-01-20 21:25:44 +00001799ifeq ($(WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY), true)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001800LOCAL_INIT_RC=aidl/android.hardware.wifi.supplicant-service.rc
Jimmy Chen461aeef2019-10-01 10:55:20 +08001801endif
Dmitry Shmidte4663042016-04-04 10:07:49 -07001802endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001803include $(BUILD_EXECUTABLE)
1804
1805########################
1806#
1807#include $(CLEAR_VARS)
1808#LOCAL_MODULE := eapol_test
1809#ifdef CONFIG_DRIVER_CUSTOM
1810#LOCAL_STATIC_LIBRARIES := libCustomWifi
1811#endif
1812#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl
1813#LOCAL_CFLAGS := $(L_CFLAGS)
1814#LOCAL_SRC_FILES := $(OBJS_t)
1815#LOCAL_C_INCLUDES := $(INCLUDES)
1816#include $(BUILD_EXECUTABLE)
1817#
1818########################
1819#
1820#local_target_dir := $(TARGET_OUT)/etc/wifi
1821#
1822#include $(CLEAR_VARS)
1823#LOCAL_MODULE := wpa_supplicant.conf
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001824#LOCAL_MODULE_CLASS := ETC
1825#LOCAL_MODULE_PATH := $(local_target_dir)
1826#LOCAL_SRC_FILES := $(LOCAL_MODULE)
1827#include $(BUILD_PREBUILT)
1828#
1829########################
1830
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001831include $(CLEAR_VARS)
1832LOCAL_MODULE = libwpa_client
Bob Badouref67f872021-02-12 15:20:04 -08001833LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1834LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001835LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001836LOCAL_PROPRIETARY_MODULE := true
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001837LOCAL_CFLAGS = $(L_CFLAGS)
1838LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
1839LOCAL_C_INCLUDES = $(INCLUDES)
Ying Wange93dd112013-04-09 21:53:29 -07001840LOCAL_SHARED_LIBRARIES := libcutils liblog
Vijay Venkatraman1afec612016-12-06 11:09:03 -08001841LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/wpa_client_include $(LOCAL_PATH)/wpa_client_include/libwpa_client
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001842include $(BUILD_SHARED_LIBRARY)
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001843
Gabriel Biren57ededa2021-09-03 16:08:50 +00001844ifeq ($(WPA_SUPPLICANT_USE_AIDL), y)
1845### Aidl service library ###
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001846########################
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001847include $(CLEAR_VARS)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001848LOCAL_MODULE := libwpa_aidl
Bob Badouref67f872021-02-12 15:20:04 -08001849LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1850LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001851LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Jiyong Parka1d8ba22017-06-26 13:11:29 +09001852LOCAL_VENDOR_MODULE := true
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001853LOCAL_CPPFLAGS := $(L_CPPFLAGS)
1854LOCAL_CFLAGS := $(L_CFLAGS)
1855LOCAL_C_INCLUDES := $(INCLUDES)
1856LOCAL_SRC_FILES := \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001857 aidl/aidl.cpp \
1858 aidl/aidl_manager.cpp \
1859 aidl/iface_config_utils.cpp \
1860 aidl/p2p_iface.cpp \
1861 aidl/p2p_network.cpp \
1862 aidl/sta_iface.cpp \
1863 aidl/sta_network.cpp \
1864 aidl/supplicant.cpp
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001865LOCAL_SHARED_LIBRARIES := \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001866 android.hardware.wifi.supplicant-V1-ndk \
1867 libbinder_ndk \
Roshan Pius0b4856b2018-02-09 14:29:24 -08001868 libbase \
Jiyong Parka1d8ba22017-06-26 13:11:29 +09001869 libutils \
Hai Shalom59532852018-12-07 10:32:58 -08001870 liblog \
1871 libssl
Roshan Piusedd820c2017-05-16 14:21:49 -07001872LOCAL_EXPORT_C_INCLUDE_DIRS := \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001873 $(LOCAL_PATH)/aidl
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001874include $(BUILD_STATIC_LIBRARY)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001875endif # WPA_SUPPLICANT_USE_AIDL == y