blob: 0a71558df395ea173ab98d9388431cc098307700 [file] [log] [blame]
Hai Shalom899fcc72020-10-19 14:38:18 -07001BINALL=wpa_supplicant wpa_cli
2
Hai Shalom899fcc72020-10-19 14:38:18 -07003ALL = $(BINALL)
4ALL += systemd/wpa_supplicant.service
5ALL += systemd/wpa_supplicant@.service
6ALL += systemd/wpa_supplicant-nl80211@.service
7ALL += systemd/wpa_supplicant-wired@.service
8ALL += dbus/fi.w1.wpa_supplicant1.service
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07009
Hai Shalom899fcc72020-10-19 14:38:18 -070010EXTRA_TARGETS=dynamic_eap_methods
11
12CONFIG_FILE=.config
13include ../src/build.rules
14
Sunil Ravia04bd252022-05-02 22:54:18 -070015ifdef CONFIG_BUILD_WPA_CLIENT_SO
16# add the dependency this way to allow CONFIG_BUILD_WPA_CLIENT_SO
17# being set in the config which is read by build.rules
18_all: libwpa_client.so
19endif
20
21ifndef CONFIG_NO_WPA_PASSPHRASE
22# add the dependency this way to allow CONFIG_NO_WPA_PASSPHRASE
23# being set in the config which is read by build.rules
24_all: wpa_passphrase
25endif
26
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -080027ifdef LIBS
28# If LIBS is set with some global build system defaults, clone those for
29# LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well.
30ifndef LIBS_c
31LIBS_c := $(LIBS)
32endif
33ifndef LIBS_p
34LIBS_p := $(LIBS)
35endif
36endif
37
Hai Shaloma20dcd72022-02-04 13:43:00 -080038export LIBDIR ?= /usr/local/lib
39export INCDIR ?= /usr/local/include
40export BINDIR ?= /usr/local/sbin
Dmitry Shmidtc55524a2011-07-07 11:18:38 -070041PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070042
Dmitry Shmidt216983b2015-02-06 10:50:36 -080043CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080044CFLAGS += -I$(abspath ../src)
45CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070046
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080047ifndef CONFIG_NO_GITVER
48# Add VERSION_STR postfix for builds from a git repository
49ifeq ($(wildcard ../.git),../.git)
50GITVER := $(shell git describe --dirty=+)
51ifneq ($(GITVER),)
52CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
53endif
54endif
55endif
56
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080057ifdef CONFIG_TESTING_OPTIONS
58CFLAGS += -DCONFIG_TESTING_OPTIONS
59CONFIG_WPS_TESTING=y
60CONFIG_TDLS_TESTING=y
61endif
62
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070063mkconfig:
64 @if [ -f .config ]; then \
65 echo '.config exists - did not replace it'; \
66 exit 1; \
67 fi
68 echo CONFIG_DRIVER_HOSTAP=y >> .config
69 echo CONFIG_DRIVER_WEXT=y >> .config
70
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080071$(DESTDIR)$(BINDIR)/%: %
72 install -D $(<) $(@)
73
74install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070075 $(MAKE) -C ../src install
Sunil Ravia04bd252022-05-02 22:54:18 -070076ifndef CONFIG_NO_WPA_PASSPHRASE
77 install -D wpa_passphrase $(DESTDIR)/$(BINDIR)/wpa_passphrase
78endif
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070079ifdef CONFIG_BUILD_WPA_CLIENT_SO
80 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
81 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
82endif
Hai Shaloma20dcd72022-02-04 13:43:00 -080083 if ls eap_*.so >/dev/null 2>&1; then \
84 install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \
85 cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
86 ; fi
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070087
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070088ifdef CONFIG_FIPS
89CONFIG_NO_RANDOM_POOL=
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070090endif
91
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070092OBJS = config.o
93OBJS += notify.o
94OBJS += bss.o
95OBJS += eap_register.o
96OBJS += ../src/utils/common.o
Hai Shalom60840252021-02-19 19:02:11 -080097OBJS += ../src/utils/config.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070098OBJS += ../src/utils/wpa_debug.o
99OBJS += ../src/utils/wpabuf.o
Dmitry Shmidt29333592017-01-09 12:27:11 -0800100OBJS += ../src/utils/bitfield.o
Hai Shalomc3565922019-10-28 11:58:20 -0700101OBJS += ../src/utils/ip_addr.o
Hai Shalomfdcde762020-04-02 11:19:20 -0700102OBJS += ../src/utils/crc32.o
Dmitry Shmidt29333592017-01-09 12:27:11 -0800103OBJS += op_classes.o
104OBJS += rrm.o
Hai Shaloma20dcd72022-02-04 13:43:00 -0800105OBJS += twt.o
Hai Shalom899fcc72020-10-19 14:38:18 -0700106OBJS += robust_av.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700107OBJS_p = wpa_passphrase.o
108OBJS_p += ../src/utils/common.o
109OBJS_p += ../src/utils/wpa_debug.o
110OBJS_p += ../src/utils/wpabuf.o
111OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
112OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800113OBJS_c += ../src/utils/common.o
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700114OBJS_c += ../src/common/cli.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800115OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700116
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700117ifndef CONFIG_OS
118ifdef CONFIG_NATIVE_WINDOWS
119CONFIG_OS=win32
120else
121CONFIG_OS=unix
122endif
123endif
124
125ifeq ($(CONFIG_OS), internal)
126CFLAGS += -DOS_NO_C_LIB_DEFINES
127endif
128
129OBJS += ../src/utils/os_$(CONFIG_OS).o
130OBJS_p += ../src/utils/os_$(CONFIG_OS).o
131OBJS_c += ../src/utils/os_$(CONFIG_OS).o
132
133ifdef CONFIG_WPA_TRACE
134CFLAGS += -DWPA_TRACE
135OBJS += ../src/utils/trace.o
136OBJS_p += ../src/utils/trace.o
137OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800138OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -0800139LIBCTRL += ../src/utils/trace.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -0700140LIBCTRLSO += ../src/utils/trace.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700141LDFLAGS += -rdynamic
142CFLAGS += -funwind-tables
143ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800144CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800145LIBS += -lbfd -ldl -liberty -lz
146LIBS_p += -lbfd -ldl -liberty -lz
147LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700148endif
149endif
150
151ifndef CONFIG_ELOOP
152CONFIG_ELOOP=eloop
153endif
154OBJS += ../src/utils/$(CONFIG_ELOOP).o
155OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
156
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800157ifndef CONFIG_OSX
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800158ifeq ($(CONFIG_ELOOP), eloop)
159# Using glibc < 2.17 requires -lrt for clock_gettime()
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800160# OS X has an alternate implementation
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800161LIBS += -lrt
162LIBS_c += -lrt
163LIBS_p += -lrt
164endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800165endif
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800166
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800167ifdef CONFIG_ELOOP_POLL
168CFLAGS += -DCONFIG_ELOOP_POLL
169endif
170
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700171ifdef CONFIG_ELOOP_EPOLL
172CFLAGS += -DCONFIG_ELOOP_EPOLL
173endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700174
Dmitry Shmidtb97e4282016-02-08 10:16:07 -0800175ifdef CONFIG_ELOOP_KQUEUE
176CFLAGS += -DCONFIG_ELOOP_KQUEUE
177endif
178
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700179ifdef CONFIG_EAPOL_TEST
180CFLAGS += -Werror -DEAPOL_TEST
181endif
182
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800183ifdef CONFIG_CODE_COVERAGE
184CFLAGS += -O0 -fprofile-arcs -ftest-coverage
185LIBS += -lgcov
186LIBS_c += -lgcov
187LIBS_p += -lgcov
188endif
189
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800190ifdef CONFIG_HT_OVERRIDES
191CFLAGS += -DCONFIG_HT_OVERRIDES
192endif
193
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700194ifdef CONFIG_VHT_OVERRIDES
195CFLAGS += -DCONFIG_VHT_OVERRIDES
196endif
197
Hai Shalomfdcde762020-04-02 11:19:20 -0700198ifdef CONFIG_HE_OVERRIDES
199CFLAGS += -DCONFIG_HE_OVERRIDES
200endif
201
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700202ifndef CONFIG_BACKEND
203CONFIG_BACKEND=file
204endif
205
206ifeq ($(CONFIG_BACKEND), file)
207OBJS += config_file.o
208ifndef CONFIG_NO_CONFIG_BLOBS
209NEED_BASE64=y
210endif
211CFLAGS += -DCONFIG_BACKEND_FILE
212endif
213
214ifeq ($(CONFIG_BACKEND), winreg)
215OBJS += config_winreg.o
216endif
217
218ifeq ($(CONFIG_BACKEND), none)
219OBJS += config_none.o
220endif
221
222ifdef CONFIG_NO_CONFIG_WRITE
223CFLAGS += -DCONFIG_NO_CONFIG_WRITE
224endif
225
226ifdef CONFIG_NO_CONFIG_BLOBS
227CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
228endif
229
230ifdef CONFIG_NO_SCAN_PROCESSING
231CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
232endif
233
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800234ifdef CONFIG_SUITEB
235CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800236endif
237
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800238ifdef CONFIG_SUITEB192
239CFLAGS += -DCONFIG_SUITEB192
240NEED_SHA384=y
241endif
242
Hai Shalom74f70d42019-02-11 14:42:39 -0800243ifdef CONFIG_OCV
244CFLAGS += -DCONFIG_OCV
245OBJS += ../src/common/ocv.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700246endif
247
248ifdef CONFIG_IEEE80211R
249CFLAGS += -DCONFIG_IEEE80211R
250OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700251endif
252
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800253ifdef CONFIG_MESH
254NEED_80211_COMMON=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800255NEED_AES_SIV=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800256CONFIG_SAE=y
257CONFIG_AP=y
258CFLAGS += -DCONFIG_MESH
259OBJS += mesh.o
260OBJS += mesh_mpm.o
261OBJS += mesh_rsn.o
262endif
263
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800264ifdef CONFIG_SAE
265CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800266OBJS += ../src/common/sae.o
Hai Shalom899fcc72020-10-19 14:38:18 -0700267ifdef CONFIG_SAE_PK
268CFLAGS += -DCONFIG_SAE_PK
Sunil8cd6f4d2022-06-28 18:40:46 +0000269NEED_AES_SIV=y
Hai Shalom899fcc72020-10-19 14:38:18 -0700270OBJS += ../src/common/sae_pk.o
271endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800272NEED_ECC=y
273NEED_DH_GROUPS=y
Hai Shalomb755a2a2020-04-23 21:49:02 -0700274NEED_HMAC_SHA256_KDF=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700275NEED_DRAGONFLY=y
Ahmed ElArabawy0ff61c52019-12-26 12:38:39 -0800276ifdef CONFIG_TESTING_OPTIONS
277NEED_DH_GROUPS_ALL=y
278endif
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800279endif
280
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700281ifdef CONFIG_DPP
282CFLAGS += -DCONFIG_DPP
283OBJS += ../src/common/dpp.o
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700284OBJS += ../src/common/dpp_auth.o
285OBJS += ../src/common/dpp_backup.o
286OBJS += ../src/common/dpp_crypto.o
287OBJS += ../src/common/dpp_pkex.o
288OBJS += ../src/common/dpp_reconfig.o
289OBJS += ../src/common/dpp_tcp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700290OBJS += dpp_supplicant.o
291NEED_AES_SIV=y
292NEED_HMAC_SHA256_KDF=y
293NEED_HMAC_SHA384_KDF=y
294NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700295NEED_SHA384=y
296NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700297NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700298NEED_JSON=y
299NEED_GAS_SERVER=y
300NEED_BASE64=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700301NEED_ASN1=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700302ifdef CONFIG_DPP2
303CFLAGS += -DCONFIG_DPP2
304endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800305ifdef CONFIG_DPP3
306CFLAGS += -DCONFIG_DPP3
307endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700308endif
309
310ifdef CONFIG_OWE
311CFLAGS += -DCONFIG_OWE
312NEED_ECC=y
313NEED_HMAC_SHA256_KDF=y
314NEED_HMAC_SHA384_KDF=y
315NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700316NEED_SHA384=y
317NEED_SHA512=y
318endif
319
Jimmy Chencaaac072019-09-16 16:36:06 +0800320ifdef CONFIG_WAPI_INTERFACE
321L_CFLAGS += -DCONFIG_WAPI_INTERFACE
322endif
323
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800324ifdef CONFIG_FILS
325CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800326NEED_SHA384=y
327NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700328ifdef CONFIG_FILS_SK_PFS
329CFLAGS += -DCONFIG_FILS_SK_PFS
330NEED_ECC=y
331endif
332endif
333
334ifdef CONFIG_MBO
335CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800336endif
337
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800338ifdef CONFIG_WNM
339CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700340OBJS += wnm_sta.o
341endif
342
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700343ifdef CONFIG_TDLS
344CFLAGS += -DCONFIG_TDLS
345OBJS += ../src/rsn_supp/tdls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700346endif
347
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800348ifdef CONFIG_TDLS_TESTING
349CFLAGS += -DCONFIG_TDLS_TESTING
350endif
351
Dmitry Shmidt29333592017-01-09 12:27:11 -0800352ifdef CONFIG_PMKSA_CACHE_EXTERNAL
353CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
354endif
355
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700356ifndef CONFIG_NO_WPA
357OBJS += ../src/rsn_supp/wpa.o
358OBJS += ../src/rsn_supp/preauth.o
359OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700360OBJS += ../src/rsn_supp/wpa_ie.o
361OBJS += ../src/common/wpa_common.o
362NEED_AES=y
363NEED_SHA1=y
364NEED_MD5=y
365NEED_RC4=y
366else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700367CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800368ifeq ($(CONFIG_TLS), internal)
369NEED_SHA1=y
370NEED_MD5=y
371endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700372endif
373
374ifdef CONFIG_IBSS_RSN
375NEED_RSN_AUTHENTICATOR=y
376CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700377CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700378OBJS += ibss_rsn.o
379endif
380
Dmitry Shmidte4663042016-04-04 10:07:49 -0700381ifdef CONFIG_MATCH_IFACE
382CFLAGS += -DCONFIG_MATCH_IFACE
383endif
384
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700385ifdef CONFIG_P2P
386OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700387OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700388OBJS += ../src/p2p/p2p.o
389OBJS += ../src/p2p/p2p_utils.o
390OBJS += ../src/p2p/p2p_parse.o
391OBJS += ../src/p2p/p2p_build.o
392OBJS += ../src/p2p/p2p_go_neg.o
393OBJS += ../src/p2p/p2p_sd.o
394OBJS += ../src/p2p/p2p_pd.o
395OBJS += ../src/p2p/p2p_invitation.o
396OBJS += ../src/p2p/p2p_dev_disc.o
397OBJS += ../src/p2p/p2p_group.o
398OBJS += ../src/ap/p2p_hostapd.o
399CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800400NEED_GAS=y
401NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800402CONFIG_WPS=y
403CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700404ifdef CONFIG_P2P_STRICT
405CFLAGS += -DCONFIG_P2P_STRICT
406endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700407ifdef CONFIG_WIFI_DISPLAY
408CFLAGS += -DCONFIG_WIFI_DISPLAY
409OBJS += wifi_display.o
410endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800411endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700412
Hai Shalom60840252021-02-19 19:02:11 -0800413ifdef CONFIG_PASN
414CFLAGS += -DCONFIG_PASN
415CFLAGS += -DCONFIG_PTKSA_CACHE
416NEED_HMAC_SHA256_KDF=y
417NEED_HMAC_SHA384_KDF=y
418NEED_SHA256=y
419NEED_SHA384=y
420OBJS += ../src/common/ptksa_cache.o
421OBJS += pasn_supplicant.o
422endif
423
Dmitry Shmidt04949592012-07-19 12:16:46 -0700424ifdef CONFIG_HS20
425OBJS += hs20_supplicant.o
426CFLAGS += -DCONFIG_HS20
427CONFIG_INTERWORKING=y
428endif
429
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800430ifdef CONFIG_INTERWORKING
431OBJS += interworking.o
432CFLAGS += -DCONFIG_INTERWORKING
433NEED_GAS=y
434endif
435
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700436ifdef CONFIG_NO_ROAMING
437CFLAGS += -DCONFIG_NO_ROAMING
438endif
439
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700440include ../src/drivers/drivers.mak
441ifdef CONFIG_AP
442OBJS_d += $(DRV_BOTH_OBJS)
443CFLAGS += $(DRV_BOTH_CFLAGS)
444LDFLAGS += $(DRV_BOTH_LDFLAGS)
445LIBS += $(DRV_BOTH_LIBS)
446else
447NEED_AP_MLME=
448OBJS_d += $(DRV_WPA_OBJS)
449CFLAGS += $(DRV_WPA_CFLAGS)
450LDFLAGS += $(DRV_WPA_LDFLAGS)
451LIBS += $(DRV_WPA_LIBS)
452endif
453
454ifndef CONFIG_L2_PACKET
455CONFIG_L2_PACKET=linux
456endif
457
458OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
459
460ifeq ($(CONFIG_L2_PACKET), pcap)
461ifdef CONFIG_WINPCAP
462CFLAGS += -DCONFIG_WINPCAP
463LIBS += -lwpcap -lpacket
464LIBS_w += -lwpcap
465else
466LIBS += -ldnet -lpcap
467endif
468endif
469
470ifeq ($(CONFIG_L2_PACKET), winpcap)
471LIBS += -lwpcap -lpacket
472LIBS_w += -lwpcap
473endif
474
475ifeq ($(CONFIG_L2_PACKET), freebsd)
476LIBS += -lpcap
477endif
478
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800479ifdef CONFIG_ERP
480CFLAGS += -DCONFIG_ERP
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800481NEED_HMAC_SHA256_KDF=y
482endif
483
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700484ifdef CONFIG_EAP_TLS
485# EAP-TLS
486ifeq ($(CONFIG_EAP_TLS), dyn)
487CFLAGS += -DEAP_TLS_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800488EAPDYN += eap_tls.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700489else
490CFLAGS += -DEAP_TLS
491OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700492endif
493TLS_FUNCS=y
494CONFIG_IEEE8021X_EAPOL=y
Sunil Ravia04bd252022-05-02 22:54:18 -0700495ifdef CONFIG_EAP_TLSV1_3
496CFLAGS += -DEAP_TLSV1_3
497endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700498endif
499
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700500ifdef CONFIG_EAP_UNAUTH_TLS
501# EAP-UNAUTH-TLS
502CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700503ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700504OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700505TLS_FUNCS=y
506endif
507CONFIG_IEEE8021X_EAPOL=y
508endif
509
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700510ifdef CONFIG_EAP_PEAP
511# EAP-PEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800512SRC_EAP_PEAP = ../src/eap_peer/eap_peap.c ../src/eap_common/eap_peap_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700513ifeq ($(CONFIG_EAP_PEAP), dyn)
514CFLAGS += -DEAP_PEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800515EAPDYN += eap_peap.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700516else
517CFLAGS += -DEAP_PEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800518OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PEAP))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700519endif
520TLS_FUNCS=y
521CONFIG_IEEE8021X_EAPOL=y
522endif
523
524ifdef CONFIG_EAP_TTLS
525# EAP-TTLS
526ifeq ($(CONFIG_EAP_TTLS), dyn)
527CFLAGS += -DEAP_TTLS_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800528EAPDYN += eap_ttls.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700529else
530CFLAGS += -DEAP_TTLS
531OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700532endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700533TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800534ifndef CONFIG_FIPS
535MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700536CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800537endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700538CONFIG_IEEE8021X_EAPOL=y
539endif
540
541ifdef CONFIG_EAP_MD5
542# EAP-MD5
543ifeq ($(CONFIG_EAP_MD5), dyn)
544CFLAGS += -DEAP_MD5_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800545EAPDYN += eap_md5.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700546else
547CFLAGS += -DEAP_MD5
548OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700549endif
550CHAP=y
551CONFIG_IEEE8021X_EAPOL=y
552endif
553
554# backwards compatibility for old spelling
555ifdef CONFIG_MSCHAPV2
556ifndef CONFIG_EAP_MSCHAPV2
557CONFIG_EAP_MSCHAPV2=y
558endif
559endif
560
561ifdef CONFIG_EAP_MSCHAPV2
562# EAP-MSCHAPv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800563SRC_EAP_MSCHAPV2 = ../src/eap_peer/eap_mschapv2.c ../src/eap_peer/mschapv2.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700564ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
565CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800566EAPDYN += eap_mschapv2.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700567else
568CFLAGS += -DEAP_MSCHAPv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800569OBJS += $(patsubst %.c, %.o, $(SRC_EAP_MSCHAPV2))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700570endif
571MS_FUNCS=y
572CONFIG_IEEE8021X_EAPOL=y
573endif
574
575ifdef CONFIG_EAP_GTC
576# EAP-GTC
577ifeq ($(CONFIG_EAP_GTC), dyn)
578CFLAGS += -DEAP_GTC_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800579EAPDYN += eap_gtc.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700580else
581CFLAGS += -DEAP_GTC
582OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700583endif
584CONFIG_IEEE8021X_EAPOL=y
585endif
586
587ifdef CONFIG_EAP_OTP
588# EAP-OTP
589ifeq ($(CONFIG_EAP_OTP), dyn)
590CFLAGS += -DEAP_OTP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800591EAPDYN += eap_otp.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700592else
593CFLAGS += -DEAP_OTP
594OBJS += ../src/eap_peer/eap_otp.o
595endif
596CONFIG_IEEE8021X_EAPOL=y
597endif
598
599ifdef CONFIG_EAP_SIM
600# EAP-SIM
601ifeq ($(CONFIG_EAP_SIM), dyn)
602CFLAGS += -DEAP_SIM_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800603EAPDYN += eap_sim.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700604else
605CFLAGS += -DEAP_SIM
606OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700607endif
608CONFIG_IEEE8021X_EAPOL=y
609CONFIG_EAP_SIM_COMMON=y
610NEED_AES_CBC=y
611endif
612
613ifdef CONFIG_EAP_LEAP
614# EAP-LEAP
615ifeq ($(CONFIG_EAP_LEAP), dyn)
616CFLAGS += -DEAP_LEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800617EAPDYN += eap_leap.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700618else
619CFLAGS += -DEAP_LEAP
620OBJS += ../src/eap_peer/eap_leap.o
621endif
622MS_FUNCS=y
623CONFIG_IEEE8021X_EAPOL=y
624endif
625
626ifdef CONFIG_EAP_PSK
627# EAP-PSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800628SRC_EAP_PSK = ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700629ifeq ($(CONFIG_EAP_PSK), dyn)
630CFLAGS += -DEAP_PSK_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800631EAPDYN += eap_psk.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700632else
633CFLAGS += -DEAP_PSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800634OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PSK))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700635endif
636CONFIG_IEEE8021X_EAPOL=y
637NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700638NEED_AES_ENCBLOCK=y
639NEED_AES_EAX=y
640endif
641
642ifdef CONFIG_EAP_AKA
643# EAP-AKA
644ifeq ($(CONFIG_EAP_AKA), dyn)
645CFLAGS += -DEAP_AKA_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800646EAPDYN += eap_aka.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700647else
648CFLAGS += -DEAP_AKA
649OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700650endif
651CONFIG_IEEE8021X_EAPOL=y
652CONFIG_EAP_SIM_COMMON=y
653NEED_AES_CBC=y
654endif
655
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800656ifdef CONFIG_EAP_PROXY
657CFLAGS += -DCONFIG_EAP_PROXY
658OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700659include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800660CONFIG_IEEE8021X_EAPOL=y
661endif
662
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700663ifdef CONFIG_EAP_AKA_PRIME
664# EAP-AKA'
665ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
666CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
667else
668CFLAGS += -DEAP_AKA_PRIME
669endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700670endif
671
672ifdef CONFIG_EAP_SIM_COMMON
673OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700674NEED_AES=y
675NEED_FIPS186_2_PRF=y
676endif
677
678ifdef CONFIG_EAP_FAST
679# EAP-FAST
Hai Shaloma20dcd72022-02-04 13:43:00 -0800680SRC_EAP_FAST = ../src/eap_peer/eap_fast.c ../src/eap_peer/eap_fast_pac.c
681SRC_EAP_FAST += ../src/eap_common/eap_fast_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700682ifeq ($(CONFIG_EAP_FAST), dyn)
683CFLAGS += -DEAP_FAST_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800684EAPDYN += eap_fast.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700685else
686CFLAGS += -DEAP_FAST
Hai Shaloma20dcd72022-02-04 13:43:00 -0800687OBJS += $(patsubst %.c, %.o, $(SRC_EAP_FAST))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700688endif
689TLS_FUNCS=y
690CONFIG_IEEE8021X_EAPOL=y
691NEED_T_PRF=y
692endif
693
Hai Shalom81f62d82019-07-22 12:10:00 -0700694ifdef CONFIG_EAP_TEAP
695# EAP-TEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800696SRC_EAP_TEAP = ../src/eap_peer/eap_teap.c ../src/eap_peer/eap_teap_pac.c
697SRC_EAP_TEAP += ../src/eap_common/eap_teap_common.c
Hai Shalom81f62d82019-07-22 12:10:00 -0700698ifeq ($(CONFIG_EAP_TEAP), dyn)
699CFLAGS += -DEAP_TEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800700EAPDYN += eap_teap.so
Hai Shalom81f62d82019-07-22 12:10:00 -0700701else
702CFLAGS += -DEAP_TEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800703OBJS += $(patsubst %.c, %.o, $(SRC_EAP_TEAP))
Hai Shalom81f62d82019-07-22 12:10:00 -0700704endif
705TLS_FUNCS=y
706CONFIG_IEEE8021X_EAPOL=y
707NEED_T_PRF=y
708NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700709NEED_TLS_PRF_SHA256=y
710NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700711endif
712
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700713ifdef CONFIG_EAP_PAX
714# EAP-PAX
Hai Shaloma20dcd72022-02-04 13:43:00 -0800715SRC_EAP_PAX = ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700716ifeq ($(CONFIG_EAP_PAX), dyn)
717CFLAGS += -DEAP_PAX_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800718EAPDYN += eap_pax.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700719else
720CFLAGS += -DEAP_PAX
Hai Shaloma20dcd72022-02-04 13:43:00 -0800721OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PAX))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700722endif
723CONFIG_IEEE8021X_EAPOL=y
724endif
725
726ifdef CONFIG_EAP_SAKE
727# EAP-SAKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800728SRC_EAP_SAKE = ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700729ifeq ($(CONFIG_EAP_SAKE), dyn)
730CFLAGS += -DEAP_SAKE_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800731EAPDYN += eap_sake.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700732else
733CFLAGS += -DEAP_SAKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800734OBJS += $(patsubst %.c, %.o, $(SRC_EAP_SAKE))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700735endif
736CONFIG_IEEE8021X_EAPOL=y
737endif
738
739ifdef CONFIG_EAP_GPSK
740# EAP-GPSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800741SRC_EAP_GPSK = ../src/eap_peer/eap_gpsk.c ../src/eap_common/eap_gpsk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700742ifeq ($(CONFIG_EAP_GPSK), dyn)
743CFLAGS += -DEAP_GPSK_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800744EAPDYN += eap_gpsk.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700745else
746CFLAGS += -DEAP_GPSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800747OBJS += $(patsubst %.c, %.o, $(SRC_EAP_GPSK))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700748endif
749CONFIG_IEEE8021X_EAPOL=y
750ifdef CONFIG_EAP_GPSK_SHA256
751CFLAGS += -DEAP_GPSK_SHA256
752endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700753endif
754
755ifdef CONFIG_EAP_PWD
756CFLAGS += -DEAP_PWD
Roshan Pius3a1667e2018-07-03 15:17:14 -0700757ifeq ($(CONFIG_TLS), wolfssl)
758CFLAGS += -DCONFIG_ECC
759endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700760OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700761CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700762NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700763NEED_DRAGONFLY=y
Sunil Ravia04bd252022-05-02 22:54:18 -0700764MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700765endif
766
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700767ifdef CONFIG_EAP_EKE
768# EAP-EKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800769SRC_EAP_EKE = ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700770ifeq ($(CONFIG_EAP_EKE), dyn)
771CFLAGS += -DEAP_EKE_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800772EAPDYN += eap_eke.so
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700773else
774CFLAGS += -DEAP_EKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800775OBJS += $(patsubst %.c, %.o, $(SRC_EAP_EKE))
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700776endif
777CONFIG_IEEE8021X_EAPOL=y
778NEED_DH_GROUPS=y
779NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800780NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700781endif
782
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700783ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700784# EAP-WSC
785CFLAGS += -DCONFIG_WPS -DEAP_WSC
786OBJS += wps_supplicant.o
787OBJS += ../src/utils/uuid.o
788OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
789OBJS += ../src/wps/wps.o
790OBJS += ../src/wps/wps_common.o
791OBJS += ../src/wps/wps_attr_parse.o
792OBJS += ../src/wps/wps_attr_build.o
793OBJS += ../src/wps/wps_attr_process.o
794OBJS += ../src/wps/wps_dev_attr.o
795OBJS += ../src/wps/wps_enrollee.o
796OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700797CONFIG_IEEE8021X_EAPOL=y
798NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700799NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700800NEED_AES_CBC=y
801NEED_MODEXP=y
802
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700803ifdef CONFIG_WPS_NFC
804CFLAGS += -DCONFIG_WPS_NFC
805OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700806NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700807endif
808
809ifdef NEED_WPS_OOB
810CFLAGS += -DCONFIG_WPS_OOB
811endif
812
813ifdef CONFIG_WPS_ER
814CONFIG_WPS_UPNP=y
815CFLAGS += -DCONFIG_WPS_ER
816OBJS += ../src/wps/wps_er.o
817OBJS += ../src/wps/wps_er_ssdp.o
818endif
819
820ifdef CONFIG_WPS_UPNP
821CFLAGS += -DCONFIG_WPS_UPNP
822OBJS += ../src/wps/wps_upnp.o
823OBJS += ../src/wps/wps_upnp_ssdp.o
824OBJS += ../src/wps/wps_upnp_web.o
825OBJS += ../src/wps/wps_upnp_event.o
826OBJS += ../src/wps/wps_upnp_ap.o
827OBJS += ../src/wps/upnp_xml.o
828OBJS += ../src/wps/httpread.o
829OBJS += ../src/wps/http_client.o
830OBJS += ../src/wps/http_server.o
831endif
832
833ifdef CONFIG_WPS_STRICT
834CFLAGS += -DCONFIG_WPS_STRICT
835OBJS += ../src/wps/wps_validate.o
836endif
837
838ifdef CONFIG_WPS_TESTING
839CFLAGS += -DCONFIG_WPS_TESTING
840endif
841
842ifdef CONFIG_WPS_REG_DISABLE_OPEN
843CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
844endif
845
846endif
847
848ifdef CONFIG_EAP_IKEV2
849# EAP-IKEv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800850SRC_EAP_IKEV2 = ../src/eap_peer/eap_ikev2.c
851SRC_EAP_IKEV2 += ../src/eap_peer/ikev2.c
852SRC_EAP_IKEV2 += ../src/eap_common/eap_ikev2_common.c
853SRC_EAP_IKEV2 += ../src/eap_common/ikev2_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700854ifeq ($(CONFIG_EAP_IKEV2), dyn)
855CFLAGS += -DEAP_IKEV2_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800856EAPDYN += eap_ikev2.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700857else
858CFLAGS += -DEAP_IKEV2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800859OBJS += $(patsubst %.c, %.o, $(SRC_EAP_IKEV2))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700860endif
861CONFIG_IEEE8021X_EAPOL=y
862NEED_DH_GROUPS=y
863NEED_DH_GROUPS_ALL=y
864NEED_MODEXP=y
865NEED_CIPHER=y
866endif
867
868ifdef CONFIG_EAP_VENDOR_TEST
869ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
870CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800871EAPDYN += eap_vendor_test.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700872else
873CFLAGS += -DEAP_VENDOR_TEST
874OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700875endif
876CONFIG_IEEE8021X_EAPOL=y
877endif
878
879ifdef CONFIG_EAP_TNC
880# EAP-TNC
881CFLAGS += -DEAP_TNC
882OBJS += ../src/eap_peer/eap_tnc.o
883OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700884NEED_BASE64=y
885ifndef CONFIG_NATIVE_WINDOWS
886ifndef CONFIG_DRIVER_BSD
887LIBS += -ldl
888endif
889endif
890endif
891
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700892ifdef CONFIG_MACSEC
893CFLAGS += -DCONFIG_MACSEC
894CONFIG_IEEE8021X_EAPOL=y
895NEED_AES_ENCBLOCK=y
896NEED_AES_UNWRAP=y
897NEED_AES_WRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700898OBJS += wpas_kay.o
899OBJS += ../src/pae/ieee802_1x_cp.o
900OBJS += ../src/pae/ieee802_1x_kay.o
901OBJS += ../src/pae/ieee802_1x_key.o
902OBJS += ../src/pae/ieee802_1x_secy_ops.o
Hai Shalom81f62d82019-07-22 12:10:00 -0700903ifdef CONFIG_AP
904OBJS += ../src/ap/wpa_auth_kay.o
905endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700906endif
907
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700908ifdef CONFIG_IEEE8021X_EAPOL
909# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
910CFLAGS += -DIEEE8021X_EAPOL
911OBJS += ../src/eapol_supp/eapol_supp_sm.o
912OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
913NEED_EAP_COMMON=y
914ifdef CONFIG_DYNAMIC_EAP_METHODS
915CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
916LIBS += -ldl -rdynamic
917endif
918endif
919
920ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700921NEED_EAP_COMMON=y
922NEED_RSN_AUTHENTICATOR=y
923CFLAGS += -DCONFIG_AP
924OBJS += ap.o
925CFLAGS += -DCONFIG_NO_RADIUS
926CFLAGS += -DCONFIG_NO_ACCOUNTING
927CFLAGS += -DCONFIG_NO_VLAN
928OBJS += ../src/ap/hostapd.o
929OBJS += ../src/ap/wpa_auth_glue.o
930OBJS += ../src/ap/utils.o
931OBJS += ../src/ap/authsrv.o
932OBJS += ../src/ap/ap_config.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700933OBJS += ../src/ap/sta_info.o
934OBJS += ../src/ap/tkip_countermeasures.o
935OBJS += ../src/ap/ap_mlme.o
936OBJS += ../src/ap/ieee802_1x.o
937OBJS += ../src/eapol_auth/eapol_auth_sm.o
938OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800939OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700940OBJS += ../src/ap/drv_callbacks.o
941OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800942OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800943OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800944OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700945OBJS += ../src/ap/neighbor_db.o
946OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700947OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700948ifdef CONFIG_IEEE80211AC
949OBJS += ../src/ap/ieee802_11_vht.o
950endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800951ifdef CONFIG_IEEE80211AX
952OBJS += ../src/ap/ieee802_11_he.o
953endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700954ifdef CONFIG_IEEE80211BE
955OBJS += ../src/ap/ieee802_11_eht.o
956endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700957ifdef CONFIG_WNM_AP
958CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800959OBJS += ../src/ap/wnm_ap.o
960endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800961ifdef CONFIG_MBO
962OBJS += ../src/ap/mbo_ap.o
963endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800964ifdef CONFIG_FILS
965OBJS += ../src/ap/fils_hlp.o
966endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700967ifdef CONFIG_CTRL_IFACE
968OBJS += ../src/ap/ctrl_iface_ap.o
969endif
970
971CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
972OBJS += ../src/eap_server/eap_server.o
973OBJS += ../src/eap_server/eap_server_identity.o
974OBJS += ../src/eap_server/eap_server_methods.o
975
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700976ifdef CONFIG_IEEE80211AC
977CFLAGS += -DCONFIG_IEEE80211AC
978endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700979ifdef CONFIG_IEEE80211BE
980CONFIG_IEEE80211AX=y
981CFLAGS += -DCONFIG_IEEE80211BE
982endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800983ifdef CONFIG_IEEE80211AX
984CFLAGS += -DCONFIG_IEEE80211AX
985endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700986
987ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700988OBJS += ../src/ap/wmm.o
989OBJS += ../src/ap/ap_list.o
990OBJS += ../src/ap/ieee802_11.o
991OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700992OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700993CFLAGS += -DNEED_AP_MLME
994endif
995ifdef CONFIG_WPS
996CFLAGS += -DEAP_SERVER_WSC
997OBJS += ../src/ap/wps_hostapd.o
998OBJS += ../src/eap_server/eap_server_wsc.o
999endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001000ifdef CONFIG_DPP
1001OBJS += ../src/ap/dpp_hostapd.o
1002OBJS += ../src/ap/gas_query_ap.o
Hai Shalomc3565922019-10-28 11:58:20 -07001003NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001004endif
Dmitry Shmidt04949592012-07-19 12:16:46 -07001005ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -07001006NEED_AP_GAS_SERV=y
1007endif
1008ifdef NEED_AP_GAS_SERV
Dmitry Shmidt04949592012-07-19 12:16:46 -07001009OBJS += ../src/ap/gas_serv.o
1010endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001011ifdef CONFIG_HS20
1012OBJS += ../src/ap/hs20.o
1013endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001014endif
1015
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -08001016ifdef CONFIG_MBO
1017OBJS += mbo.o
1018CFLAGS += -DCONFIG_MBO
1019endif
1020
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001021ifdef NEED_RSN_AUTHENTICATOR
1022CFLAGS += -DCONFIG_NO_RADIUS
1023NEED_AES_WRAP=y
1024OBJS += ../src/ap/wpa_auth.o
1025OBJS += ../src/ap/wpa_auth_ie.o
1026OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001027endif
1028
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08001029ifdef CONFIG_ACS
1030CFLAGS += -DCONFIG_ACS
1031OBJS += ../src/ap/acs.o
1032LIBS += -lm
1033endif
1034
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001035ifdef CONFIG_PCSC
1036# PC/SC interface for smartcards (USIM, GSM SIM)
1037CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
1038OBJS += ../src/utils/pcsc_funcs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001039ifdef CONFIG_NATIVE_WINDOWS
1040#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
1041#dynamic symbol loading that is now used in pcsc_funcs.c
1042#LIBS += -lwinscard
1043else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001044ifdef CONFIG_OSX
1045LIBS += -framework PCSC
1046else
Hai Shaloma20dcd72022-02-04 13:43:00 -08001047LIBS += $(shell $(PKG_CONFIG) --libs libpcsclite)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001048endif
1049endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001050endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001051
1052ifdef CONFIG_SIM_SIMULATOR
1053CFLAGS += -DCONFIG_SIM_SIMULATOR
1054NEED_MILENAGE=y
1055endif
1056
1057ifdef CONFIG_USIM_SIMULATOR
1058CFLAGS += -DCONFIG_USIM_SIMULATOR
1059NEED_MILENAGE=y
1060endif
1061
1062ifdef NEED_MILENAGE
1063OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001064NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001065endif
1066
1067ifdef CONFIG_PKCS12
1068CFLAGS += -DPKCS12_FUNCS
1069endif
1070
1071ifdef CONFIG_SMARTCARD
1072CFLAGS += -DCONFIG_SMARTCARD
1073endif
1074
Hai Shalom81f62d82019-07-22 12:10:00 -07001075ifdef NEED_DRAGONFLY
1076OBJS += ../src/common/dragonfly.o
1077endif
1078
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001079ifdef MS_FUNCS
1080OBJS += ../src/crypto/ms_funcs.o
1081NEED_DES=y
1082NEED_MD4=y
1083endif
1084
1085ifdef CHAP
1086OBJS += ../src/eap_common/chap.o
1087endif
1088
1089ifdef TLS_FUNCS
1090NEED_DES=y
Hai Shalom81f62d82019-07-22 12:10:00 -07001091# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and
1092# EAP_TEAP)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001093OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001094ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001095NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001096NEED_SHA1=y
1097NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001098endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001099endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001100
1101ifndef CONFIG_TLS
1102CONFIG_TLS=openssl
1103endif
1104
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001105ifdef CONFIG_TLSV11
1106CFLAGS += -DCONFIG_TLSV11
1107endif
1108
1109ifdef CONFIG_TLSV12
1110CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001111endif
1112
Roshan Pius3a1667e2018-07-03 15:17:14 -07001113ifeq ($(CONFIG_TLS), wolfssl)
1114ifdef TLS_FUNCS
Hai Shalom4fbc08f2020-05-18 12:37:00 -07001115CFLAGS += -DWOLFSSL_DER_LOAD
Roshan Pius3a1667e2018-07-03 15:17:14 -07001116OBJS += ../src/crypto/tls_wolfssl.o
1117endif
1118OBJS += ../src/crypto/crypto_wolfssl.o
1119OBJS_p += ../src/crypto/crypto_wolfssl.o
1120ifdef NEED_FIPS186_2_PRF
1121OBJS += ../src/crypto/fips_prf_wolfssl.o
1122endif
1123NEED_TLS_PRF_SHA256=y
1124LIBS += -lwolfssl -lm
1125LIBS_p += -lwolfssl -lm
1126endif
1127
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001128ifeq ($(CONFIG_TLS), openssl)
Sunil Ravia04bd252022-05-02 22:54:18 -07001129CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001130ifdef TLS_FUNCS
1131CFLAGS += -DEAP_TLS_OPENSSL
1132OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001133OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001134LIBS += -lssl
1135endif
1136OBJS += ../src/crypto/crypto_openssl.o
1137OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001138OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001139ifdef NEED_FIPS186_2_PRF
1140OBJS += ../src/crypto/fips_prf_openssl.o
1141endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001142NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001143LIBS += -lcrypto
1144LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001145ifdef CONFIG_TLS_ADD_DL
1146LIBS += -ldl
1147LIBS_p += -ldl
1148endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001149ifndef CONFIG_TLS_DEFAULT_CIPHERS
1150CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1151endif
1152CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001153endif
1154
1155ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001156ifndef CONFIG_CRYPTO
1157# default to libgcrypt
1158CONFIG_CRYPTO=gnutls
1159endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001160ifdef TLS_FUNCS
1161OBJS += ../src/crypto/tls_gnutls.o
1162LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001163endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001164OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1165OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1166OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001167ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001168OBJS += ../src/crypto/fips_prf_internal.o
1169SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001170endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001171ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001172LIBS += -lgcrypt
1173LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001174CONFIG_INTERNAL_RC4=y
1175CONFIG_INTERNAL_DH_GROUP5=y
1176endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001177ifeq ($(CONFIG_CRYPTO), nettle)
1178LIBS += -lnettle -lgmp
1179LIBS_p += -lnettle -lgmp
1180CONFIG_INTERNAL_RC4=y
1181CONFIG_INTERNAL_DH_GROUP5=y
1182endif
1183endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001184
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001185ifeq ($(CONFIG_TLS), internal)
1186ifndef CONFIG_CRYPTO
1187CONFIG_CRYPTO=internal
1188endif
1189ifdef TLS_FUNCS
1190OBJS += ../src/crypto/crypto_internal-rsa.o
1191OBJS += ../src/crypto/tls_internal.o
1192OBJS += ../src/tls/tlsv1_common.o
1193OBJS += ../src/tls/tlsv1_record.o
1194OBJS += ../src/tls/tlsv1_cred.o
1195OBJS += ../src/tls/tlsv1_client.o
1196OBJS += ../src/tls/tlsv1_client_write.o
1197OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001198OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001199OBJS += ../src/tls/rsa.o
1200OBJS += ../src/tls/x509v3.o
1201OBJS += ../src/tls/pkcs1.o
1202OBJS += ../src/tls/pkcs5.o
1203OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001204NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001205NEED_BASE64=y
1206NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001207ifdef CONFIG_TLSV12
1208NEED_TLS_PRF_SHA256=y
1209endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001210NEED_MODEXP=y
1211NEED_CIPHER=y
1212CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1213endif
1214ifdef NEED_CIPHER
1215NEED_DES=y
1216OBJS += ../src/crypto/crypto_internal-cipher.o
1217endif
1218ifdef NEED_MODEXP
1219OBJS += ../src/crypto/crypto_internal-modexp.o
1220OBJS += ../src/tls/bignum.o
1221endif
1222ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1223OBJS += ../src/crypto/crypto_libtomcrypt.o
1224OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1225LIBS += -ltomcrypt -ltfm
1226LIBS_p += -ltomcrypt -ltfm
1227CONFIG_INTERNAL_SHA256=y
1228CONFIG_INTERNAL_RC4=y
1229CONFIG_INTERNAL_DH_GROUP5=y
1230endif
1231ifeq ($(CONFIG_CRYPTO), internal)
1232OBJS += ../src/crypto/crypto_internal.o
1233OBJS_p += ../src/crypto/crypto_internal.o
1234NEED_AES_ENC=y
1235CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1236ifdef CONFIG_INTERNAL_LIBTOMMATH
1237CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1238ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1239CFLAGS += -DLTM_FAST
1240endif
1241else
1242LIBS += -ltommath
1243LIBS_p += -ltommath
1244endif
1245CONFIG_INTERNAL_AES=y
1246CONFIG_INTERNAL_DES=y
1247CONFIG_INTERNAL_SHA1=y
1248CONFIG_INTERNAL_MD4=y
1249CONFIG_INTERNAL_MD5=y
1250CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001251CONFIG_INTERNAL_SHA384=y
1252CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001253CONFIG_INTERNAL_RC4=y
1254CONFIG_INTERNAL_DH_GROUP5=y
1255endif
1256ifeq ($(CONFIG_CRYPTO), cryptoapi)
1257OBJS += ../src/crypto/crypto_cryptoapi.o
1258OBJS_p += ../src/crypto/crypto_cryptoapi.o
1259CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1260CONFIG_INTERNAL_SHA256=y
1261CONFIG_INTERNAL_RC4=y
1262endif
1263endif
1264
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001265ifeq ($(CONFIG_TLS), linux)
1266OBJS += ../src/crypto/crypto_linux.o
1267OBJS_p += ../src/crypto/crypto_linux.o
1268ifdef TLS_FUNCS
1269OBJS += ../src/crypto/crypto_internal-rsa.o
1270OBJS += ../src/crypto/tls_internal.o
1271OBJS += ../src/tls/tlsv1_common.o
1272OBJS += ../src/tls/tlsv1_record.o
1273OBJS += ../src/tls/tlsv1_cred.o
1274OBJS += ../src/tls/tlsv1_client.o
1275OBJS += ../src/tls/tlsv1_client_write.o
1276OBJS += ../src/tls/tlsv1_client_read.o
1277OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001278OBJS += ../src/tls/rsa.o
1279OBJS += ../src/tls/x509v3.o
1280OBJS += ../src/tls/pkcs1.o
1281OBJS += ../src/tls/pkcs5.o
1282OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001283NEED_ASN1=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001284NEED_BASE64=y
1285NEED_TLS_PRF=y
1286ifdef CONFIG_TLSV12
1287NEED_TLS_PRF_SHA256=y
1288endif
1289NEED_MODEXP=y
1290NEED_CIPHER=y
1291CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1292endif
1293ifdef NEED_MODEXP
1294OBJS += ../src/crypto/crypto_internal-modexp.o
1295OBJS += ../src/tls/bignum.o
1296CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1297CFLAGS += -DLTM_FAST
1298endif
1299CONFIG_INTERNAL_DH_GROUP5=y
1300ifdef NEED_FIPS186_2_PRF
1301OBJS += ../src/crypto/fips_prf_internal.o
1302OBJS += ../src/crypto/sha1-internal.o
1303endif
1304endif
1305
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001306ifeq ($(CONFIG_TLS), none)
1307ifdef TLS_FUNCS
1308OBJS += ../src/crypto/tls_none.o
1309CFLAGS += -DEAP_TLS_NONE
1310CONFIG_INTERNAL_AES=y
1311CONFIG_INTERNAL_SHA1=y
1312CONFIG_INTERNAL_MD5=y
1313endif
1314OBJS += ../src/crypto/crypto_none.o
1315OBJS_p += ../src/crypto/crypto_none.o
1316CONFIG_INTERNAL_SHA256=y
1317CONFIG_INTERNAL_RC4=y
1318endif
1319
1320ifdef TLS_FUNCS
1321ifdef CONFIG_SMARTCARD
1322ifndef CONFIG_NATIVE_WINDOWS
1323ifneq ($(CONFIG_L2_PACKET), freebsd)
1324LIBS += -ldl
1325endif
1326endif
1327endif
1328endif
1329
1330ifndef TLS_FUNCS
1331OBJS += ../src/crypto/tls_none.o
1332ifeq ($(CONFIG_TLS), internal)
1333CONFIG_INTERNAL_AES=y
1334CONFIG_INTERNAL_SHA1=y
1335CONFIG_INTERNAL_MD5=y
1336CONFIG_INTERNAL_RC4=y
1337endif
1338endif
1339
1340AESOBJS = # none so far (see below)
1341ifdef CONFIG_INTERNAL_AES
1342AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1343endif
1344
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001345ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001346ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001347NEED_INTERNAL_AES_WRAP=y
1348endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001349endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001350ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1351# Seems to be needed at least with BoringSSL
1352NEED_INTERNAL_AES_WRAP=y
1353CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1354endif
1355ifdef CONFIG_FIPS
1356# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1357# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1358NEED_INTERNAL_AES_WRAP=y
1359endif
1360
1361ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001362ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001363AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001364endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001365endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001366ifdef NEED_AES_EAX
1367AESOBJS += ../src/crypto/aes-eax.o
1368NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001369endif
1370ifdef NEED_AES_SIV
1371AESOBJS += ../src/crypto/aes-siv.o
1372NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001373endif
1374ifdef NEED_AES_CTR
1375AESOBJS += ../src/crypto/aes-ctr.o
1376endif
1377ifdef NEED_AES_ENCBLOCK
1378AESOBJS += ../src/crypto/aes-encblock.o
1379endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001380NEED_AES_ENC=y
Sunil Ravia04bd252022-05-02 22:54:18 -07001381ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001382ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001383ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001384AESOBJS += ../src/crypto/aes-omac1.o
1385endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001386endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001387endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001388ifdef NEED_AES_WRAP
1389NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001390ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001391AESOBJS += ../src/crypto/aes-wrap.o
1392endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001393endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001394ifdef NEED_AES_CBC
1395NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001396ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001397ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001398ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001399AESOBJS += ../src/crypto/aes-cbc.o
1400endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001401endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001402endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001403endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001404ifdef NEED_AES_ENC
1405ifdef CONFIG_INTERNAL_AES
1406AESOBJS += ../src/crypto/aes-internal-enc.o
1407endif
1408endif
1409ifdef NEED_AES
1410OBJS += $(AESOBJS)
1411endif
1412
1413ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001414ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001415ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001416ifneq ($(CONFIG_TLS), gnutls)
1417ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001418SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001419endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001420endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001421endif
1422endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001423SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001424ifdef CONFIG_INTERNAL_SHA1
1425SHA1OBJS += ../src/crypto/sha1-internal.o
1426ifdef NEED_FIPS186_2_PRF
1427SHA1OBJS += ../src/crypto/fips_prf_internal.o
1428endif
1429endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001430ifdef CONFIG_NO_WPA_PASSPHRASE
1431CFLAGS += -DCONFIG_NO_PBKDF2
1432else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001433ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001434ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001435SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1436endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001437endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001438endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001439ifdef NEED_T_PRF
1440SHA1OBJS += ../src/crypto/sha1-tprf.o
1441endif
1442ifdef NEED_TLS_PRF
1443SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1444endif
1445endif
1446
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001447ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001448ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001449ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001450ifneq ($(CONFIG_TLS), gnutls)
1451ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001452MD5OBJS += ../src/crypto/md5.o
1453endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001454endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001455endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001456endif
1457endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001458ifdef NEED_MD5
1459ifdef CONFIG_INTERNAL_MD5
1460MD5OBJS += ../src/crypto/md5-internal.o
1461endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001462OBJS += $(MD5OBJS)
1463OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001464OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001465endif
1466
1467ifdef NEED_MD4
1468ifdef CONFIG_INTERNAL_MD4
1469OBJS += ../src/crypto/md4-internal.o
1470endif
1471endif
1472
1473DESOBJS = # none needed when not internal
1474ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001475ifndef CONFIG_FIPS
1476CFLAGS += -DCONFIG_DES
1477endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001478ifdef CONFIG_INTERNAL_DES
1479DESOBJS += ../src/crypto/des-internal.o
1480endif
1481endif
1482
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001483ifdef CONFIG_NO_RC4
1484CFLAGS += -DCONFIG_NO_RC4
1485endif
1486
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001487ifdef NEED_RC4
1488ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001489ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001490OBJS += ../src/crypto/rc4.o
1491endif
1492endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001493endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001494
Sunil Ravia04bd252022-05-02 22:54:18 -07001495ifdef CONFIG_SAE
1496ifdef NEED_SHA384
1497# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled.
1498NEED_HMAC_SHA384_KDF=y
1499endif
1500ifdef NEED_SHA512
1501# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled.
1502NEED_HMAC_SHA512_KDF=y
1503endif
1504endif
1505
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001506SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001507CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001508ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001509ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001510ifneq ($(CONFIG_TLS), gnutls)
1511ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001512SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001513endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001514endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001515endif
1516endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001517SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001518ifdef CONFIG_INTERNAL_SHA256
1519SHA256OBJS += ../src/crypto/sha256-internal.o
1520endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001521ifdef CONFIG_INTERNAL_SHA384
1522CFLAGS += -DCONFIG_INTERNAL_SHA384
1523SHA256OBJS += ../src/crypto/sha384-internal.o
1524endif
1525ifdef CONFIG_INTERNAL_SHA512
1526CFLAGS += -DCONFIG_INTERNAL_SHA512
1527SHA256OBJS += ../src/crypto/sha512-internal.o
1528endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001529ifdef NEED_TLS_PRF_SHA256
1530SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1531endif
Hai Shalomc3565922019-10-28 11:58:20 -07001532ifdef NEED_TLS_PRF_SHA384
1533SHA256OBJS += ../src/crypto/sha384-tlsprf.o
1534endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001535ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001536CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001537OBJS += ../src/crypto/sha256-kdf.o
1538endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001539ifdef NEED_HMAC_SHA384_KDF
1540CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1541OBJS += ../src/crypto/sha384-kdf.o
1542endif
1543ifdef NEED_HMAC_SHA512_KDF
1544CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1545OBJS += ../src/crypto/sha512-kdf.o
1546endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001547OBJS += $(SHA256OBJS)
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001548ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001549ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001550ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001551ifneq ($(CONFIG_TLS), gnutls)
1552ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001553OBJS += ../src/crypto/sha384.o
1554endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001555endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001556endif
1557endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001558CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001559OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001560endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001561ifdef NEED_SHA512
1562ifneq ($(CONFIG_TLS), openssl)
1563ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001564ifneq ($(CONFIG_TLS), gnutls)
1565ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001566OBJS += ../src/crypto/sha512.o
1567endif
1568endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001569endif
1570endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001571CFLAGS += -DCONFIG_SHA512
1572OBJS += ../src/crypto/sha512-prf.o
1573endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001574
Hai Shalomfdcde762020-04-02 11:19:20 -07001575ifdef NEED_ASN1
1576OBJS += ../src/tls/asn1.o
1577endif
1578
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001579ifdef NEED_DH_GROUPS
1580OBJS += ../src/crypto/dh_groups.o
1581endif
1582ifdef NEED_DH_GROUPS_ALL
1583CFLAGS += -DALL_DH_GROUPS
1584endif
1585ifdef CONFIG_INTERNAL_DH_GROUP5
1586ifdef NEED_DH_GROUPS
1587OBJS += ../src/crypto/dh_group5.o
1588endif
1589endif
1590
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001591ifdef NEED_ECC
1592CFLAGS += -DCONFIG_ECC
1593endif
1594
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001595ifdef CONFIG_NO_RANDOM_POOL
1596CFLAGS += -DCONFIG_NO_RANDOM_POOL
1597else
Hai Shalom74f70d42019-02-11 14:42:39 -08001598ifdef CONFIG_GETRANDOM
1599CFLAGS += -DCONFIG_GETRANDOM
1600endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001601OBJS += ../src/crypto/random.o
1602endif
1603
1604ifdef CONFIG_CTRL_IFACE
1605ifeq ($(CONFIG_CTRL_IFACE), y)
1606ifdef CONFIG_NATIVE_WINDOWS
1607CONFIG_CTRL_IFACE=named_pipe
1608else
1609CONFIG_CTRL_IFACE=unix
1610endif
1611endif
1612CFLAGS += -DCONFIG_CTRL_IFACE
1613ifeq ($(CONFIG_CTRL_IFACE), unix)
1614CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001615OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001616endif
1617ifeq ($(CONFIG_CTRL_IFACE), udp)
1618CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1619endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001620ifeq ($(CONFIG_CTRL_IFACE), udp6)
1621CONFIG_CTRL_IFACE=udp
1622CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1623CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1624endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001625ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1626CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1627endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001628ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1629CONFIG_CTRL_IFACE=udp
1630CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1631CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1632endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001633ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1634CONFIG_CTRL_IFACE=udp
1635CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1636CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1637CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1638endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001639OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1640endif
1641
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001642ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001643CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1644OBJS += dbus/dbus_dict_helpers.o
1645OBJS += dbus/dbus_new_helpers.o
1646OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1647OBJS += dbus/dbus_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001648ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001649OBJS += dbus/dbus_new_handlers_wps.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001650endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001651ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001652OBJS += dbus/dbus_new_handlers_p2p.o
Jouni Malinen75ecf522011-06-27 15:19:46 -07001653endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001654ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001655DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001656endif
1657ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001658DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001659endif
1660ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001661OBJS += dbus/dbus_new_introspect.o
1662CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001663endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001664CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001665LIBS += $(DBUS_LIBS)
Hai Shalom021b0b52019-04-10 11:17:58 -07001666endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001667
1668ifdef CONFIG_READLINE
1669OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001670LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001671else
1672ifdef CONFIG_WPA_CLI_EDIT
1673OBJS_c += ../src/utils/edit.o
1674else
1675OBJS_c += ../src/utils/edit_simple.o
1676endif
1677endif
1678
1679ifdef CONFIG_NATIVE_WINDOWS
1680CFLAGS += -DCONFIG_NATIVE_WINDOWS
1681LIBS += -lws2_32 -lgdi32 -lcrypt32
1682LIBS_c += -lws2_32
1683LIBS_p += -lws2_32 -lgdi32
1684ifeq ($(CONFIG_CRYPTO), cryptoapi)
1685LIBS_p += -lcrypt32
1686endif
1687endif
1688
1689ifdef CONFIG_NO_STDOUT_DEBUG
1690CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1691ifndef CONFIG_CTRL_IFACE
1692CFLAGS += -DCONFIG_NO_WPA_MSG
1693endif
1694endif
1695
1696ifdef CONFIG_IPV6
1697# for eapol_test only
1698CFLAGS += -DCONFIG_IPV6
1699endif
1700
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001701ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1702CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1703endif
1704
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001705ifdef NEED_BASE64
1706OBJS += ../src/utils/base64.o
1707endif
1708
1709ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001710OBJS += sme.o
1711CFLAGS += -DCONFIG_SME
1712endif
1713
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001714OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001715OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001716
1717ifdef NEED_EAP_COMMON
1718OBJS += ../src/eap_common/eap_common.o
1719endif
1720
1721ifndef CONFIG_MAIN
1722CONFIG_MAIN=main
1723endif
1724
1725ifdef CONFIG_DEBUG_SYSLOG
1726CFLAGS += -DCONFIG_DEBUG_SYSLOG
1727ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1728CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1729endif
1730endif
1731
Dmitry Shmidt04949592012-07-19 12:16:46 -07001732ifdef CONFIG_DEBUG_LINUX_TRACING
1733CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1734endif
1735
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001736ifdef CONFIG_DEBUG_FILE
1737CFLAGS += -DCONFIG_DEBUG_FILE
1738endif
1739
1740ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1741CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1742endif
1743
1744ifdef CONFIG_FIPS
1745CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001746ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001747ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001748$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1749endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001750endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001751endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001752
1753OBJS += $(SHA1OBJS) $(DESOBJS)
1754
1755OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001756OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001757OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001758
1759ifdef CONFIG_BGSCAN_SIMPLE
1760CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1761OBJS += bgscan_simple.o
1762NEED_BGSCAN=y
1763endif
1764
1765ifdef CONFIG_BGSCAN_LEARN
1766CFLAGS += -DCONFIG_BGSCAN_LEARN
1767OBJS += bgscan_learn.o
1768NEED_BGSCAN=y
1769endif
1770
1771ifdef NEED_BGSCAN
1772CFLAGS += -DCONFIG_BGSCAN
1773OBJS += bgscan.o
1774endif
1775
Dmitry Shmidt04949592012-07-19 12:16:46 -07001776ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1777CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1778OBJS += autoscan_exponential.o
1779NEED_AUTOSCAN=y
1780endif
1781
1782ifdef CONFIG_AUTOSCAN_PERIODIC
1783CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1784OBJS += autoscan_periodic.o
1785NEED_AUTOSCAN=y
1786endif
1787
1788ifdef NEED_AUTOSCAN
1789CFLAGS += -DCONFIG_AUTOSCAN
1790OBJS += autoscan.o
1791endif
1792
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001793ifdef CONFIG_EXT_PASSWORD_TEST
1794OBJS += ../src/utils/ext_password_test.o
1795CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1796NEED_EXT_PASSWORD=y
1797endif
1798
Hai Shalom60840252021-02-19 19:02:11 -08001799ifdef CONFIG_EXT_PASSWORD_FILE
1800OBJS += ../src/utils/ext_password_file.o
1801CFLAGS += -DCONFIG_EXT_PASSWORD_FILE
1802NEED_EXT_PASSWORD=y
1803endif
1804
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001805ifdef NEED_EXT_PASSWORD
1806OBJS += ../src/utils/ext_password.o
1807CFLAGS += -DCONFIG_EXT_PASSWORD
1808endif
1809
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001810ifdef NEED_GAS_SERVER
1811OBJS += ../src/common/gas_server.o
1812CFLAGS += -DCONFIG_GAS_SERVER
1813NEED_GAS=y
1814endif
1815
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001816ifdef NEED_GAS
1817OBJS += ../src/common/gas.o
1818OBJS += gas_query.o
1819CFLAGS += -DCONFIG_GAS
1820NEED_OFFCHANNEL=y
1821endif
1822
1823ifdef NEED_OFFCHANNEL
1824OBJS += offchannel.o
1825CFLAGS += -DCONFIG_OFFCHANNEL
1826endif
1827
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001828ifdef NEED_JSON
1829OBJS += ../src/utils/json.o
1830CFLAGS += -DCONFIG_JSON
1831endif
1832
Dmitry Shmidt71757432014-06-02 13:50:35 -07001833ifdef CONFIG_MODULE_TESTS
1834CFLAGS += -DCONFIG_MODULE_TESTS
1835OBJS += wpas_module_tests.o
1836OBJS += ../src/utils/utils_module_tests.o
1837OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001838OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001839ifdef CONFIG_WPS
1840OBJS += ../src/wps/wps_module_tests.o
1841endif
1842endif
1843
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001844OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001845OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001846
Hai Shalom60840252021-02-19 19:02:11 -08001847OBJS += wpa_supplicant.o events.o bssid_ignore.o wpas_glue.o scan.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001848OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1849OBJS_t += ../src/radius/radius_client.o
1850OBJS_t += ../src/radius/radius.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001851OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001852
1853OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1854OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1855
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001856OBJS += $(CONFIG_MAIN).o
1857
1858ifdef CONFIG_PRIVSEP
1859OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1860OBJS_priv += $(OBJS_l2)
1861OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1862OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1863OBJS_priv += ../src/utils/common.o
1864OBJS_priv += ../src/utils/wpa_debug.o
1865OBJS_priv += ../src/utils/wpabuf.o
1866OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001867ifdef CONFIG_DRIVER_NL80211
1868OBJS_priv += ../src/common/ieee802_11_common.o
1869endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001870OBJS += ../src/l2_packet/l2_packet_privsep.o
1871OBJS += ../src/drivers/driver_privsep.o
1872EXTRA_progs += wpa_priv
1873else
1874OBJS += $(OBJS_d) ../src/drivers/drivers.o
1875OBJS += $(OBJS_l2)
1876endif
1877
1878ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1879CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1880OBJS += ../src/drivers/ndis_events.o
1881EXTRALIBS += -loleaut32 -lole32 -luuid
1882ifdef PLATFORMSDKLIB
1883EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1884else
1885EXTRALIBS += WbemUuid.Lib
1886endif
1887endif
1888
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001889ifdef CONFIG_FST
1890CFLAGS += -DCONFIG_FST
1891ifdef CONFIG_FST_TEST
1892CFLAGS += -DCONFIG_FST_TEST
1893endif
1894FST_OBJS += ../src/fst/fst.o
1895FST_OBJS += ../src/fst/fst_session.o
1896FST_OBJS += ../src/fst/fst_iface.o
1897FST_OBJS += ../src/fst/fst_group.o
1898FST_OBJS += ../src/fst/fst_ctrl_aux.o
1899ifdef CONFIG_CTRL_IFACE
1900FST_OBJS += ../src/fst/fst_ctrl_iface.o
1901endif
1902OBJS += $(FST_OBJS)
1903OBJS_t += $(FST_OBJS)
1904OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001905OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001906endif
1907
Hai Shalomfdcde762020-04-02 11:19:20 -07001908ifdef CONFIG_WEP
1909CFLAGS += -DCONFIG_WEP
1910endif
1911
Hai Shalomb755a2a2020-04-23 21:49:02 -07001912ifdef CONFIG_NO_TKIP
1913CFLAGS += -DCONFIG_NO_TKIP
1914endif
1915
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001916dynamic_eap_methods: $(EAPDYN)
1917
Hai Shalom899fcc72020-10-19 14:38:18 -07001918_OBJS_VAR := OBJS_priv
1919include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001920wpa_priv: $(BCHECK) $(OBJS_priv)
1921 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1922 @$(E) " LD " $@
1923
Hai Shalom899fcc72020-10-19 14:38:18 -07001924_OBJS_VAR := OBJS
1925include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001926wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001927 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1928 @$(E) " LD " $@
1929
Hai Shalom899fcc72020-10-19 14:38:18 -07001930_OBJS_VAR := OBJS_t
1931include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001932eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001933 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1934 @$(E) " LD " $@
1935
Hai Shalom899fcc72020-10-19 14:38:18 -07001936_OBJS_VAR := OBJS_t2
1937include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001938preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001939 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1940 @$(E) " LD " $@
1941
Hai Shalom899fcc72020-10-19 14:38:18 -07001942_OBJS_VAR := OBJS_p
1943include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001944wpa_passphrase: $(OBJS_p)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001945 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001946 @$(E) " LD " $@
1947
Hai Shalom899fcc72020-10-19 14:38:18 -07001948_OBJS_VAR := OBJS_c
1949include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001950wpa_cli: $(OBJS_c)
1951 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1952 @$(E) " LD " $@
1953
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001954LIBCTRL += ../src/common/wpa_ctrl.o
1955LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001956LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001957LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001958LIBCTRLSO += ../src/common/wpa_ctrl.c
1959LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001960LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001961LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001962
Hai Shalom899fcc72020-10-19 14:38:18 -07001963_OBJS_VAR := LIBCTRL
1964include ../src/objs.mk
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001965libwpa_client.a: $(LIBCTRL)
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001966 $(Q)rm -f $@
1967 $(Q)$(AR) crs $@ $?
1968 @$(E) " AR " $@
1969
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001970libwpa_client.so: $(LIBCTRLSO)
1971 @$(E) " CC $@ ($^)"
1972 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1973
Hai Shalom899fcc72020-10-19 14:38:18 -07001974OBJS_wpatest := libwpa_test.o
1975_OBJS_VAR := OBJS_wpatest
1976include ../src/objs.mk
1977libwpa_test1: $(OBJS_wpatest) libwpa_client.a
1978 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001979 @$(E) " LD " $@
1980
Hai Shalom899fcc72020-10-19 14:38:18 -07001981libwpa_test2: $(OBJS_wpatest) libwpa_client.so
1982 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001983 @$(E) " LD " $@
1984
Hai Shalom899fcc72020-10-19 14:38:18 -07001985_OBJS_VAR := OBJS_nfc
1986include ../src/objs.mk
Dmitry Shmidt04949592012-07-19 12:16:46 -07001987nfc_pw_token: $(OBJS_nfc)
1988 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1989 @$(E) " LD " $@
1990
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001991win_if_list: win_if_list.c
1992 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1993 @$(E) " LD " $@
1994
Hai Shaloma20dcd72022-02-04 13:43:00 -08001995eap_psk.so: $(SRC_EAP_PSK)
1996 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001997 -Deap_peer_psk_register=eap_peer_method_dynamic_init
Hai Shaloma20dcd72022-02-04 13:43:00 -08001998 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001999
Hai Shaloma20dcd72022-02-04 13:43:00 -08002000eap_pax.so: $(SRC_EAP_PAX)
2001 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2002 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2003 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002004
Hai Shaloma20dcd72022-02-04 13:43:00 -08002005eap_peap.so: $(SRC_EAP_PEAP)
2006 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2007 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2008 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002009
Hai Shaloma20dcd72022-02-04 13:43:00 -08002010eap_sake.so: $(SRC_EAP_SAKE)
2011 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2012 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2013 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002014
Hai Shaloma20dcd72022-02-04 13:43:00 -08002015eap_ikev2.so: $(SRC_EAP_IKEV2)
2016 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2017 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2018 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002019
Hai Shaloma20dcd72022-02-04 13:43:00 -08002020eap_eke.so: $(SRC_EAP_EKE)
2021 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2022 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2023 @$(E) " CC/LD " $@
Dmitry Shmidt34af3062013-07-11 10:46:32 -07002024
Hai Shaloma20dcd72022-02-04 13:43:00 -08002025eap_mschapv2.so: $(SRC_EAP_MSCHAPV2)
2026 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2027 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2028 @$(E) " CC/LD " $@
2029
2030eap_fast.so: $(SRC_EAP_FAST)
2031 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2032 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2033 @$(E) " CC/LD " $@
2034
2035eap_teap.so: $(SRC_EAP_TEAP)
2036 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2037 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2038 @$(E) " CC/LD " $@
2039
2040eap_gpsk.so: $(SRC_EAP_GPSK)
2041 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2042 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2043 @$(E) " CC/LD " $@
2044
2045%.so: ../src/eap_peer/%.c
2046 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002047 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
Hai Shaloma20dcd72022-02-04 13:43:00 -08002048 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002049
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002050%.service: %.service.in
Hai Shalom021b0b52019-04-10 11:17:58 -07002051 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08002052 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002053
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08002054%@.service: %.service.arg.in
Hai Shalom021b0b52019-04-10 11:17:58 -07002055 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08002056 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08002057
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002058wpa_supplicant.exe: wpa_supplicant
2059 mv -f $< $@
2060wpa_cli.exe: wpa_cli
2061 mv -f $< $@
2062wpa_passphrase.exe: wpa_passphrase
2063 mv -f $< $@
2064win_if_list.exe: win_if_list
2065 mv -f $< $@
2066eapol_test.exe: eapol_test
2067 mv -f $< $@
2068
2069WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
2070
2071windows-bin: $(WINALL)
2072 $(STRIP) $(WINALL)
2073
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002074wpa_gui:
2075 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002076
2077wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07002078 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002079
2080wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
2081 lrelease wpa_gui-qt4/wpa_gui.pro
2082
2083wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
2084 $(MAKE) -C wpa_gui-qt4
2085
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07002086FIPSDIR=/usr/local/ssl/fips-2.0
2087FIPSLD=$(FIPSDIR)/bin/fipsld
2088fips:
2089 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
2090
Hai Shalom899fcc72020-10-19 14:38:18 -07002091.PHONY: lcov-html
2092lcov-html: $(call BUILDOBJ,wpa_supplicant.gcda)
2093 lcov -c -d $(BUILDDIR) > lcov.info
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002094 genhtml lcov.info --output-directory lcov-html
2095
Hai Shalom899fcc72020-10-19 14:38:18 -07002096clean: common-clean
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002097 $(MAKE) -C ../src clean
2098 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08002099 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
Hai Shalom899fcc72020-10-19 14:38:18 -07002100 rm -f eap_*.so $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002101 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07002102 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002103 rm -f lcov.info
2104 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07002105 rm -f libwpa_client.a
2106 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08002107 rm -f libwpa_test1 libwpa_test2
Sunil Ravia04bd252022-05-02 22:54:18 -07002108 rm -f wpa_passphrase