blob: 33dabf318660cb803fa2f0fc9889e8f6fa98e010 [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 Badour22752be2022-02-28 13:22:02 -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/LICENSE,))
Bob Badour618e16c2022-02-14 12:41:29 -080012
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=
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700122endif
123
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700124OBJS = config.c
125OBJS += notify.c
126OBJS += bss.c
127OBJS += eap_register.c
128OBJS += src/utils/common.c
Hai Shalom60840252021-02-19 19:02:11 -0800129OBJS += src/utils/config.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700130OBJS += src/utils/wpa_debug.c
131OBJS += src/utils/wpabuf.c
Dmitry Shmidt29333592017-01-09 12:27:11 -0800132OBJS += src/utils/bitfield.c
Hai Shalomc3565922019-10-28 11:58:20 -0700133OBJS += src/utils/ip_addr.c
Hai Shalomfdcde762020-04-02 11:19:20 -0700134OBJS += src/utils/crc32.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800135OBJS += wmm_ac.c
Dmitry Shmidt29333592017-01-09 12:27:11 -0800136OBJS += op_classes.c
137OBJS += rrm.c
Hai Shaloma20dcd72022-02-04 13:43:00 -0800138OBJS += twt.c
Hai Shalom899fcc72020-10-19 14:38:18 -0700139OBJS += robust_av.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700140OBJS_p = wpa_passphrase.c
141OBJS_p += src/utils/common.c
142OBJS_p += src/utils/wpa_debug.c
143OBJS_p += src/utils/wpabuf.c
144OBJS_c = wpa_cli.c src/common/wpa_ctrl.c
145OBJS_c += src/utils/wpa_debug.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800146OBJS_c += src/utils/common.c
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700147OBJS_c += src/common/cli.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700148OBJS_d =
149OBJS_priv =
150
151ifndef CONFIG_OS
152ifdef CONFIG_NATIVE_WINDOWS
153CONFIG_OS=win32
154else
155CONFIG_OS=unix
156endif
157endif
158
159ifeq ($(CONFIG_OS), internal)
160L_CFLAGS += -DOS_NO_C_LIB_DEFINES
161endif
162
163OBJS += src/utils/os_$(CONFIG_OS).c
164OBJS_p += src/utils/os_$(CONFIG_OS).c
165OBJS_c += src/utils/os_$(CONFIG_OS).c
166
167ifdef CONFIG_WPA_TRACE
168L_CFLAGS += -DWPA_TRACE
169OBJS += src/utils/trace.c
170OBJS_p += src/utils/trace.c
171OBJS_c += src/utils/trace.c
172LDFLAGS += -rdynamic
173L_CFLAGS += -funwind-tables
174ifdef CONFIG_WPA_TRACE_BFD
175L_CFLAGS += -DWPA_TRACE_BFD
176LIBS += -lbfd
177LIBS_p += -lbfd
178LIBS_c += -lbfd
179endif
180endif
181
182ifndef CONFIG_ELOOP
183CONFIG_ELOOP=eloop
184endif
185OBJS += src/utils/$(CONFIG_ELOOP).c
186OBJS_c += src/utils/$(CONFIG_ELOOP).c
187
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800188ifdef CONFIG_ELOOP_POLL
189L_CFLAGS += -DCONFIG_ELOOP_POLL
190endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700191
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700192ifdef CONFIG_ELOOP_EPOLL
193L_CFLAGS += -DCONFIG_ELOOP_EPOLL
194endif
195
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700196ifdef CONFIG_EAPOL_TEST
197L_CFLAGS += -Werror -DEAPOL_TEST
198endif
199
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800200ifdef CONFIG_HT_OVERRIDES
201L_CFLAGS += -DCONFIG_HT_OVERRIDES
202endif
203
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700204ifdef CONFIG_VHT_OVERRIDES
205L_CFLAGS += -DCONFIG_VHT_OVERRIDES
206endif
207
Hai Shalomfdcde762020-04-02 11:19:20 -0700208ifdef CONFIG_HE_OVERRIDES
209L_CFLAGS += -DCONFIG_HE_OVERRIDES
210endif
211
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700212ifndef CONFIG_BACKEND
213CONFIG_BACKEND=file
214endif
215
216ifeq ($(CONFIG_BACKEND), file)
217OBJS += config_file.c
218ifndef CONFIG_NO_CONFIG_BLOBS
219NEED_BASE64=y
220endif
221L_CFLAGS += -DCONFIG_BACKEND_FILE
222endif
223
224ifeq ($(CONFIG_BACKEND), winreg)
225OBJS += config_winreg.c
226endif
227
228ifeq ($(CONFIG_BACKEND), none)
229OBJS += config_none.c
230endif
231
232ifdef CONFIG_NO_CONFIG_WRITE
233L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE
234endif
235
236ifdef CONFIG_NO_CONFIG_BLOBS
237L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
238endif
239
240ifdef CONFIG_NO_SCAN_PROCESSING
241L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
242endif
243
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800244ifdef CONFIG_SUITEB
245L_CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800246endif
247
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800248ifdef CONFIG_SUITEB192
249L_CFLAGS += -DCONFIG_SUITEB192
250NEED_SHA384=y
251endif
252
Hai Shalom74f70d42019-02-11 14:42:39 -0800253ifdef CONFIG_OCV
254L_CFLAGS += -DCONFIG_OCV
255OBJS += src/common/ocv.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700256endif
257
258ifdef CONFIG_IEEE80211R
259L_CFLAGS += -DCONFIG_IEEE80211R
260OBJS += src/rsn_supp/wpa_ft.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700261endif
262
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800263ifdef CONFIG_MESH
264NEED_80211_COMMON=y
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800265NEED_AES_SIV=y
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800266CONFIG_SAE=y
267CONFIG_AP=y
268L_CFLAGS += -DCONFIG_MESH
269OBJS += mesh.c
270OBJS += mesh_mpm.c
271OBJS += mesh_rsn.c
272endif
273
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800274ifdef CONFIG_SAE
275L_CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800276OBJS += src/common/sae.c
Hai Shalom899fcc72020-10-19 14:38:18 -0700277ifdef CONFIG_SAE_PK
278L_CFLAGS += -DCONFIG_SAE_PK
Sunil8cd6f4d2022-06-28 18:40:46 +0000279NEED_AES_SIV=y
Hai Shalom899fcc72020-10-19 14:38:18 -0700280OBJS += 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
Sunil Ravia04bd252022-05-02 22:54:18 -0700518ifdef CONFIG_EAP_TLSV1_3
519L_CFLAGS += -DEAP_TLSV1_3
520endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700521endif
522
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800523ifdef CONFIG_EAP_UNAUTH_TLS
524# EAP-UNAUTH-TLS
525L_CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700526ifndef CONFIG_EAP_TLS
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800527OBJS += src/eap_peer/eap_tls.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800528TLS_FUNCS=y
529endif
530CONFIG_IEEE8021X_EAPOL=y
531endif
532
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700533ifdef CONFIG_EAP_PEAP
534# EAP-PEAP
535ifeq ($(CONFIG_EAP_PEAP), dyn)
536L_CFLAGS += -DEAP_PEAP_DYNAMIC
537EAPDYN += src/eap_peer/eap_peap.so
538else
539L_CFLAGS += -DEAP_PEAP
540OBJS += src/eap_peer/eap_peap.c
541OBJS += src/eap_common/eap_peap_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700542endif
543TLS_FUNCS=y
544CONFIG_IEEE8021X_EAPOL=y
545endif
546
547ifdef CONFIG_EAP_TTLS
548# EAP-TTLS
549ifeq ($(CONFIG_EAP_TTLS), dyn)
550L_CFLAGS += -DEAP_TTLS_DYNAMIC
551EAPDYN += src/eap_peer/eap_ttls.so
552else
553L_CFLAGS += -DEAP_TTLS
554OBJS += src/eap_peer/eap_ttls.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700555endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700556TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800557ifndef CONFIG_FIPS
558MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700559CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800560endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700561CONFIG_IEEE8021X_EAPOL=y
562endif
563
564ifdef CONFIG_EAP_MD5
565# EAP-MD5
566ifeq ($(CONFIG_EAP_MD5), dyn)
567L_CFLAGS += -DEAP_MD5_DYNAMIC
568EAPDYN += src/eap_peer/eap_md5.so
569else
570L_CFLAGS += -DEAP_MD5
571OBJS += src/eap_peer/eap_md5.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700572endif
573CHAP=y
574CONFIG_IEEE8021X_EAPOL=y
575endif
576
577# backwards compatibility for old spelling
578ifdef CONFIG_MSCHAPV2
579ifndef CONFIG_EAP_MSCHAPV2
580CONFIG_EAP_MSCHAPV2=y
581endif
582endif
583
584ifdef CONFIG_EAP_MSCHAPV2
585# EAP-MSCHAPv2
586ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
587L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
588EAPDYN += src/eap_peer/eap_mschapv2.so
589EAPDYN += src/eap_peer/mschapv2.so
590else
591L_CFLAGS += -DEAP_MSCHAPv2
592OBJS += src/eap_peer/eap_mschapv2.c
593OBJS += src/eap_peer/mschapv2.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700594endif
595MS_FUNCS=y
596CONFIG_IEEE8021X_EAPOL=y
597endif
598
599ifdef CONFIG_EAP_GTC
600# EAP-GTC
601ifeq ($(CONFIG_EAP_GTC), dyn)
602L_CFLAGS += -DEAP_GTC_DYNAMIC
603EAPDYN += src/eap_peer/eap_gtc.so
604else
605L_CFLAGS += -DEAP_GTC
606OBJS += src/eap_peer/eap_gtc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700607endif
608CONFIG_IEEE8021X_EAPOL=y
609endif
610
611ifdef CONFIG_EAP_OTP
612# EAP-OTP
613ifeq ($(CONFIG_EAP_OTP), dyn)
614L_CFLAGS += -DEAP_OTP_DYNAMIC
615EAPDYN += src/eap_peer/eap_otp.so
616else
617L_CFLAGS += -DEAP_OTP
618OBJS += src/eap_peer/eap_otp.c
619endif
620CONFIG_IEEE8021X_EAPOL=y
621endif
622
623ifdef CONFIG_EAP_SIM
624# EAP-SIM
625ifeq ($(CONFIG_EAP_SIM), dyn)
626L_CFLAGS += -DEAP_SIM_DYNAMIC
627EAPDYN += src/eap_peer/eap_sim.so
628else
629L_CFLAGS += -DEAP_SIM
630OBJS += src/eap_peer/eap_sim.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700631endif
632CONFIG_IEEE8021X_EAPOL=y
633CONFIG_EAP_SIM_COMMON=y
634NEED_AES_CBC=y
635endif
636
637ifdef CONFIG_EAP_LEAP
638# EAP-LEAP
639ifeq ($(CONFIG_EAP_LEAP), dyn)
640L_CFLAGS += -DEAP_LEAP_DYNAMIC
641EAPDYN += src/eap_peer/eap_leap.so
642else
643L_CFLAGS += -DEAP_LEAP
644OBJS += src/eap_peer/eap_leap.c
645endif
646MS_FUNCS=y
647CONFIG_IEEE8021X_EAPOL=y
648endif
649
650ifdef CONFIG_EAP_PSK
651# EAP-PSK
652ifeq ($(CONFIG_EAP_PSK), dyn)
653L_CFLAGS += -DEAP_PSK_DYNAMIC
654EAPDYN += src/eap_peer/eap_psk.so
655else
656L_CFLAGS += -DEAP_PSK
657OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700658endif
659CONFIG_IEEE8021X_EAPOL=y
660NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700661NEED_AES_ENCBLOCK=y
662NEED_AES_EAX=y
663endif
664
665ifdef CONFIG_EAP_AKA
666# EAP-AKA
667ifeq ($(CONFIG_EAP_AKA), dyn)
668L_CFLAGS += -DEAP_AKA_DYNAMIC
669EAPDYN += src/eap_peer/eap_aka.so
670else
671L_CFLAGS += -DEAP_AKA
672OBJS += src/eap_peer/eap_aka.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700673endif
674CONFIG_IEEE8021X_EAPOL=y
675CONFIG_EAP_SIM_COMMON=y
676NEED_AES_CBC=y
677endif
678
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800679ifdef CONFIG_EAP_PROXY
680L_CFLAGS += -DCONFIG_EAP_PROXY
681OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c
Dmitry Shmidt04f534e2013-12-09 15:50:16 -0800682include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800683CONFIG_IEEE8021X_EAPOL=y
684endif
685
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700686ifdef CONFIG_EAP_AKA_PRIME
687# EAP-AKA'
688ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
689L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
690else
691L_CFLAGS += -DEAP_AKA_PRIME
692endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700693endif
694
695ifdef CONFIG_EAP_SIM_COMMON
696OBJS += src/eap_common/eap_sim_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700697NEED_AES=y
698NEED_FIPS186_2_PRF=y
699endif
700
701ifdef CONFIG_EAP_FAST
702# EAP-FAST
703ifeq ($(CONFIG_EAP_FAST), dyn)
704L_CFLAGS += -DEAP_FAST_DYNAMIC
705EAPDYN += src/eap_peer/eap_fast.so
706EAPDYN += src/eap_common/eap_fast_common.c
707else
708L_CFLAGS += -DEAP_FAST
709OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
710OBJS += src/eap_common/eap_fast_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700711endif
712TLS_FUNCS=y
713CONFIG_IEEE8021X_EAPOL=y
714NEED_T_PRF=y
715endif
716
Hai Shalom81f62d82019-07-22 12:10:00 -0700717ifdef CONFIG_EAP_TEAP
718# EAP-TEAP
719ifeq ($(CONFIG_EAP_TEAP), dyn)
720L_CFLAGS += -DEAP_YEAP_DYNAMIC
721EAPDYN += src/eap_peer/eap_teap.so
722EAPDYN += src/eap_common/eap_teap_common.c
723else
724L_CFLAGS += -DEAP_TEAP
725OBJS += src/eap_peer/eap_teap.c src/eap_peer/eap_teap_pac.c
726OBJS += src/eap_common/eap_teap_common.c
727endif
728TLS_FUNCS=y
729CONFIG_IEEE8021X_EAPOL=y
730NEED_T_PRF=y
731NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700732NEED_TLS_PRF_SHA256=y
733NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700734endif
735
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700736ifdef CONFIG_EAP_PAX
737# EAP-PAX
738ifeq ($(CONFIG_EAP_PAX), dyn)
739L_CFLAGS += -DEAP_PAX_DYNAMIC
740EAPDYN += src/eap_peer/eap_pax.so
741else
742L_CFLAGS += -DEAP_PAX
743OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700744endif
745CONFIG_IEEE8021X_EAPOL=y
746endif
747
748ifdef CONFIG_EAP_SAKE
749# EAP-SAKE
750ifeq ($(CONFIG_EAP_SAKE), dyn)
751L_CFLAGS += -DEAP_SAKE_DYNAMIC
752EAPDYN += src/eap_peer/eap_sake.so
753else
754L_CFLAGS += -DEAP_SAKE
755OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700756endif
757CONFIG_IEEE8021X_EAPOL=y
758endif
759
760ifdef CONFIG_EAP_GPSK
761# EAP-GPSK
762ifeq ($(CONFIG_EAP_GPSK), dyn)
763L_CFLAGS += -DEAP_GPSK_DYNAMIC
764EAPDYN += src/eap_peer/eap_gpsk.so
765else
766L_CFLAGS += -DEAP_GPSK
767OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700768endif
769CONFIG_IEEE8021X_EAPOL=y
770ifdef CONFIG_EAP_GPSK_SHA256
771L_CFLAGS += -DEAP_GPSK_SHA256
772endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700773endif
774
775ifdef CONFIG_EAP_PWD
776L_CFLAGS += -DEAP_PWD
777OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700778CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700779NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700780NEED_DRAGONFLY=y
Sunil Ravia04bd252022-05-02 22:54:18 -0700781MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700782endif
783
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700784ifdef CONFIG_EAP_EKE
785# EAP-EKE
786ifeq ($(CONFIG_EAP_EKE), dyn)
787L_CFLAGS += -DEAP_EKE_DYNAMIC
788EAPDYN += src/eap_peer/eap_eke.so
789else
790L_CFLAGS += -DEAP_EKE
791OBJS += src/eap_peer/eap_eke.c src/eap_common/eap_eke_common.c
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700792endif
793CONFIG_IEEE8021X_EAPOL=y
794NEED_DH_GROUPS=y
795NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800796NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700797endif
798
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700799ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700800# EAP-WSC
801L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
802OBJS += wps_supplicant.c
803OBJS += src/utils/uuid.c
804OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
805OBJS += src/wps/wps.c
806OBJS += src/wps/wps_common.c
807OBJS += src/wps/wps_attr_parse.c
808OBJS += src/wps/wps_attr_build.c
809OBJS += src/wps/wps_attr_process.c
810OBJS += src/wps/wps_dev_attr.c
811OBJS += src/wps/wps_enrollee.c
812OBJS += src/wps/wps_registrar.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700813CONFIG_IEEE8021X_EAPOL=y
814NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700815NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700816NEED_AES_CBC=y
817NEED_MODEXP=y
818
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700819ifdef CONFIG_WPS_NFC
820L_CFLAGS += -DCONFIG_WPS_NFC
821OBJS += src/wps/ndef.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700822NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700823endif
824
825ifdef NEED_WPS_OOB
826L_CFLAGS += -DCONFIG_WPS_OOB
827endif
828
829ifdef CONFIG_WPS_ER
830CONFIG_WPS_UPNP=y
831L_CFLAGS += -DCONFIG_WPS_ER
832OBJS += src/wps/wps_er.c
833OBJS += src/wps/wps_er_ssdp.c
834endif
835
836ifdef CONFIG_WPS_UPNP
837L_CFLAGS += -DCONFIG_WPS_UPNP
838OBJS += src/wps/wps_upnp.c
839OBJS += src/wps/wps_upnp_ssdp.c
840OBJS += src/wps/wps_upnp_web.c
841OBJS += src/wps/wps_upnp_event.c
842OBJS += src/wps/wps_upnp_ap.c
843OBJS += src/wps/upnp_xml.c
844OBJS += src/wps/httpread.c
845OBJS += src/wps/http_client.c
846OBJS += src/wps/http_server.c
847endif
848
849ifdef CONFIG_WPS_STRICT
850L_CFLAGS += -DCONFIG_WPS_STRICT
851OBJS += src/wps/wps_validate.c
852endif
853
854ifdef CONFIG_WPS_TESTING
855L_CFLAGS += -DCONFIG_WPS_TESTING
856endif
857
858ifdef CONFIG_WPS_REG_DISABLE_OPEN
859L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
860endif
861
862endif
863
864ifdef CONFIG_EAP_IKEV2
865# EAP-IKEv2
866ifeq ($(CONFIG_EAP_IKEV2), dyn)
867L_CFLAGS += -DEAP_IKEV2_DYNAMIC
868EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
869EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
870else
871L_CFLAGS += -DEAP_IKEV2
872OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
873OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700874endif
875CONFIG_IEEE8021X_EAPOL=y
876NEED_DH_GROUPS=y
877NEED_DH_GROUPS_ALL=y
878NEED_MODEXP=y
879NEED_CIPHER=y
880endif
881
882ifdef CONFIG_EAP_VENDOR_TEST
883ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
884L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
885EAPDYN += src/eap_peer/eap_vendor_test.so
886else
887L_CFLAGS += -DEAP_VENDOR_TEST
888OBJS += src/eap_peer/eap_vendor_test.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700889endif
890CONFIG_IEEE8021X_EAPOL=y
891endif
892
893ifdef CONFIG_EAP_TNC
894# EAP-TNC
895L_CFLAGS += -DEAP_TNC
896OBJS += src/eap_peer/eap_tnc.c
897OBJS += src/eap_peer/tncc.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700898NEED_BASE64=y
899ifndef CONFIG_NATIVE_WINDOWS
900ifndef CONFIG_DRIVER_BSD
901LIBS += -ldl
902endif
903endif
904endif
905
906ifdef CONFIG_IEEE8021X_EAPOL
907# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
908L_CFLAGS += -DIEEE8021X_EAPOL
909OBJS += src/eapol_supp/eapol_supp_sm.c
910OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
911NEED_EAP_COMMON=y
912ifdef CONFIG_DYNAMIC_EAP_METHODS
913L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
914LIBS += -ldl -rdynamic
915endif
916endif
917
918ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700919NEED_EAP_COMMON=y
920NEED_RSN_AUTHENTICATOR=y
921L_CFLAGS += -DCONFIG_AP
922OBJS += ap.c
923L_CFLAGS += -DCONFIG_NO_RADIUS
924L_CFLAGS += -DCONFIG_NO_ACCOUNTING
925L_CFLAGS += -DCONFIG_NO_VLAN
926OBJS += src/ap/hostapd.c
927OBJS += src/ap/wpa_auth_glue.c
928OBJS += src/ap/utils.c
929OBJS += src/ap/authsrv.c
930OBJS += src/ap/ap_config.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700931OBJS += src/ap/sta_info.c
932OBJS += src/ap/tkip_countermeasures.c
933OBJS += src/ap/ap_mlme.c
934OBJS += src/ap/ieee802_1x.c
935OBJS += src/eapol_auth/eapol_auth_sm.c
936OBJS += src/ap/ieee802_11_auth.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800937OBJS += src/ap/ieee802_11_shared.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700938OBJS += src/ap/drv_callbacks.c
939OBJS += src/ap/ap_drv_ops.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800940OBJS += src/ap/beacon.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800941OBJS += src/ap/bss_load.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800942OBJS += src/ap/eap_user_db.c
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700943OBJS += src/ap/neighbor_db.c
944OBJS += src/ap/rrm.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700945OBJS += src/ap/ieee802_11_ht.c
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700946ifdef CONFIG_IEEE80211AC
947OBJS += src/ap/ieee802_11_vht.c
948endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800949ifdef CONFIG_IEEE80211AX
950OBJS += src/ap/ieee802_11_he.c
951endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700952ifdef CONFIG_IEEE80211BE
953OBJS += src/ap/ieee802_11_eht.c
954endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700955ifdef CONFIG_WNM_AP
956L_CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800957OBJS += src/ap/wnm_ap.c
958endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800959ifdef CONFIG_MBO
960OBJS += src/ap/mbo_ap.c
961endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800962ifdef CONFIG_FILS
963OBJS += src/ap/fils_hlp.c
964endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700965ifdef CONFIG_CTRL_IFACE
966OBJS += src/ap/ctrl_iface_ap.c
967endif
968
969L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
970OBJS += src/eap_server/eap_server.c
971OBJS += src/eap_server/eap_server_identity.c
972OBJS += src/eap_server/eap_server_methods.c
973
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700974ifdef CONFIG_IEEE80211AC
975L_CFLAGS += -DCONFIG_IEEE80211AC
976endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700977ifdef CONFIG_IEEE80211BE
978CONFIG_IEEE80211AX=y
979L_CFLAGS += -DCONFIG_IEEE80211BE
980endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800981ifdef CONFIG_IEEE80211AX
982L_CFLAGS += -DCONFIG_IEEE80211AX
983endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700984
985ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700986OBJS += src/ap/wmm.c
987OBJS += src/ap/ap_list.c
988OBJS += src/ap/ieee802_11.c
989OBJS += src/ap/hw_features.c
Dmitry Shmidt051af732013-10-22 13:52:46 -0700990OBJS += src/ap/dfs.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700991L_CFLAGS += -DNEED_AP_MLME
992endif
993ifdef CONFIG_WPS
994L_CFLAGS += -DEAP_SERVER_WSC
995OBJS += src/ap/wps_hostapd.c
996OBJS += src/eap_server/eap_server_wsc.c
997endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700998ifdef CONFIG_DPP
999OBJS += src/ap/dpp_hostapd.c
1000OBJS += src/ap/gas_query_ap.c
Hai Shalomc3565922019-10-28 11:58:20 -07001001NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001002endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001003ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -07001004NEED_AP_GAS_SERV=y
1005endif
1006ifdef NEED_AP_GAS_SERV
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001007OBJS += src/ap/gas_serv.c
1008endif
1009ifdef CONFIG_HS20
1010OBJS += src/ap/hs20.c
1011endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001012endif
1013
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -08001014ifdef CONFIG_MBO
1015OBJS += mbo.c
1016L_CFLAGS += -DCONFIG_MBO
1017endif
1018
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001019ifdef CONFIG_TESTING_OPTIONS
1020L_CFLAGS += -DCONFIG_TESTING_OPTIONS
1021endif
1022
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001023ifdef NEED_RSN_AUTHENTICATOR
1024L_CFLAGS += -DCONFIG_NO_RADIUS
1025NEED_AES_WRAP=y
1026OBJS += src/ap/wpa_auth.c
1027OBJS += src/ap/wpa_auth_ie.c
1028OBJS += src/ap/pmksa_cache_auth.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001029endif
1030
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08001031ifdef CONFIG_ACS
1032L_CFLAGS += -DCONFIG_ACS
1033OBJS += src/ap/acs.c
1034LIBS += -lm
1035endif
1036
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001037ifdef CONFIG_PCSC
1038# PC/SC interface for smartcards (USIM, GSM SIM)
1039L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
1040OBJS += src/utils/pcsc_funcs.c
1041# -lpthread may not be needed depending on how pcsc-lite was configured
1042ifdef CONFIG_NATIVE_WINDOWS
1043#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
1044#dynamic symbol loading that is now used in pcsc_funcs.c
1045#LIBS += -lwinscard
1046else
1047LIBS += -lpcsclite -lpthread
1048endif
1049endif
1050
1051ifdef CONFIG_SIM_SIMULATOR
1052L_CFLAGS += -DCONFIG_SIM_SIMULATOR
1053NEED_MILENAGE=y
1054endif
1055
1056ifdef CONFIG_USIM_SIMULATOR
1057L_CFLAGS += -DCONFIG_USIM_SIMULATOR
1058NEED_MILENAGE=y
1059endif
1060
1061ifdef NEED_MILENAGE
1062OBJS += src/crypto/milenage.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001063NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001064endif
1065
1066ifdef CONFIG_PKCS12
1067L_CFLAGS += -DPKCS12_FUNCS
1068endif
1069
1070ifdef CONFIG_SMARTCARD
1071L_CFLAGS += -DCONFIG_SMARTCARD
1072endif
1073
Hai Shalom81f62d82019-07-22 12:10:00 -07001074ifdef NEED_DRAGONFLY
1075OBJS += src/common/dragonfly.c
1076endif
1077
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001078ifdef MS_FUNCS
1079OBJS += src/crypto/ms_funcs.c
1080NEED_DES=y
1081NEED_MD4=y
1082endif
1083
1084ifdef CHAP
1085OBJS += src/eap_common/chap.c
1086endif
1087
1088ifdef TLS_FUNCS
1089NEED_DES=y
1090# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
1091OBJS += src/eap_peer/eap_tls_common.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001092ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001093NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001094NEED_SHA1=y
1095NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001096endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001097endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001098
1099ifndef CONFIG_TLS
1100CONFIG_TLS=openssl
Rich Canningsf8d3d112018-10-09 13:56:37 -07001101L_CFLAGS += -DCONFIG_USE_OPENSSL_RNG
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001102endif
1103
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001104ifdef CONFIG_TLSV11
1105L_CFLAGS += -DCONFIG_TLSV11
1106endif
1107
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001108ifdef CONFIG_TLSV12
1109L_CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001110endif
1111
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001112ifeq ($(CONFIG_TLS), openssl)
Sunil Ravia04bd252022-05-02 22:54:18 -07001113L_CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001114ifdef TLS_FUNCS
1115L_CFLAGS += -DEAP_TLS_OPENSSL
1116OBJS += src/crypto/tls_openssl.c
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001117OBJS += src/crypto/tls_openssl_ocsp.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001118LIBS += -lssl
1119endif
1120OBJS += src/crypto/crypto_openssl.c
1121OBJS_p += src/crypto/crypto_openssl.c
1122ifdef NEED_FIPS186_2_PRF
1123OBJS += src/crypto/fips_prf_openssl.c
1124endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001125NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001126LIBS += -lcrypto
1127LIBS_p += -lcrypto
Dmitry Shmidtd5e49232012-12-03 15:08:10 -08001128ifdef CONFIG_TLS_ADD_DL
1129LIBS += -ldl
1130LIBS_p += -ldl
1131endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001132ifndef CONFIG_TLS_DEFAULT_CIPHERS
1133CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1134endif
1135L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001136endif
1137
1138ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001139ifndef CONFIG_CRYPTO
1140# default to libgcrypt
1141CONFIG_CRYPTO=gnutls
1142endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001143ifdef TLS_FUNCS
1144OBJS += src/crypto/tls_gnutls.c
1145LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001146endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001147OBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c
1148OBJS_p += src/crypto/crypto_$(CONFIG_CRYPTO).c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001149ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001150OBJS += src/crypto/fips_prf_internal.c
1151OBJS += src/crypto/sha1-internal.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001152endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001153ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001154LIBS += -lgcrypt
1155LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001156CONFIG_INTERNAL_RC4=y
1157CONFIG_INTERNAL_DH_GROUP5=y
1158endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001159ifeq ($(CONFIG_CRYPTO), nettle)
1160LIBS += -lnettle -lgmp
1161LIBS_p += -lnettle -lgmp
1162CONFIG_INTERNAL_RC4=y
1163CONFIG_INTERNAL_DH_GROUP5=y
1164endif
1165endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001166
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001167ifeq ($(CONFIG_TLS), internal)
1168ifndef CONFIG_CRYPTO
1169CONFIG_CRYPTO=internal
1170endif
1171ifdef TLS_FUNCS
1172OBJS += src/crypto/crypto_internal-rsa.c
1173OBJS += src/crypto/tls_internal.c
1174OBJS += src/tls/tlsv1_common.c
1175OBJS += src/tls/tlsv1_record.c
1176OBJS += src/tls/tlsv1_cred.c
1177OBJS += src/tls/tlsv1_client.c
1178OBJS += src/tls/tlsv1_client_write.c
1179OBJS += src/tls/tlsv1_client_read.c
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001180OBJS += src/tls/tlsv1_client_ocsp.c
Hai Shalomfdcde762020-04-02 11:19:20 -07001181NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001182OBJS += src/tls/rsa.c
1183OBJS += src/tls/x509v3.c
1184OBJS += src/tls/pkcs1.c
1185OBJS += src/tls/pkcs5.c
1186OBJS += src/tls/pkcs8.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001187NEED_BASE64=y
1188NEED_TLS_PRF=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001189ifdef CONFIG_TLSV12
1190NEED_TLS_PRF_SHA256=y
1191endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001192NEED_MODEXP=y
1193NEED_CIPHER=y
1194L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1195endif
1196ifdef NEED_CIPHER
1197NEED_DES=y
1198OBJS += src/crypto/crypto_internal-cipher.c
1199endif
1200ifdef NEED_MODEXP
1201OBJS += src/crypto/crypto_internal-modexp.c
1202OBJS += src/tls/bignum.c
1203endif
1204ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1205OBJS += src/crypto/crypto_libtomcrypt.c
1206OBJS_p += src/crypto/crypto_libtomcrypt.c
1207LIBS += -ltomcrypt -ltfm
1208LIBS_p += -ltomcrypt -ltfm
1209CONFIG_INTERNAL_SHA256=y
1210CONFIG_INTERNAL_RC4=y
1211CONFIG_INTERNAL_DH_GROUP5=y
1212endif
1213ifeq ($(CONFIG_CRYPTO), internal)
1214OBJS += src/crypto/crypto_internal.c
1215OBJS_p += src/crypto/crypto_internal.c
1216NEED_AES_ENC=y
1217L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1218ifdef CONFIG_INTERNAL_LIBTOMMATH
1219L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1220ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1221L_CFLAGS += -DLTM_FAST
1222endif
1223else
1224LIBS += -ltommath
1225LIBS_p += -ltommath
1226endif
1227CONFIG_INTERNAL_AES=y
1228CONFIG_INTERNAL_DES=y
1229CONFIG_INTERNAL_SHA1=y
1230CONFIG_INTERNAL_MD4=y
1231CONFIG_INTERNAL_MD5=y
1232CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001233CONFIG_INTERNAL_SHA384=y
1234CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001235CONFIG_INTERNAL_RC4=y
1236CONFIG_INTERNAL_DH_GROUP5=y
1237endif
1238ifeq ($(CONFIG_CRYPTO), cryptoapi)
1239OBJS += src/crypto/crypto_cryptoapi.c
1240OBJS_p += src/crypto/crypto_cryptoapi.c
1241L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1242CONFIG_INTERNAL_SHA256=y
1243CONFIG_INTERNAL_RC4=y
1244endif
1245endif
1246
1247ifeq ($(CONFIG_TLS), none)
1248ifdef TLS_FUNCS
1249OBJS += src/crypto/tls_none.c
1250L_CFLAGS += -DEAP_TLS_NONE
1251CONFIG_INTERNAL_AES=y
1252CONFIG_INTERNAL_SHA1=y
1253CONFIG_INTERNAL_MD5=y
1254endif
1255OBJS += src/crypto/crypto_none.c
1256OBJS_p += src/crypto/crypto_none.c
1257CONFIG_INTERNAL_SHA256=y
1258CONFIG_INTERNAL_RC4=y
1259endif
1260
1261ifdef TLS_FUNCS
1262ifdef CONFIG_SMARTCARD
1263ifndef CONFIG_NATIVE_WINDOWS
1264ifneq ($(CONFIG_L2_PACKET), freebsd)
1265LIBS += -ldl
1266endif
1267endif
1268endif
1269endif
1270
1271ifndef TLS_FUNCS
1272OBJS += src/crypto/tls_none.c
1273ifeq ($(CONFIG_TLS), internal)
1274CONFIG_INTERNAL_AES=y
1275CONFIG_INTERNAL_SHA1=y
1276CONFIG_INTERNAL_MD5=y
1277CONFIG_INTERNAL_RC4=y
1278endif
1279endif
1280
1281AESOBJS = # none so far (see below)
1282ifdef CONFIG_INTERNAL_AES
1283AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
1284endif
1285
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001286ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001287NEED_INTERNAL_AES_WRAP=y
1288endif
1289ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1290# Seems to be needed at least with BoringSSL
1291NEED_INTERNAL_AES_WRAP=y
1292L_CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1293endif
1294ifdef CONFIG_FIPS
1295# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1296# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1297NEED_INTERNAL_AES_WRAP=y
1298endif
1299
1300ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001301AESOBJS += src/crypto/aes-unwrap.c
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001302endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001303ifdef NEED_AES_EAX
1304AESOBJS += src/crypto/aes-eax.c
1305NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001306endif
1307ifdef NEED_AES_SIV
1308AESOBJS += src/crypto/aes-siv.c
1309NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001310endif
1311ifdef NEED_AES_CTR
1312AESOBJS += src/crypto/aes-ctr.c
1313endif
1314ifdef NEED_AES_ENCBLOCK
1315AESOBJS += src/crypto/aes-encblock.c
1316endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001317NEED_AES_ENC=y
Sunil Ravia04bd252022-05-02 22:54:18 -07001318ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001319AESOBJS += src/crypto/aes-omac1.c
1320endif
1321ifdef NEED_AES_WRAP
1322NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001323ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001324AESOBJS += src/crypto/aes-wrap.c
1325endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001326endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001327ifdef NEED_AES_CBC
1328NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001329ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001330AESOBJS += src/crypto/aes-cbc.c
1331endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001332endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001333ifdef NEED_AES_ENC
1334ifdef CONFIG_INTERNAL_AES
1335AESOBJS += src/crypto/aes-internal-enc.c
1336endif
1337endif
1338ifdef NEED_AES
1339OBJS += $(AESOBJS)
1340endif
1341
1342SHA1OBJS =
1343ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001344ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001345ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001346SHA1OBJS += src/crypto/sha1.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001347endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001348endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001349SHA1OBJS += src/crypto/sha1-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001350ifdef CONFIG_INTERNAL_SHA1
1351SHA1OBJS += src/crypto/sha1-internal.c
1352ifdef NEED_FIPS186_2_PRF
1353SHA1OBJS += src/crypto/fips_prf_internal.c
1354endif
1355endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001356ifdef CONFIG_NO_WPA_PASSPHRASE
1357L_CFLAGS += -DCONFIG_NO_PBKDF2
1358else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001359ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001360SHA1OBJS += src/crypto/sha1-pbkdf2.c
1361endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001362endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001363ifdef NEED_T_PRF
1364SHA1OBJS += src/crypto/sha1-tprf.c
1365endif
1366ifdef NEED_TLS_PRF
1367SHA1OBJS += src/crypto/sha1-tlsprf.c
1368endif
1369endif
1370
Dmitry Shmidt54605472013-11-08 11:10:19 -08001371MD5OBJS =
1372ifndef CONFIG_FIPS
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001373ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001374ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt54605472013-11-08 11:10:19 -08001375MD5OBJS += src/crypto/md5.c
1376endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -08001377endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001378endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001379ifdef NEED_MD5
1380ifdef CONFIG_INTERNAL_MD5
1381MD5OBJS += src/crypto/md5-internal.c
1382endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001383OBJS += $(MD5OBJS)
1384OBJS_p += $(MD5OBJS)
1385endif
1386
1387ifdef NEED_MD4
1388ifdef CONFIG_INTERNAL_MD4
1389OBJS += src/crypto/md4-internal.c
1390endif
1391endif
1392
1393DESOBJS = # none needed when not internal
1394ifdef NEED_DES
1395ifdef CONFIG_INTERNAL_DES
1396DESOBJS += src/crypto/des-internal.c
1397endif
1398endif
1399
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001400ifdef CONFIG_NO_RC4
1401L_CFLAGS += -DCONFIG_NO_RC4
1402endif
1403
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001404ifdef NEED_RC4
1405ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001406ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001407OBJS += src/crypto/rc4.c
1408endif
1409endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001410endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001411
Sunil Ravia04bd252022-05-02 22:54:18 -07001412ifdef CONFIG_SAE
1413ifdef NEED_SHA384
1414# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled.
1415NEED_HMAC_SHA384_KDF=y
1416endif
1417ifdef NEED_SHA512
1418# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled.
1419NEED_HMAC_SHA512_KDF=y
1420endif
1421endif
1422
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001423SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001424L_CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001425ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001426ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001427SHA256OBJS += src/crypto/sha256.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001428endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001429endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001430SHA256OBJS += src/crypto/sha256-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001431ifdef CONFIG_INTERNAL_SHA256
1432SHA256OBJS += src/crypto/sha256-internal.c
1433endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001434ifdef CONFIG_INTERNAL_SHA384
1435L_CFLAGS += -DCONFIG_INTERNAL_SHA384
1436SHA256OBJS += src/crypto/sha384-internal.c
1437endif
1438ifdef CONFIG_INTERNAL_SHA512
1439L_CFLAGS += -DCONFIG_INTERNAL_SHA512
1440SHA256OBJS += src/crypto/sha512-internal.c
1441endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001442ifdef NEED_TLS_PRF_SHA256
1443SHA256OBJS += src/crypto/sha256-tlsprf.c
1444endif
Hai Shalomc3565922019-10-28 11:58:20 -07001445ifdef NEED_TLS_PRF_SHA384
1446SHA256OBJS += src/crypto/sha384-tlsprf.c
1447endif
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001448ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001449L_CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001450SHA256OBJS += src/crypto/sha256-kdf.c
1451endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001452ifdef NEED_HMAC_SHA384_KDF
1453L_CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1454SHA256OBJS += src/crypto/sha384-kdf.c
1455endif
1456ifdef NEED_HMAC_SHA512_KDF
1457L_CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1458SHA256OBJS += src/crypto/sha512-kdf.c
1459endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001460OBJS += $(SHA256OBJS)
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001461ifdef NEED_SHA384
1462L_CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001463ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001464ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001465OBJS += src/crypto/sha384.c
1466endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001467endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001468OBJS += src/crypto/sha384-prf.c
Dmitry Shmidt40b07202015-01-27 13:40:23 -08001469endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001470ifdef NEED_SHA512
1471L_CFLAGS += -DCONFIG_SHA512
1472ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001473ifneq ($(CONFIG_TLS), gnutls)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001474OBJS += src/crypto/sha512.c
1475endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001476endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001477OBJS += src/crypto/sha512-prf.c
1478endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001479
Hai Shalomfdcde762020-04-02 11:19:20 -07001480ifdef NEED_ASN1
1481OBJS += src/tls/asn1.c
1482endif
1483
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001484ifdef NEED_DH_GROUPS
1485OBJS += src/crypto/dh_groups.c
1486endif
1487ifdef NEED_DH_GROUPS_ALL
1488L_CFLAGS += -DALL_DH_GROUPS
1489endif
1490ifdef CONFIG_INTERNAL_DH_GROUP5
1491ifdef NEED_DH_GROUPS
1492OBJS += src/crypto/dh_group5.c
1493endif
1494endif
1495
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001496ifdef NEED_ECC
1497L_CFLAGS += -DCONFIG_ECC
1498endif
1499
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001500ifdef CONFIG_NO_RANDOM_POOL
1501L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
1502else
1503OBJS += src/crypto/random.c
1504endif
1505
1506ifdef CONFIG_CTRL_IFACE
1507ifeq ($(CONFIG_CTRL_IFACE), y)
1508ifdef CONFIG_NATIVE_WINDOWS
1509CONFIG_CTRL_IFACE=named_pipe
1510else
1511CONFIG_CTRL_IFACE=unix
1512endif
1513endif
1514L_CFLAGS += -DCONFIG_CTRL_IFACE
1515ifeq ($(CONFIG_CTRL_IFACE), unix)
1516L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001517OBJS += src/common/ctrl_iface_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001518endif
1519ifeq ($(CONFIG_CTRL_IFACE), udp)
1520L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1521endif
1522ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1523L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1524endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001525ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1526CONFIG_CTRL_IFACE=udp
1527L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1528L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1529endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001530OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c
1531endif
1532
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001533ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001534L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1535OBJS += dbus/dbus_dict_helpers.c
1536OBJS += dbus/dbus_new_helpers.c
1537OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c
1538OBJS += dbus/dbus_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001539ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001540OBJS += dbus/dbus_new_handlers_wps.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001541endif
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001542ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001543OBJS += dbus/dbus_new_handlers_p2p.c
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001544endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001545ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001546OBJS += dbus/dbus_new_introspect.c
1547L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001548endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001549L_CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001550endif
1551
Gabriel Biren57ededa2021-09-03 16:08:50 +00001552ifdef CONFIG_CTRL_IFACE_AIDL
1553WPA_SUPPLICANT_USE_AIDL=y
1554L_CFLAGS += -DCONFIG_AIDL -DCONFIG_CTRL_IFACE_AIDL
Dmitry Shmidte4663042016-04-04 10:07:49 -07001555endif
1556
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001557ifdef CONFIG_READLINE
1558OBJS_c += src/utils/edit_readline.c
1559LIBS_c += -lncurses -lreadline
1560else
1561ifdef CONFIG_WPA_CLI_EDIT
1562OBJS_c += src/utils/edit.c
1563else
1564OBJS_c += src/utils/edit_simple.c
1565endif
1566endif
1567
1568ifdef CONFIG_NATIVE_WINDOWS
1569L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
1570LIBS += -lws2_32 -lgdi32 -lcrypt32
1571LIBS_c += -lws2_32
1572LIBS_p += -lws2_32 -lgdi32
1573ifeq ($(CONFIG_CRYPTO), cryptoapi)
1574LIBS_p += -lcrypt32
1575endif
1576endif
1577
1578ifdef CONFIG_NO_STDOUT_DEBUG
1579L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1580ifndef CONFIG_CTRL_IFACE
1581L_CFLAGS += -DCONFIG_NO_WPA_MSG
1582endif
1583endif
1584
1585ifdef CONFIG_ANDROID_LOG
1586L_CFLAGS += -DCONFIG_ANDROID_LOG
1587endif
1588
1589ifdef CONFIG_IPV6
1590# for eapol_test only
1591L_CFLAGS += -DCONFIG_IPV6
1592endif
1593
1594ifdef NEED_BASE64
1595OBJS += src/utils/base64.c
1596endif
1597
1598ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001599OBJS += sme.c
1600L_CFLAGS += -DCONFIG_SME
1601endif
1602
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001603OBJS += src/common/ieee802_11_common.c
Dmitry Shmidt746bde52015-01-12 13:01:47 -08001604OBJS += src/common/hw_features_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001605
1606ifdef NEED_EAP_COMMON
1607OBJS += src/eap_common/eap_common.c
1608endif
1609
1610ifndef CONFIG_MAIN
1611CONFIG_MAIN=main
1612endif
1613
1614ifdef CONFIG_DEBUG_SYSLOG
1615L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
Dmitry Shmidt13970b02011-06-30 16:51:41 -07001616ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1617L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1618endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001619endif
1620
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001621ifdef CONFIG_DEBUG_LINUX_TRACING
1622L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1623endif
1624
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001625ifdef CONFIG_DEBUG_FILE
1626L_CFLAGS += -DCONFIG_DEBUG_FILE
1627endif
1628
1629ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1630L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1631endif
1632
1633ifdef CONFIG_FIPS
1634L_CFLAGS += -DCONFIG_FIPS
1635endif
1636
1637OBJS += $(SHA1OBJS) $(DESOBJS)
1638
1639OBJS_p += $(SHA1OBJS)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001640OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001641
1642ifdef CONFIG_BGSCAN_SIMPLE
1643L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1644OBJS += bgscan_simple.c
1645NEED_BGSCAN=y
1646endif
1647
1648ifdef CONFIG_BGSCAN_LEARN
1649L_CFLAGS += -DCONFIG_BGSCAN_LEARN
1650OBJS += bgscan_learn.c
1651NEED_BGSCAN=y
1652endif
1653
1654ifdef NEED_BGSCAN
1655L_CFLAGS += -DCONFIG_BGSCAN
1656OBJS += bgscan.c
1657endif
1658
Dmitry Shmidt04949592012-07-19 12:16:46 -07001659ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1660L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1661OBJS += autoscan_exponential.c
1662NEED_AUTOSCAN=y
1663endif
1664
1665ifdef CONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt0fdea2c2013-11-05 18:12:54 -08001666L_CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
Dmitry Shmidt04949592012-07-19 12:16:46 -07001667OBJS += autoscan_periodic.c
1668NEED_AUTOSCAN=y
1669endif
1670
1671ifdef NEED_AUTOSCAN
1672L_CFLAGS += -DCONFIG_AUTOSCAN
1673OBJS += autoscan.c
1674endif
1675
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001676ifdef CONFIG_EXT_PASSWORD_TEST
1677OBJS += src/utils/ext_password_test.c
1678L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1679NEED_EXT_PASSWORD=y
1680endif
1681
Hai Shalom60840252021-02-19 19:02:11 -08001682ifdef CONFIG_EXT_PASSWORD_FILE
1683OBJS += src/utils/ext_password_file.c
1684L_CFLAGS += -DCONFIG_EXT_PASSWORD_FILE
1685NEED_EXT_PASSWORD=y
1686endif
1687
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001688ifdef NEED_EXT_PASSWORD
1689OBJS += src/utils/ext_password.c
1690L_CFLAGS += -DCONFIG_EXT_PASSWORD
1691endif
1692
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001693ifdef NEED_GAS_SERVER
1694OBJS += src/common/gas_server.c
1695L_CFLAGS += -DCONFIG_GAS_SERVER
1696NEED_GAS=y
1697endif
1698
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001699ifdef NEED_GAS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001700OBJS += src/common/gas.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001701OBJS += gas_query.c
1702L_CFLAGS += -DCONFIG_GAS
1703NEED_OFFCHANNEL=y
1704endif
1705
1706ifdef NEED_OFFCHANNEL
1707OBJS += offchannel.c
1708L_CFLAGS += -DCONFIG_OFFCHANNEL
1709endif
1710
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001711ifdef NEED_JSON
1712OBJS += src/utils/json.c
1713L_CFLAGS += -DCONFIG_JSON
1714endif
1715
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001716OBJS += src/drivers/driver_common.c
1717
Hai Shalom60840252021-02-19 19:02:11 -08001718OBJS += wpa_supplicant.c events.c bssid_ignore.c wpas_glue.c scan.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001719OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c
1720OBJS_t += src/radius/radius_client.c
1721OBJS_t += src/radius/radius.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001722OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c
1723OBJS += $(CONFIG_MAIN).c
1724
1725ifdef CONFIG_PRIVSEP
1726OBJS_priv += $(OBJS_d) src/drivers/drivers.c
1727OBJS_priv += $(OBJS_l2)
1728OBJS_priv += src/utils/os_$(CONFIG_OS).c
1729OBJS_priv += src/utils/$(CONFIG_ELOOP).c
1730OBJS_priv += src/utils/common.c
1731OBJS_priv += src/utils/wpa_debug.c
1732OBJS_priv += src/utils/wpabuf.c
1733OBJS_priv += wpa_priv.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001734ifdef CONFIG_DRIVER_NL80211
1735OBJS_priv += src/common/ieee802_11_common.c
1736endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001737OBJS += src/l2_packet/l2_packet_privsep.c
1738OBJS += src/drivers/driver_privsep.c
1739EXTRA_progs += wpa_priv
1740else
1741OBJS += $(OBJS_d) src/drivers/drivers.c
1742OBJS += $(OBJS_l2)
1743endif
1744
1745ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1746L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1747OBJS += src/drivers/ndis_events.c
1748EXTRALIBS += -loleaut32 -lole32 -luuid
1749ifdef PLATFORMSDKLIB
1750EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1751else
1752EXTRALIBS += WbemUuid.Lib
1753endif
1754endif
1755
1756ifndef LDO
1757LDO=$(CC)
1758endif
1759
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001760########################
1761
1762include $(CLEAR_VARS)
1763LOCAL_MODULE := wpa_cli
Bob Badouref67f872021-02-12 15:20:04 -08001764LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1765LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001766LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001767LOCAL_PROPRIETARY_MODULE := true
Ying Wange93dd112013-04-09 21:53:29 -07001768LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001769LOCAL_CFLAGS := $(L_CFLAGS)
1770LOCAL_SRC_FILES := $(OBJS_c)
1771LOCAL_C_INCLUDES := $(INCLUDES)
1772include $(BUILD_EXECUTABLE)
1773
1774########################
1775include $(CLEAR_VARS)
1776LOCAL_MODULE := wpa_supplicant
Bob Badouref67f872021-02-12 15:20:04 -08001777LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1778LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001779LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001780LOCAL_PROPRIETARY_MODULE := true
1781LOCAL_MODULE_RELATIVE_PATH := hw
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001782ifdef CONFIG_DRIVER_CUSTOM
1783LOCAL_STATIC_LIBRARIES := libCustomWifi
1784endif
1785ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
1786LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)
1787endif
Ying Wange93dd112013-04-09 21:53:29 -07001788LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt04f534e2013-12-09 15:50:16 -08001789ifdef CONFIG_EAP_PROXY
1790LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY)
1791LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY)
1792endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001793ifeq ($(CONFIG_TLS), openssl)
Gabriel Birena5bdf372022-12-15 20:54:33 +00001794LOCAL_SHARED_LIBRARIES += libcrypto libssl
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001795endif
Adam Langley1eb02ed2015-04-21 19:00:05 -07001796
1797# With BoringSSL we need libkeystore-engine in order to provide access to
1798# keystore keys.
Roshan Pius3eb7b242017-03-28 13:39:46 -07001799LOCAL_SHARED_LIBRARIES += libkeystore-engine-wifi-hidl
Adam Langley1eb02ed2015-04-21 19:00:05 -07001800
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001801ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001802ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -08001803LOCAL_SHARED_LIBRARIES += libnl
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001804else
1805LOCAL_STATIC_LIBRARIES += libnl_2
1806endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001807endif
1808LOCAL_CFLAGS := $(L_CFLAGS)
1809LOCAL_SRC_FILES := $(OBJS)
1810LOCAL_C_INCLUDES := $(INCLUDES)
Samuel Tanb7983992015-08-11 09:59:20 -07001811ifeq ($(DBUS), y)
1812LOCAL_SHARED_LIBRARIES += libdbus
1813endif
Gabriel Biren57ededa2021-09-03 16:08:50 +00001814ifeq ($(WPA_SUPPLICANT_USE_AIDL), y)
Gabriel Biren3c738832022-08-26 22:42:00 +00001815LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant-V2-ndk
Gabriel Biren6b4e8272022-12-14 23:07:53 +00001816LOCAL_SHARED_LIBRARIES += android.system.keystore2-V1-ndk
Gabriel Biren57ededa2021-09-03 16:08:50 +00001817LOCAL_SHARED_LIBRARIES += libutils libbase
1818LOCAL_SHARED_LIBRARIES += libbinder_ndk
1819LOCAL_STATIC_LIBRARIES += libwpa_aidl
1820LOCAL_VINTF_FRAGMENTS := aidl/android.hardware.wifi.supplicant.xml
Greg Kaiser9c039c42022-01-20 21:25:44 +00001821ifeq ($(WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY), true)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001822LOCAL_INIT_RC=aidl/android.hardware.wifi.supplicant-service.rc
Jimmy Chen461aeef2019-10-01 10:55:20 +08001823endif
Dmitry Shmidte4663042016-04-04 10:07:49 -07001824endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001825include $(BUILD_EXECUTABLE)
1826
1827########################
1828#
1829#include $(CLEAR_VARS)
1830#LOCAL_MODULE := eapol_test
1831#ifdef CONFIG_DRIVER_CUSTOM
1832#LOCAL_STATIC_LIBRARIES := libCustomWifi
1833#endif
1834#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl
1835#LOCAL_CFLAGS := $(L_CFLAGS)
1836#LOCAL_SRC_FILES := $(OBJS_t)
1837#LOCAL_C_INCLUDES := $(INCLUDES)
1838#include $(BUILD_EXECUTABLE)
1839#
1840########################
1841#
1842#local_target_dir := $(TARGET_OUT)/etc/wifi
1843#
1844#include $(CLEAR_VARS)
1845#LOCAL_MODULE := wpa_supplicant.conf
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001846#LOCAL_MODULE_CLASS := ETC
1847#LOCAL_MODULE_PATH := $(local_target_dir)
1848#LOCAL_SRC_FILES := $(LOCAL_MODULE)
1849#include $(BUILD_PREBUILT)
1850#
1851########################
1852
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001853include $(CLEAR_VARS)
1854LOCAL_MODULE = libwpa_client
Bob Badouref67f872021-02-12 15:20:04 -08001855LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1856LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001857LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Roshan Pius7c9288c2017-02-23 08:27:38 -08001858LOCAL_PROPRIETARY_MODULE := true
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001859LOCAL_CFLAGS = $(L_CFLAGS)
1860LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
1861LOCAL_C_INCLUDES = $(INCLUDES)
Ying Wange93dd112013-04-09 21:53:29 -07001862LOCAL_SHARED_LIBRARIES := libcutils liblog
Vijay Venkatraman1afec612016-12-06 11:09:03 -08001863LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/wpa_client_include $(LOCAL_PATH)/wpa_client_include/libwpa_client
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001864include $(BUILD_SHARED_LIBRARY)
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001865
Gabriel Biren57ededa2021-09-03 16:08:50 +00001866ifeq ($(WPA_SUPPLICANT_USE_AIDL), y)
1867### Aidl service library ###
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001868########################
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001869include $(CLEAR_VARS)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001870LOCAL_MODULE := libwpa_aidl
Bob Badouref67f872021-02-12 15:20:04 -08001871LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered
1872LOCAL_LICENSE_CONDITIONS := notice unencumbered
Bob Badour618e16c2022-02-14 12:41:29 -08001873LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE
Jiyong Parka1d8ba22017-06-26 13:11:29 +09001874LOCAL_VENDOR_MODULE := true
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001875LOCAL_CPPFLAGS := $(L_CPPFLAGS)
1876LOCAL_CFLAGS := $(L_CFLAGS)
1877LOCAL_C_INCLUDES := $(INCLUDES)
1878LOCAL_SRC_FILES := \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001879 aidl/aidl.cpp \
1880 aidl/aidl_manager.cpp \
Gabriel Biren6b4e8272022-12-14 23:07:53 +00001881 aidl/certificate_utils.cpp \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001882 aidl/iface_config_utils.cpp \
1883 aidl/p2p_iface.cpp \
1884 aidl/p2p_network.cpp \
1885 aidl/sta_iface.cpp \
1886 aidl/sta_network.cpp \
1887 aidl/supplicant.cpp
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001888LOCAL_SHARED_LIBRARIES := \
Gabriel Biren3c738832022-08-26 22:42:00 +00001889 android.hardware.wifi.supplicant-V2-ndk \
Gabriel Biren6b4e8272022-12-14 23:07:53 +00001890 android.system.keystore2-V1-ndk \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001891 libbinder_ndk \
Roshan Pius0b4856b2018-02-09 14:29:24 -08001892 libbase \
Jiyong Parka1d8ba22017-06-26 13:11:29 +09001893 libutils \
Hai Shalom59532852018-12-07 10:32:58 -08001894 liblog \
1895 libssl
Roshan Piusedd820c2017-05-16 14:21:49 -07001896LOCAL_EXPORT_C_INCLUDE_DIRS := \
Gabriel Biren57ededa2021-09-03 16:08:50 +00001897 $(LOCAL_PATH)/aidl
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001898include $(BUILD_STATIC_LIBRARY)
Gabriel Biren57ededa2021-09-03 16:08:50 +00001899endif # WPA_SUPPLICANT_USE_AIDL == y