blob: 08522de9039f24daad11f379ab5750a98bc9a913 [file] [log] [blame]
Hai Shalom899fcc72020-10-19 14:38:18 -07001BINALL=wpa_supplicant wpa_cli
2
3ifndef CONFIG_NO_WPA_PASSPHRASE
4BINALL += wpa_passphrase
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07005endif
6
Hai Shalom899fcc72020-10-19 14:38:18 -07007ALL = $(BINALL)
8ALL += systemd/wpa_supplicant.service
9ALL += systemd/wpa_supplicant@.service
10ALL += systemd/wpa_supplicant-nl80211@.service
11ALL += systemd/wpa_supplicant-wired@.service
12ALL += dbus/fi.w1.wpa_supplicant1.service
13ifdef CONFIG_BUILD_WPA_CLIENT_SO
14ALL += libwpa_client.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070015endif
16
Hai Shalom899fcc72020-10-19 14:38:18 -070017EXTRA_TARGETS=dynamic_eap_methods
18
19CONFIG_FILE=.config
20include ../src/build.rules
21
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -080022ifdef LIBS
23# If LIBS is set with some global build system defaults, clone those for
24# LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well.
25ifndef LIBS_c
26LIBS_c := $(LIBS)
27endif
28ifndef LIBS_p
29LIBS_p := $(LIBS)
30endif
31endif
32
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070033export LIBDIR ?= /usr/local/lib/
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070034export INCDIR ?= /usr/local/include/
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070035export BINDIR ?= /usr/local/sbin/
Dmitry Shmidtc55524a2011-07-07 11:18:38 -070036PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070037
Dmitry Shmidt216983b2015-02-06 10:50:36 -080038CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080039CFLAGS += -I$(abspath ../src)
40CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070041
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080042ifndef CONFIG_NO_GITVER
43# Add VERSION_STR postfix for builds from a git repository
44ifeq ($(wildcard ../.git),../.git)
45GITVER := $(shell git describe --dirty=+)
46ifneq ($(GITVER),)
47CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
48endif
49endif
50endif
51
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080052ifdef CONFIG_TESTING_OPTIONS
53CFLAGS += -DCONFIG_TESTING_OPTIONS
54CONFIG_WPS_TESTING=y
55CONFIG_TDLS_TESTING=y
56endif
57
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070058mkconfig:
59 @if [ -f .config ]; then \
60 echo '.config exists - did not replace it'; \
61 exit 1; \
62 fi
63 echo CONFIG_DRIVER_HOSTAP=y >> .config
64 echo CONFIG_DRIVER_WEXT=y >> .config
65
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080066$(DESTDIR)$(BINDIR)/%: %
67 install -D $(<) $(@)
68
69install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070070 $(MAKE) -C ../src install
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070071ifdef CONFIG_BUILD_WPA_CLIENT_SO
72 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
73 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
74endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070075
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070076ifdef CONFIG_FIPS
77CONFIG_NO_RANDOM_POOL=
78CONFIG_OPENSSL_CMAC=y
79endif
80
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070081OBJS = config.o
82OBJS += notify.o
83OBJS += bss.o
84OBJS += eap_register.o
85OBJS += ../src/utils/common.o
86OBJS += ../src/utils/wpa_debug.o
87OBJS += ../src/utils/wpabuf.o
Dmitry Shmidt29333592017-01-09 12:27:11 -080088OBJS += ../src/utils/bitfield.o
Hai Shalomc3565922019-10-28 11:58:20 -070089OBJS += ../src/utils/ip_addr.o
Hai Shalomfdcde762020-04-02 11:19:20 -070090OBJS += ../src/utils/crc32.o
Dmitry Shmidt29333592017-01-09 12:27:11 -080091OBJS += op_classes.o
92OBJS += rrm.o
Hai Shalom899fcc72020-10-19 14:38:18 -070093OBJS += robust_av.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070094OBJS_p = wpa_passphrase.o
95OBJS_p += ../src/utils/common.o
96OBJS_p += ../src/utils/wpa_debug.o
97OBJS_p += ../src/utils/wpabuf.o
98OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
99OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800100OBJS_c += ../src/utils/common.o
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700101OBJS_c += ../src/common/cli.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800102OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700103
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700104ifndef CONFIG_OS
105ifdef CONFIG_NATIVE_WINDOWS
106CONFIG_OS=win32
107else
108CONFIG_OS=unix
109endif
110endif
111
112ifeq ($(CONFIG_OS), internal)
113CFLAGS += -DOS_NO_C_LIB_DEFINES
114endif
115
116OBJS += ../src/utils/os_$(CONFIG_OS).o
117OBJS_p += ../src/utils/os_$(CONFIG_OS).o
118OBJS_c += ../src/utils/os_$(CONFIG_OS).o
119
120ifdef CONFIG_WPA_TRACE
121CFLAGS += -DWPA_TRACE
122OBJS += ../src/utils/trace.o
123OBJS_p += ../src/utils/trace.o
124OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800125OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -0800126LIBCTRL += ../src/utils/trace.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -0700127LIBCTRLSO += ../src/utils/trace.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700128LDFLAGS += -rdynamic
129CFLAGS += -funwind-tables
130ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800131CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800132LIBS += -lbfd -ldl -liberty -lz
133LIBS_p += -lbfd -ldl -liberty -lz
134LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700135endif
136endif
137
138ifndef CONFIG_ELOOP
139CONFIG_ELOOP=eloop
140endif
141OBJS += ../src/utils/$(CONFIG_ELOOP).o
142OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
143
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800144ifndef CONFIG_OSX
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800145ifeq ($(CONFIG_ELOOP), eloop)
146# Using glibc < 2.17 requires -lrt for clock_gettime()
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800147# OS X has an alternate implementation
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800148LIBS += -lrt
149LIBS_c += -lrt
150LIBS_p += -lrt
151endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800152endif
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800153
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800154ifdef CONFIG_ELOOP_POLL
155CFLAGS += -DCONFIG_ELOOP_POLL
156endif
157
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700158ifdef CONFIG_ELOOP_EPOLL
159CFLAGS += -DCONFIG_ELOOP_EPOLL
160endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700161
Dmitry Shmidtb97e4282016-02-08 10:16:07 -0800162ifdef CONFIG_ELOOP_KQUEUE
163CFLAGS += -DCONFIG_ELOOP_KQUEUE
164endif
165
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700166ifdef CONFIG_EAPOL_TEST
167CFLAGS += -Werror -DEAPOL_TEST
168endif
169
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800170ifdef CONFIG_CODE_COVERAGE
171CFLAGS += -O0 -fprofile-arcs -ftest-coverage
172LIBS += -lgcov
173LIBS_c += -lgcov
174LIBS_p += -lgcov
175endif
176
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800177ifdef CONFIG_HT_OVERRIDES
178CFLAGS += -DCONFIG_HT_OVERRIDES
179endif
180
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700181ifdef CONFIG_VHT_OVERRIDES
182CFLAGS += -DCONFIG_VHT_OVERRIDES
183endif
184
Hai Shalomfdcde762020-04-02 11:19:20 -0700185ifdef CONFIG_HE_OVERRIDES
186CFLAGS += -DCONFIG_HE_OVERRIDES
187endif
188
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700189ifndef CONFIG_BACKEND
190CONFIG_BACKEND=file
191endif
192
193ifeq ($(CONFIG_BACKEND), file)
194OBJS += config_file.o
195ifndef CONFIG_NO_CONFIG_BLOBS
196NEED_BASE64=y
197endif
198CFLAGS += -DCONFIG_BACKEND_FILE
199endif
200
201ifeq ($(CONFIG_BACKEND), winreg)
202OBJS += config_winreg.o
203endif
204
205ifeq ($(CONFIG_BACKEND), none)
206OBJS += config_none.o
207endif
208
209ifdef CONFIG_NO_CONFIG_WRITE
210CFLAGS += -DCONFIG_NO_CONFIG_WRITE
211endif
212
213ifdef CONFIG_NO_CONFIG_BLOBS
214CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
215endif
216
217ifdef CONFIG_NO_SCAN_PROCESSING
218CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
219endif
220
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800221ifdef CONFIG_SUITEB
222CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800223endif
224
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800225ifdef CONFIG_SUITEB192
226CFLAGS += -DCONFIG_SUITEB192
227NEED_SHA384=y
228endif
229
Hai Shalom74f70d42019-02-11 14:42:39 -0800230ifdef CONFIG_OCV
231CFLAGS += -DCONFIG_OCV
232OBJS += ../src/common/ocv.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700233endif
234
235ifdef CONFIG_IEEE80211R
236CFLAGS += -DCONFIG_IEEE80211R
237OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700238endif
239
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800240ifdef CONFIG_MESH
241NEED_80211_COMMON=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800242NEED_AES_SIV=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800243CONFIG_SAE=y
244CONFIG_AP=y
245CFLAGS += -DCONFIG_MESH
246OBJS += mesh.o
247OBJS += mesh_mpm.o
248OBJS += mesh_rsn.o
249endif
250
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800251ifdef CONFIG_SAE
252CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800253OBJS += ../src/common/sae.o
Hai Shalom899fcc72020-10-19 14:38:18 -0700254ifdef CONFIG_SAE_PK
255CFLAGS += -DCONFIG_SAE_PK
256OBJS += ../src/common/sae_pk.o
257endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800258NEED_ECC=y
259NEED_DH_GROUPS=y
Hai Shalomb755a2a2020-04-23 21:49:02 -0700260NEED_HMAC_SHA256_KDF=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700261NEED_DRAGONFLY=y
Ahmed ElArabawy0ff61c52019-12-26 12:38:39 -0800262ifdef CONFIG_TESTING_OPTIONS
263NEED_DH_GROUPS_ALL=y
264endif
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800265endif
266
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700267ifdef CONFIG_DPP
268CFLAGS += -DCONFIG_DPP
269OBJS += ../src/common/dpp.o
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700270OBJS += ../src/common/dpp_auth.o
271OBJS += ../src/common/dpp_backup.o
272OBJS += ../src/common/dpp_crypto.o
273OBJS += ../src/common/dpp_pkex.o
274OBJS += ../src/common/dpp_reconfig.o
275OBJS += ../src/common/dpp_tcp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700276OBJS += dpp_supplicant.o
277NEED_AES_SIV=y
278NEED_HMAC_SHA256_KDF=y
279NEED_HMAC_SHA384_KDF=y
280NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700281NEED_SHA384=y
282NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700283NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700284NEED_JSON=y
285NEED_GAS_SERVER=y
286NEED_BASE64=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700287NEED_ASN1=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700288ifdef CONFIG_DPP2
289CFLAGS += -DCONFIG_DPP2
290endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700291endif
292
293ifdef CONFIG_OWE
294CFLAGS += -DCONFIG_OWE
295NEED_ECC=y
296NEED_HMAC_SHA256_KDF=y
297NEED_HMAC_SHA384_KDF=y
298NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700299NEED_SHA384=y
300NEED_SHA512=y
301endif
302
Jimmy Chencaaac072019-09-16 16:36:06 +0800303ifdef CONFIG_WAPI_INTERFACE
304L_CFLAGS += -DCONFIG_WAPI_INTERFACE
305endif
306
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800307ifdef CONFIG_FILS
308CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800309NEED_SHA384=y
310NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700311ifdef CONFIG_FILS_SK_PFS
312CFLAGS += -DCONFIG_FILS_SK_PFS
313NEED_ECC=y
314endif
315endif
316
317ifdef CONFIG_MBO
318CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800319endif
320
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800321ifdef CONFIG_WNM
322CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700323OBJS += wnm_sta.o
324endif
325
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700326ifdef CONFIG_TDLS
327CFLAGS += -DCONFIG_TDLS
328OBJS += ../src/rsn_supp/tdls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700329endif
330
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800331ifdef CONFIG_TDLS_TESTING
332CFLAGS += -DCONFIG_TDLS_TESTING
333endif
334
Dmitry Shmidt29333592017-01-09 12:27:11 -0800335ifdef CONFIG_PMKSA_CACHE_EXTERNAL
336CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
337endif
338
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700339ifndef CONFIG_NO_WPA
340OBJS += ../src/rsn_supp/wpa.o
341OBJS += ../src/rsn_supp/preauth.o
342OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700343OBJS += ../src/rsn_supp/wpa_ie.o
344OBJS += ../src/common/wpa_common.o
345NEED_AES=y
346NEED_SHA1=y
347NEED_MD5=y
348NEED_RC4=y
349else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700350CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800351ifeq ($(CONFIG_TLS), internal)
352NEED_SHA1=y
353NEED_MD5=y
354endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700355endif
356
357ifdef CONFIG_IBSS_RSN
358NEED_RSN_AUTHENTICATOR=y
359CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700360CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700361OBJS += ibss_rsn.o
362endif
363
Dmitry Shmidte4663042016-04-04 10:07:49 -0700364ifdef CONFIG_MATCH_IFACE
365CFLAGS += -DCONFIG_MATCH_IFACE
366endif
367
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700368ifdef CONFIG_P2P
369OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700370OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700371OBJS += ../src/p2p/p2p.o
372OBJS += ../src/p2p/p2p_utils.o
373OBJS += ../src/p2p/p2p_parse.o
374OBJS += ../src/p2p/p2p_build.o
375OBJS += ../src/p2p/p2p_go_neg.o
376OBJS += ../src/p2p/p2p_sd.o
377OBJS += ../src/p2p/p2p_pd.o
378OBJS += ../src/p2p/p2p_invitation.o
379OBJS += ../src/p2p/p2p_dev_disc.o
380OBJS += ../src/p2p/p2p_group.o
381OBJS += ../src/ap/p2p_hostapd.o
382CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800383NEED_GAS=y
384NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800385CONFIG_WPS=y
386CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700387ifdef CONFIG_P2P_STRICT
388CFLAGS += -DCONFIG_P2P_STRICT
389endif
390endif
391
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700392ifdef CONFIG_WIFI_DISPLAY
393CFLAGS += -DCONFIG_WIFI_DISPLAY
394OBJS += wifi_display.o
395endif
396
Dmitry Shmidt04949592012-07-19 12:16:46 -0700397ifdef CONFIG_HS20
398OBJS += hs20_supplicant.o
399CFLAGS += -DCONFIG_HS20
400CONFIG_INTERWORKING=y
401endif
402
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800403ifdef CONFIG_INTERWORKING
404OBJS += interworking.o
405CFLAGS += -DCONFIG_INTERWORKING
406NEED_GAS=y
407endif
408
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700409ifdef CONFIG_NO_ROAMING
410CFLAGS += -DCONFIG_NO_ROAMING
411endif
412
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700413include ../src/drivers/drivers.mak
414ifdef CONFIG_AP
415OBJS_d += $(DRV_BOTH_OBJS)
416CFLAGS += $(DRV_BOTH_CFLAGS)
417LDFLAGS += $(DRV_BOTH_LDFLAGS)
418LIBS += $(DRV_BOTH_LIBS)
419else
420NEED_AP_MLME=
421OBJS_d += $(DRV_WPA_OBJS)
422CFLAGS += $(DRV_WPA_CFLAGS)
423LDFLAGS += $(DRV_WPA_LDFLAGS)
424LIBS += $(DRV_WPA_LIBS)
425endif
426
427ifndef CONFIG_L2_PACKET
428CONFIG_L2_PACKET=linux
429endif
430
431OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
432
433ifeq ($(CONFIG_L2_PACKET), pcap)
434ifdef CONFIG_WINPCAP
435CFLAGS += -DCONFIG_WINPCAP
436LIBS += -lwpcap -lpacket
437LIBS_w += -lwpcap
438else
439LIBS += -ldnet -lpcap
440endif
441endif
442
443ifeq ($(CONFIG_L2_PACKET), winpcap)
444LIBS += -lwpcap -lpacket
445LIBS_w += -lwpcap
446endif
447
448ifeq ($(CONFIG_L2_PACKET), freebsd)
449LIBS += -lpcap
450endif
451
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800452ifdef CONFIG_ERP
453CFLAGS += -DCONFIG_ERP
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800454NEED_HMAC_SHA256_KDF=y
455endif
456
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700457ifdef CONFIG_EAP_TLS
458# EAP-TLS
459ifeq ($(CONFIG_EAP_TLS), dyn)
460CFLAGS += -DEAP_TLS_DYNAMIC
461EAPDYN += ../src/eap_peer/eap_tls.so
462else
463CFLAGS += -DEAP_TLS
464OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700465endif
466TLS_FUNCS=y
467CONFIG_IEEE8021X_EAPOL=y
468endif
469
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700470ifdef CONFIG_EAP_UNAUTH_TLS
471# EAP-UNAUTH-TLS
472CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700473ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700474OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700475TLS_FUNCS=y
476endif
477CONFIG_IEEE8021X_EAPOL=y
478endif
479
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700480ifdef CONFIG_EAP_PEAP
481# EAP-PEAP
482ifeq ($(CONFIG_EAP_PEAP), dyn)
483CFLAGS += -DEAP_PEAP_DYNAMIC
484EAPDYN += ../src/eap_peer/eap_peap.so
485else
486CFLAGS += -DEAP_PEAP
487OBJS += ../src/eap_peer/eap_peap.o
488OBJS += ../src/eap_common/eap_peap_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700489endif
490TLS_FUNCS=y
491CONFIG_IEEE8021X_EAPOL=y
492endif
493
494ifdef CONFIG_EAP_TTLS
495# EAP-TTLS
496ifeq ($(CONFIG_EAP_TTLS), dyn)
497CFLAGS += -DEAP_TTLS_DYNAMIC
498EAPDYN += ../src/eap_peer/eap_ttls.so
499else
500CFLAGS += -DEAP_TTLS
501OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700502endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700503TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800504ifndef CONFIG_FIPS
505MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700506CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800507endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700508CONFIG_IEEE8021X_EAPOL=y
509endif
510
511ifdef CONFIG_EAP_MD5
512# EAP-MD5
513ifeq ($(CONFIG_EAP_MD5), dyn)
514CFLAGS += -DEAP_MD5_DYNAMIC
515EAPDYN += ../src/eap_peer/eap_md5.so
516else
517CFLAGS += -DEAP_MD5
518OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700519endif
520CHAP=y
521CONFIG_IEEE8021X_EAPOL=y
522endif
523
524# backwards compatibility for old spelling
525ifdef CONFIG_MSCHAPV2
526ifndef CONFIG_EAP_MSCHAPV2
527CONFIG_EAP_MSCHAPV2=y
528endif
529endif
530
531ifdef CONFIG_EAP_MSCHAPV2
532# EAP-MSCHAPv2
533ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
534CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
535EAPDYN += ../src/eap_peer/eap_mschapv2.so
536EAPDYN += ../src/eap_peer/mschapv2.so
537else
538CFLAGS += -DEAP_MSCHAPv2
539OBJS += ../src/eap_peer/eap_mschapv2.o
540OBJS += ../src/eap_peer/mschapv2.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700541endif
542MS_FUNCS=y
543CONFIG_IEEE8021X_EAPOL=y
544endif
545
546ifdef CONFIG_EAP_GTC
547# EAP-GTC
548ifeq ($(CONFIG_EAP_GTC), dyn)
549CFLAGS += -DEAP_GTC_DYNAMIC
550EAPDYN += ../src/eap_peer/eap_gtc.so
551else
552CFLAGS += -DEAP_GTC
553OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700554endif
555CONFIG_IEEE8021X_EAPOL=y
556endif
557
558ifdef CONFIG_EAP_OTP
559# EAP-OTP
560ifeq ($(CONFIG_EAP_OTP), dyn)
561CFLAGS += -DEAP_OTP_DYNAMIC
562EAPDYN += ../src/eap_peer/eap_otp.so
563else
564CFLAGS += -DEAP_OTP
565OBJS += ../src/eap_peer/eap_otp.o
566endif
567CONFIG_IEEE8021X_EAPOL=y
568endif
569
570ifdef CONFIG_EAP_SIM
571# EAP-SIM
572ifeq ($(CONFIG_EAP_SIM), dyn)
573CFLAGS += -DEAP_SIM_DYNAMIC
574EAPDYN += ../src/eap_peer/eap_sim.so
575else
576CFLAGS += -DEAP_SIM
577OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700578endif
579CONFIG_IEEE8021X_EAPOL=y
580CONFIG_EAP_SIM_COMMON=y
581NEED_AES_CBC=y
582endif
583
584ifdef CONFIG_EAP_LEAP
585# EAP-LEAP
586ifeq ($(CONFIG_EAP_LEAP), dyn)
587CFLAGS += -DEAP_LEAP_DYNAMIC
588EAPDYN += ../src/eap_peer/eap_leap.so
589else
590CFLAGS += -DEAP_LEAP
591OBJS += ../src/eap_peer/eap_leap.o
592endif
593MS_FUNCS=y
594CONFIG_IEEE8021X_EAPOL=y
595endif
596
597ifdef CONFIG_EAP_PSK
598# EAP-PSK
599ifeq ($(CONFIG_EAP_PSK), dyn)
600CFLAGS += -DEAP_PSK_DYNAMIC
601EAPDYN += ../src/eap_peer/eap_psk.so
602else
603CFLAGS += -DEAP_PSK
604OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700605endif
606CONFIG_IEEE8021X_EAPOL=y
607NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700608NEED_AES_ENCBLOCK=y
609NEED_AES_EAX=y
610endif
611
612ifdef CONFIG_EAP_AKA
613# EAP-AKA
614ifeq ($(CONFIG_EAP_AKA), dyn)
615CFLAGS += -DEAP_AKA_DYNAMIC
616EAPDYN += ../src/eap_peer/eap_aka.so
617else
618CFLAGS += -DEAP_AKA
619OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700620endif
621CONFIG_IEEE8021X_EAPOL=y
622CONFIG_EAP_SIM_COMMON=y
623NEED_AES_CBC=y
624endif
625
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800626ifdef CONFIG_EAP_PROXY
627CFLAGS += -DCONFIG_EAP_PROXY
628OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700629include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800630CONFIG_IEEE8021X_EAPOL=y
631endif
632
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700633ifdef CONFIG_EAP_AKA_PRIME
634# EAP-AKA'
635ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
636CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
637else
638CFLAGS += -DEAP_AKA_PRIME
639endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700640endif
641
642ifdef CONFIG_EAP_SIM_COMMON
643OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700644NEED_AES=y
645NEED_FIPS186_2_PRF=y
646endif
647
648ifdef CONFIG_EAP_FAST
649# EAP-FAST
650ifeq ($(CONFIG_EAP_FAST), dyn)
651CFLAGS += -DEAP_FAST_DYNAMIC
652EAPDYN += ../src/eap_peer/eap_fast.so
653EAPDYN += ../src/eap_common/eap_fast_common.o
654else
655CFLAGS += -DEAP_FAST
656OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
657OBJS += ../src/eap_common/eap_fast_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700658endif
659TLS_FUNCS=y
660CONFIG_IEEE8021X_EAPOL=y
661NEED_T_PRF=y
662endif
663
Hai Shalom81f62d82019-07-22 12:10:00 -0700664ifdef CONFIG_EAP_TEAP
665# EAP-TEAP
666ifeq ($(CONFIG_EAP_TEAP), dyn)
667CFLAGS += -DEAP_TEAP_DYNAMIC
668EAPDYN += ../src/eap_peer/eap_teap.so
669EAPDYN += ../src/eap_common/eap_teap_common.o
670else
671CFLAGS += -DEAP_TEAP
672OBJS += ../src/eap_peer/eap_teap.o ../src/eap_peer/eap_teap_pac.o
673OBJS += ../src/eap_common/eap_teap_common.o
674endif
675TLS_FUNCS=y
676CONFIG_IEEE8021X_EAPOL=y
677NEED_T_PRF=y
678NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700679NEED_TLS_PRF_SHA256=y
680NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700681endif
682
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700683ifdef CONFIG_EAP_PAX
684# EAP-PAX
685ifeq ($(CONFIG_EAP_PAX), dyn)
686CFLAGS += -DEAP_PAX_DYNAMIC
687EAPDYN += ../src/eap_peer/eap_pax.so
688else
689CFLAGS += -DEAP_PAX
690OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700691endif
692CONFIG_IEEE8021X_EAPOL=y
693endif
694
695ifdef CONFIG_EAP_SAKE
696# EAP-SAKE
697ifeq ($(CONFIG_EAP_SAKE), dyn)
698CFLAGS += -DEAP_SAKE_DYNAMIC
699EAPDYN += ../src/eap_peer/eap_sake.so
700else
701CFLAGS += -DEAP_SAKE
702OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700703endif
704CONFIG_IEEE8021X_EAPOL=y
705endif
706
707ifdef CONFIG_EAP_GPSK
708# EAP-GPSK
709ifeq ($(CONFIG_EAP_GPSK), dyn)
710CFLAGS += -DEAP_GPSK_DYNAMIC
711EAPDYN += ../src/eap_peer/eap_gpsk.so
712else
713CFLAGS += -DEAP_GPSK
714OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700715endif
716CONFIG_IEEE8021X_EAPOL=y
717ifdef CONFIG_EAP_GPSK_SHA256
718CFLAGS += -DEAP_GPSK_SHA256
719endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700720endif
721
722ifdef CONFIG_EAP_PWD
723CFLAGS += -DEAP_PWD
Roshan Pius3a1667e2018-07-03 15:17:14 -0700724ifeq ($(CONFIG_TLS), wolfssl)
725CFLAGS += -DCONFIG_ECC
726endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700727OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700728CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700729NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700730NEED_DRAGONFLY=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700731endif
732
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700733ifdef CONFIG_EAP_EKE
734# EAP-EKE
735ifeq ($(CONFIG_EAP_EKE), dyn)
736CFLAGS += -DEAP_EKE_DYNAMIC
737EAPDYN += ../src/eap_peer/eap_eke.so
738else
739CFLAGS += -DEAP_EKE
740OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700741endif
742CONFIG_IEEE8021X_EAPOL=y
743NEED_DH_GROUPS=y
744NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800745NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700746endif
747
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700748ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700749# EAP-WSC
750CFLAGS += -DCONFIG_WPS -DEAP_WSC
751OBJS += wps_supplicant.o
752OBJS += ../src/utils/uuid.o
753OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
754OBJS += ../src/wps/wps.o
755OBJS += ../src/wps/wps_common.o
756OBJS += ../src/wps/wps_attr_parse.o
757OBJS += ../src/wps/wps_attr_build.o
758OBJS += ../src/wps/wps_attr_process.o
759OBJS += ../src/wps/wps_dev_attr.o
760OBJS += ../src/wps/wps_enrollee.o
761OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700762CONFIG_IEEE8021X_EAPOL=y
763NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700764NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700765NEED_AES_CBC=y
766NEED_MODEXP=y
767
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700768ifdef CONFIG_WPS_NFC
769CFLAGS += -DCONFIG_WPS_NFC
770OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700771NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700772endif
773
774ifdef NEED_WPS_OOB
775CFLAGS += -DCONFIG_WPS_OOB
776endif
777
778ifdef CONFIG_WPS_ER
779CONFIG_WPS_UPNP=y
780CFLAGS += -DCONFIG_WPS_ER
781OBJS += ../src/wps/wps_er.o
782OBJS += ../src/wps/wps_er_ssdp.o
783endif
784
785ifdef CONFIG_WPS_UPNP
786CFLAGS += -DCONFIG_WPS_UPNP
787OBJS += ../src/wps/wps_upnp.o
788OBJS += ../src/wps/wps_upnp_ssdp.o
789OBJS += ../src/wps/wps_upnp_web.o
790OBJS += ../src/wps/wps_upnp_event.o
791OBJS += ../src/wps/wps_upnp_ap.o
792OBJS += ../src/wps/upnp_xml.o
793OBJS += ../src/wps/httpread.o
794OBJS += ../src/wps/http_client.o
795OBJS += ../src/wps/http_server.o
796endif
797
798ifdef CONFIG_WPS_STRICT
799CFLAGS += -DCONFIG_WPS_STRICT
800OBJS += ../src/wps/wps_validate.o
801endif
802
803ifdef CONFIG_WPS_TESTING
804CFLAGS += -DCONFIG_WPS_TESTING
805endif
806
807ifdef CONFIG_WPS_REG_DISABLE_OPEN
808CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
809endif
810
811endif
812
813ifdef CONFIG_EAP_IKEV2
814# EAP-IKEv2
815ifeq ($(CONFIG_EAP_IKEV2), dyn)
816CFLAGS += -DEAP_IKEV2_DYNAMIC
817EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
818EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
819else
820CFLAGS += -DEAP_IKEV2
821OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
822OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700823endif
824CONFIG_IEEE8021X_EAPOL=y
825NEED_DH_GROUPS=y
826NEED_DH_GROUPS_ALL=y
827NEED_MODEXP=y
828NEED_CIPHER=y
829endif
830
831ifdef CONFIG_EAP_VENDOR_TEST
832ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
833CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
834EAPDYN += ../src/eap_peer/eap_vendor_test.so
835else
836CFLAGS += -DEAP_VENDOR_TEST
837OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700838endif
839CONFIG_IEEE8021X_EAPOL=y
840endif
841
842ifdef CONFIG_EAP_TNC
843# EAP-TNC
844CFLAGS += -DEAP_TNC
845OBJS += ../src/eap_peer/eap_tnc.o
846OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700847NEED_BASE64=y
848ifndef CONFIG_NATIVE_WINDOWS
849ifndef CONFIG_DRIVER_BSD
850LIBS += -ldl
851endif
852endif
853endif
854
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700855ifdef CONFIG_MACSEC
856CFLAGS += -DCONFIG_MACSEC
857CONFIG_IEEE8021X_EAPOL=y
858NEED_AES_ENCBLOCK=y
859NEED_AES_UNWRAP=y
860NEED_AES_WRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700861OBJS += wpas_kay.o
862OBJS += ../src/pae/ieee802_1x_cp.o
863OBJS += ../src/pae/ieee802_1x_kay.o
864OBJS += ../src/pae/ieee802_1x_key.o
865OBJS += ../src/pae/ieee802_1x_secy_ops.o
Hai Shalom81f62d82019-07-22 12:10:00 -0700866ifdef CONFIG_AP
867OBJS += ../src/ap/wpa_auth_kay.o
868endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700869endif
870
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700871ifdef CONFIG_IEEE8021X_EAPOL
872# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
873CFLAGS += -DIEEE8021X_EAPOL
874OBJS += ../src/eapol_supp/eapol_supp_sm.o
875OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
876NEED_EAP_COMMON=y
877ifdef CONFIG_DYNAMIC_EAP_METHODS
878CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
879LIBS += -ldl -rdynamic
880endif
881endif
882
883ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700884NEED_EAP_COMMON=y
885NEED_RSN_AUTHENTICATOR=y
886CFLAGS += -DCONFIG_AP
887OBJS += ap.o
888CFLAGS += -DCONFIG_NO_RADIUS
889CFLAGS += -DCONFIG_NO_ACCOUNTING
890CFLAGS += -DCONFIG_NO_VLAN
891OBJS += ../src/ap/hostapd.o
892OBJS += ../src/ap/wpa_auth_glue.o
893OBJS += ../src/ap/utils.o
894OBJS += ../src/ap/authsrv.o
895OBJS += ../src/ap/ap_config.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700896OBJS += ../src/ap/sta_info.o
897OBJS += ../src/ap/tkip_countermeasures.o
898OBJS += ../src/ap/ap_mlme.o
899OBJS += ../src/ap/ieee802_1x.o
900OBJS += ../src/eapol_auth/eapol_auth_sm.o
901OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800902OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700903OBJS += ../src/ap/drv_callbacks.o
904OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800905OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800906OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800907OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700908OBJS += ../src/ap/neighbor_db.o
909OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700910OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700911ifdef CONFIG_IEEE80211AC
912OBJS += ../src/ap/ieee802_11_vht.o
913endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800914ifdef CONFIG_IEEE80211AX
915OBJS += ../src/ap/ieee802_11_he.o
916endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700917ifdef CONFIG_WNM_AP
918CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800919OBJS += ../src/ap/wnm_ap.o
920endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800921ifdef CONFIG_MBO
922OBJS += ../src/ap/mbo_ap.o
923endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800924ifdef CONFIG_FILS
925OBJS += ../src/ap/fils_hlp.o
926endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700927ifdef CONFIG_CTRL_IFACE
928OBJS += ../src/ap/ctrl_iface_ap.o
929endif
930
931CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
932OBJS += ../src/eap_server/eap_server.o
933OBJS += ../src/eap_server/eap_server_identity.o
934OBJS += ../src/eap_server/eap_server_methods.o
935
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700936ifdef CONFIG_IEEE80211AC
937CFLAGS += -DCONFIG_IEEE80211AC
938endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800939ifdef CONFIG_IEEE80211AX
940CFLAGS += -DCONFIG_IEEE80211AX
941endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700942
943ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700944OBJS += ../src/ap/wmm.o
945OBJS += ../src/ap/ap_list.o
946OBJS += ../src/ap/ieee802_11.o
947OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700948OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700949CFLAGS += -DNEED_AP_MLME
950endif
951ifdef CONFIG_WPS
952CFLAGS += -DEAP_SERVER_WSC
953OBJS += ../src/ap/wps_hostapd.o
954OBJS += ../src/eap_server/eap_server_wsc.o
955endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700956ifdef CONFIG_DPP
957OBJS += ../src/ap/dpp_hostapd.o
958OBJS += ../src/ap/gas_query_ap.o
Hai Shalomc3565922019-10-28 11:58:20 -0700959NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700960endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700961ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -0700962NEED_AP_GAS_SERV=y
963endif
964ifdef NEED_AP_GAS_SERV
Dmitry Shmidt04949592012-07-19 12:16:46 -0700965OBJS += ../src/ap/gas_serv.o
966endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700967ifdef CONFIG_HS20
968OBJS += ../src/ap/hs20.o
969endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700970endif
971
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800972ifdef CONFIG_MBO
973OBJS += mbo.o
974CFLAGS += -DCONFIG_MBO
975endif
976
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700977ifdef NEED_RSN_AUTHENTICATOR
978CFLAGS += -DCONFIG_NO_RADIUS
979NEED_AES_WRAP=y
980OBJS += ../src/ap/wpa_auth.o
981OBJS += ../src/ap/wpa_auth_ie.o
982OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700983endif
984
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -0800985ifdef CONFIG_ACS
986CFLAGS += -DCONFIG_ACS
987OBJS += ../src/ap/acs.o
988LIBS += -lm
989endif
990
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700991ifdef CONFIG_PCSC
992# PC/SC interface for smartcards (USIM, GSM SIM)
993CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
994OBJS += ../src/utils/pcsc_funcs.o
995# -lpthread may not be needed depending on how pcsc-lite was configured
996ifdef CONFIG_NATIVE_WINDOWS
997#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
998#dynamic symbol loading that is now used in pcsc_funcs.c
999#LIBS += -lwinscard
1000else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001001ifdef CONFIG_OSX
1002LIBS += -framework PCSC
1003else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001004LIBS += -lpcsclite -lpthread
1005endif
1006endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001007endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001008
1009ifdef CONFIG_SIM_SIMULATOR
1010CFLAGS += -DCONFIG_SIM_SIMULATOR
1011NEED_MILENAGE=y
1012endif
1013
1014ifdef CONFIG_USIM_SIMULATOR
1015CFLAGS += -DCONFIG_USIM_SIMULATOR
1016NEED_MILENAGE=y
1017endif
1018
1019ifdef NEED_MILENAGE
1020OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001021NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001022endif
1023
1024ifdef CONFIG_PKCS12
1025CFLAGS += -DPKCS12_FUNCS
1026endif
1027
1028ifdef CONFIG_SMARTCARD
1029CFLAGS += -DCONFIG_SMARTCARD
1030endif
1031
Hai Shalom81f62d82019-07-22 12:10:00 -07001032ifdef NEED_DRAGONFLY
1033OBJS += ../src/common/dragonfly.o
1034endif
1035
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001036ifdef MS_FUNCS
1037OBJS += ../src/crypto/ms_funcs.o
1038NEED_DES=y
1039NEED_MD4=y
1040endif
1041
1042ifdef CHAP
1043OBJS += ../src/eap_common/chap.o
1044endif
1045
1046ifdef TLS_FUNCS
1047NEED_DES=y
Hai Shalom81f62d82019-07-22 12:10:00 -07001048# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and
1049# EAP_TEAP)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001050OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001051ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001052NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001053NEED_SHA1=y
1054NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001055endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001056endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001057
1058ifndef CONFIG_TLS
1059CONFIG_TLS=openssl
1060endif
1061
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001062ifdef CONFIG_TLSV11
1063CFLAGS += -DCONFIG_TLSV11
1064endif
1065
1066ifdef CONFIG_TLSV12
1067CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001068endif
1069
Roshan Pius3a1667e2018-07-03 15:17:14 -07001070ifeq ($(CONFIG_TLS), wolfssl)
1071ifdef TLS_FUNCS
Hai Shalom4fbc08f2020-05-18 12:37:00 -07001072CFLAGS += -DWOLFSSL_DER_LOAD
Roshan Pius3a1667e2018-07-03 15:17:14 -07001073OBJS += ../src/crypto/tls_wolfssl.o
1074endif
1075OBJS += ../src/crypto/crypto_wolfssl.o
1076OBJS_p += ../src/crypto/crypto_wolfssl.o
1077ifdef NEED_FIPS186_2_PRF
1078OBJS += ../src/crypto/fips_prf_wolfssl.o
1079endif
1080NEED_TLS_PRF_SHA256=y
1081LIBS += -lwolfssl -lm
1082LIBS_p += -lwolfssl -lm
1083endif
1084
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001085ifeq ($(CONFIG_TLS), openssl)
1086ifdef TLS_FUNCS
1087CFLAGS += -DEAP_TLS_OPENSSL
1088OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001089OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001090LIBS += -lssl
1091endif
1092OBJS += ../src/crypto/crypto_openssl.o
1093OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001094OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001095ifdef NEED_FIPS186_2_PRF
1096OBJS += ../src/crypto/fips_prf_openssl.o
1097endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001098NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001099LIBS += -lcrypto
1100LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001101ifdef CONFIG_TLS_ADD_DL
1102LIBS += -ldl
1103LIBS_p += -ldl
1104endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001105ifndef CONFIG_TLS_DEFAULT_CIPHERS
1106CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1107endif
1108CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001109endif
1110
1111ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001112ifndef CONFIG_CRYPTO
1113# default to libgcrypt
1114CONFIG_CRYPTO=gnutls
1115endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001116ifdef TLS_FUNCS
1117OBJS += ../src/crypto/tls_gnutls.o
1118LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001119endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001120OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1121OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1122OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001123ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001124OBJS += ../src/crypto/fips_prf_internal.o
1125SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001126endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001127ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001128LIBS += -lgcrypt
1129LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001130CONFIG_INTERNAL_RC4=y
1131CONFIG_INTERNAL_DH_GROUP5=y
1132endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001133ifeq ($(CONFIG_CRYPTO), nettle)
1134LIBS += -lnettle -lgmp
1135LIBS_p += -lnettle -lgmp
1136CONFIG_INTERNAL_RC4=y
1137CONFIG_INTERNAL_DH_GROUP5=y
1138endif
1139endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001140
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001141ifeq ($(CONFIG_TLS), internal)
1142ifndef CONFIG_CRYPTO
1143CONFIG_CRYPTO=internal
1144endif
1145ifdef TLS_FUNCS
1146OBJS += ../src/crypto/crypto_internal-rsa.o
1147OBJS += ../src/crypto/tls_internal.o
1148OBJS += ../src/tls/tlsv1_common.o
1149OBJS += ../src/tls/tlsv1_record.o
1150OBJS += ../src/tls/tlsv1_cred.o
1151OBJS += ../src/tls/tlsv1_client.o
1152OBJS += ../src/tls/tlsv1_client_write.o
1153OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001154OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001155OBJS += ../src/tls/rsa.o
1156OBJS += ../src/tls/x509v3.o
1157OBJS += ../src/tls/pkcs1.o
1158OBJS += ../src/tls/pkcs5.o
1159OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001160NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001161NEED_BASE64=y
1162NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001163ifdef CONFIG_TLSV12
1164NEED_TLS_PRF_SHA256=y
1165endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001166NEED_MODEXP=y
1167NEED_CIPHER=y
1168CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1169endif
1170ifdef NEED_CIPHER
1171NEED_DES=y
1172OBJS += ../src/crypto/crypto_internal-cipher.o
1173endif
1174ifdef NEED_MODEXP
1175OBJS += ../src/crypto/crypto_internal-modexp.o
1176OBJS += ../src/tls/bignum.o
1177endif
1178ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1179OBJS += ../src/crypto/crypto_libtomcrypt.o
1180OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1181LIBS += -ltomcrypt -ltfm
1182LIBS_p += -ltomcrypt -ltfm
1183CONFIG_INTERNAL_SHA256=y
1184CONFIG_INTERNAL_RC4=y
1185CONFIG_INTERNAL_DH_GROUP5=y
1186endif
1187ifeq ($(CONFIG_CRYPTO), internal)
1188OBJS += ../src/crypto/crypto_internal.o
1189OBJS_p += ../src/crypto/crypto_internal.o
1190NEED_AES_ENC=y
1191CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1192ifdef CONFIG_INTERNAL_LIBTOMMATH
1193CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1194ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1195CFLAGS += -DLTM_FAST
1196endif
1197else
1198LIBS += -ltommath
1199LIBS_p += -ltommath
1200endif
1201CONFIG_INTERNAL_AES=y
1202CONFIG_INTERNAL_DES=y
1203CONFIG_INTERNAL_SHA1=y
1204CONFIG_INTERNAL_MD4=y
1205CONFIG_INTERNAL_MD5=y
1206CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001207CONFIG_INTERNAL_SHA384=y
1208CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001209CONFIG_INTERNAL_RC4=y
1210CONFIG_INTERNAL_DH_GROUP5=y
1211endif
1212ifeq ($(CONFIG_CRYPTO), cryptoapi)
1213OBJS += ../src/crypto/crypto_cryptoapi.o
1214OBJS_p += ../src/crypto/crypto_cryptoapi.o
1215CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1216CONFIG_INTERNAL_SHA256=y
1217CONFIG_INTERNAL_RC4=y
1218endif
1219endif
1220
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001221ifeq ($(CONFIG_TLS), linux)
1222OBJS += ../src/crypto/crypto_linux.o
1223OBJS_p += ../src/crypto/crypto_linux.o
1224ifdef TLS_FUNCS
1225OBJS += ../src/crypto/crypto_internal-rsa.o
1226OBJS += ../src/crypto/tls_internal.o
1227OBJS += ../src/tls/tlsv1_common.o
1228OBJS += ../src/tls/tlsv1_record.o
1229OBJS += ../src/tls/tlsv1_cred.o
1230OBJS += ../src/tls/tlsv1_client.o
1231OBJS += ../src/tls/tlsv1_client_write.o
1232OBJS += ../src/tls/tlsv1_client_read.o
1233OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001234OBJS += ../src/tls/rsa.o
1235OBJS += ../src/tls/x509v3.o
1236OBJS += ../src/tls/pkcs1.o
1237OBJS += ../src/tls/pkcs5.o
1238OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001239NEED_ASN1=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001240NEED_BASE64=y
1241NEED_TLS_PRF=y
1242ifdef CONFIG_TLSV12
1243NEED_TLS_PRF_SHA256=y
1244endif
1245NEED_MODEXP=y
1246NEED_CIPHER=y
1247CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1248endif
1249ifdef NEED_MODEXP
1250OBJS += ../src/crypto/crypto_internal-modexp.o
1251OBJS += ../src/tls/bignum.o
1252CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1253CFLAGS += -DLTM_FAST
1254endif
1255CONFIG_INTERNAL_DH_GROUP5=y
1256ifdef NEED_FIPS186_2_PRF
1257OBJS += ../src/crypto/fips_prf_internal.o
1258OBJS += ../src/crypto/sha1-internal.o
1259endif
1260endif
1261
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001262ifeq ($(CONFIG_TLS), none)
1263ifdef TLS_FUNCS
1264OBJS += ../src/crypto/tls_none.o
1265CFLAGS += -DEAP_TLS_NONE
1266CONFIG_INTERNAL_AES=y
1267CONFIG_INTERNAL_SHA1=y
1268CONFIG_INTERNAL_MD5=y
1269endif
1270OBJS += ../src/crypto/crypto_none.o
1271OBJS_p += ../src/crypto/crypto_none.o
1272CONFIG_INTERNAL_SHA256=y
1273CONFIG_INTERNAL_RC4=y
1274endif
1275
1276ifdef TLS_FUNCS
1277ifdef CONFIG_SMARTCARD
1278ifndef CONFIG_NATIVE_WINDOWS
1279ifneq ($(CONFIG_L2_PACKET), freebsd)
1280LIBS += -ldl
1281endif
1282endif
1283endif
1284endif
1285
1286ifndef TLS_FUNCS
1287OBJS += ../src/crypto/tls_none.o
1288ifeq ($(CONFIG_TLS), internal)
1289CONFIG_INTERNAL_AES=y
1290CONFIG_INTERNAL_SHA1=y
1291CONFIG_INTERNAL_MD5=y
1292CONFIG_INTERNAL_RC4=y
1293endif
1294endif
1295
1296AESOBJS = # none so far (see below)
1297ifdef CONFIG_INTERNAL_AES
1298AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1299endif
1300
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001301ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001302ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001303NEED_INTERNAL_AES_WRAP=y
1304endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001305endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001306ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1307# Seems to be needed at least with BoringSSL
1308NEED_INTERNAL_AES_WRAP=y
1309CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1310endif
1311ifdef CONFIG_FIPS
1312# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1313# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1314NEED_INTERNAL_AES_WRAP=y
1315endif
1316
1317ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001318ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001319AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001320endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001321endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001322ifdef NEED_AES_EAX
1323AESOBJS += ../src/crypto/aes-eax.o
1324NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001325endif
1326ifdef NEED_AES_SIV
1327AESOBJS += ../src/crypto/aes-siv.o
1328NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001329endif
1330ifdef NEED_AES_CTR
1331AESOBJS += ../src/crypto/aes-ctr.o
1332endif
1333ifdef NEED_AES_ENCBLOCK
1334AESOBJS += ../src/crypto/aes-encblock.o
1335endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001336NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001337ifdef CONFIG_OPENSSL_CMAC
1338CFLAGS += -DCONFIG_OPENSSL_CMAC
1339else
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001340ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001341ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001342AESOBJS += ../src/crypto/aes-omac1.o
1343endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001344endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001345endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001346ifdef NEED_AES_WRAP
1347NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001348ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001349AESOBJS += ../src/crypto/aes-wrap.o
1350endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001351endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001352ifdef NEED_AES_CBC
1353NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001354ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001355ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001356ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001357AESOBJS += ../src/crypto/aes-cbc.o
1358endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001359endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001360endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001361endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001362ifdef NEED_AES_ENC
1363ifdef CONFIG_INTERNAL_AES
1364AESOBJS += ../src/crypto/aes-internal-enc.o
1365endif
1366endif
1367ifdef NEED_AES
1368OBJS += $(AESOBJS)
1369endif
1370
1371ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001372ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001373ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001374ifneq ($(CONFIG_TLS), gnutls)
1375ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001376SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001377endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001378endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001379endif
1380endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001381SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001382ifdef CONFIG_INTERNAL_SHA1
1383SHA1OBJS += ../src/crypto/sha1-internal.o
1384ifdef NEED_FIPS186_2_PRF
1385SHA1OBJS += ../src/crypto/fips_prf_internal.o
1386endif
1387endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001388ifdef CONFIG_NO_WPA_PASSPHRASE
1389CFLAGS += -DCONFIG_NO_PBKDF2
1390else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001391ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001392ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001393SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1394endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001395endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001396endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001397ifdef NEED_T_PRF
1398SHA1OBJS += ../src/crypto/sha1-tprf.o
1399endif
1400ifdef NEED_TLS_PRF
1401SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1402endif
1403endif
1404
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001405ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001406ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001407ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001408ifneq ($(CONFIG_TLS), gnutls)
1409ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001410MD5OBJS += ../src/crypto/md5.o
1411endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001412endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001413endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001414endif
1415endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001416ifdef NEED_MD5
1417ifdef CONFIG_INTERNAL_MD5
1418MD5OBJS += ../src/crypto/md5-internal.o
1419endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001420OBJS += $(MD5OBJS)
1421OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001422OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001423endif
1424
1425ifdef NEED_MD4
1426ifdef CONFIG_INTERNAL_MD4
1427OBJS += ../src/crypto/md4-internal.o
1428endif
1429endif
1430
1431DESOBJS = # none needed when not internal
1432ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001433ifndef CONFIG_FIPS
1434CFLAGS += -DCONFIG_DES
1435endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001436ifdef CONFIG_INTERNAL_DES
1437DESOBJS += ../src/crypto/des-internal.o
1438endif
1439endif
1440
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001441ifdef CONFIG_NO_RC4
1442CFLAGS += -DCONFIG_NO_RC4
1443endif
1444
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001445ifdef NEED_RC4
1446ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001447ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001448OBJS += ../src/crypto/rc4.o
1449endif
1450endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001451endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001452
1453SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001454CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001455ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001456ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001457ifneq ($(CONFIG_TLS), gnutls)
1458ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001459SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001460endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001461endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001462endif
1463endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001464SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001465ifdef CONFIG_INTERNAL_SHA256
1466SHA256OBJS += ../src/crypto/sha256-internal.o
1467endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001468ifdef CONFIG_INTERNAL_SHA384
1469CFLAGS += -DCONFIG_INTERNAL_SHA384
1470SHA256OBJS += ../src/crypto/sha384-internal.o
1471endif
1472ifdef CONFIG_INTERNAL_SHA512
1473CFLAGS += -DCONFIG_INTERNAL_SHA512
1474SHA256OBJS += ../src/crypto/sha512-internal.o
1475endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001476ifdef NEED_TLS_PRF_SHA256
1477SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1478endif
Hai Shalomc3565922019-10-28 11:58:20 -07001479ifdef NEED_TLS_PRF_SHA384
1480SHA256OBJS += ../src/crypto/sha384-tlsprf.o
1481endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001482ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001483CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001484OBJS += ../src/crypto/sha256-kdf.o
1485endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001486ifdef NEED_HMAC_SHA384_KDF
1487CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1488OBJS += ../src/crypto/sha384-kdf.o
1489endif
1490ifdef NEED_HMAC_SHA512_KDF
1491CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1492OBJS += ../src/crypto/sha512-kdf.o
1493endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001494OBJS += $(SHA256OBJS)
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001495ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001496ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001497ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001498ifneq ($(CONFIG_TLS), gnutls)
1499ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001500OBJS += ../src/crypto/sha384.o
1501endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001502endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001503endif
1504endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001505CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001506OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001507endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001508ifdef NEED_SHA512
1509ifneq ($(CONFIG_TLS), openssl)
1510ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001511ifneq ($(CONFIG_TLS), gnutls)
1512ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001513OBJS += ../src/crypto/sha512.o
1514endif
1515endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001516endif
1517endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001518CFLAGS += -DCONFIG_SHA512
1519OBJS += ../src/crypto/sha512-prf.o
1520endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001521
Hai Shalomfdcde762020-04-02 11:19:20 -07001522ifdef NEED_ASN1
1523OBJS += ../src/tls/asn1.o
1524endif
1525
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001526ifdef NEED_DH_GROUPS
1527OBJS += ../src/crypto/dh_groups.o
1528endif
1529ifdef NEED_DH_GROUPS_ALL
1530CFLAGS += -DALL_DH_GROUPS
1531endif
1532ifdef CONFIG_INTERNAL_DH_GROUP5
1533ifdef NEED_DH_GROUPS
1534OBJS += ../src/crypto/dh_group5.o
1535endif
1536endif
1537
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001538ifdef NEED_ECC
1539CFLAGS += -DCONFIG_ECC
1540endif
1541
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001542ifdef CONFIG_NO_RANDOM_POOL
1543CFLAGS += -DCONFIG_NO_RANDOM_POOL
1544else
Hai Shalom74f70d42019-02-11 14:42:39 -08001545ifdef CONFIG_GETRANDOM
1546CFLAGS += -DCONFIG_GETRANDOM
1547endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001548OBJS += ../src/crypto/random.o
1549endif
1550
1551ifdef CONFIG_CTRL_IFACE
1552ifeq ($(CONFIG_CTRL_IFACE), y)
1553ifdef CONFIG_NATIVE_WINDOWS
1554CONFIG_CTRL_IFACE=named_pipe
1555else
1556CONFIG_CTRL_IFACE=unix
1557endif
1558endif
1559CFLAGS += -DCONFIG_CTRL_IFACE
1560ifeq ($(CONFIG_CTRL_IFACE), unix)
1561CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001562OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001563endif
1564ifeq ($(CONFIG_CTRL_IFACE), udp)
1565CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1566endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001567ifeq ($(CONFIG_CTRL_IFACE), udp6)
1568CONFIG_CTRL_IFACE=udp
1569CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1570CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1571endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001572ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1573CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1574endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001575ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1576CONFIG_CTRL_IFACE=udp
1577CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1578CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1579endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001580ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1581CONFIG_CTRL_IFACE=udp
1582CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1583CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1584CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1585endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001586OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1587endif
1588
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001589ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001590CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1591OBJS += dbus/dbus_dict_helpers.o
1592OBJS += dbus/dbus_new_helpers.o
1593OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1594OBJS += dbus/dbus_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001595ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001596OBJS += dbus/dbus_new_handlers_wps.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001597endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001598ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001599OBJS += dbus/dbus_new_handlers_p2p.o
Jouni Malinen75ecf522011-06-27 15:19:46 -07001600endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001601ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001602DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001603endif
1604ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001605DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001606endif
1607ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001608OBJS += dbus/dbus_new_introspect.o
1609CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001610endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001611CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001612LIBS += $(DBUS_LIBS)
Hai Shalom021b0b52019-04-10 11:17:58 -07001613endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001614
1615ifdef CONFIG_READLINE
1616OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001617LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001618else
1619ifdef CONFIG_WPA_CLI_EDIT
1620OBJS_c += ../src/utils/edit.o
1621else
1622OBJS_c += ../src/utils/edit_simple.o
1623endif
1624endif
1625
1626ifdef CONFIG_NATIVE_WINDOWS
1627CFLAGS += -DCONFIG_NATIVE_WINDOWS
1628LIBS += -lws2_32 -lgdi32 -lcrypt32
1629LIBS_c += -lws2_32
1630LIBS_p += -lws2_32 -lgdi32
1631ifeq ($(CONFIG_CRYPTO), cryptoapi)
1632LIBS_p += -lcrypt32
1633endif
1634endif
1635
1636ifdef CONFIG_NO_STDOUT_DEBUG
1637CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1638ifndef CONFIG_CTRL_IFACE
1639CFLAGS += -DCONFIG_NO_WPA_MSG
1640endif
1641endif
1642
1643ifdef CONFIG_IPV6
1644# for eapol_test only
1645CFLAGS += -DCONFIG_IPV6
1646endif
1647
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001648ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1649CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1650endif
1651
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001652ifdef NEED_BASE64
1653OBJS += ../src/utils/base64.o
1654endif
1655
1656ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001657OBJS += sme.o
1658CFLAGS += -DCONFIG_SME
1659endif
1660
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001661OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001662OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001663
1664ifdef NEED_EAP_COMMON
1665OBJS += ../src/eap_common/eap_common.o
1666endif
1667
1668ifndef CONFIG_MAIN
1669CONFIG_MAIN=main
1670endif
1671
1672ifdef CONFIG_DEBUG_SYSLOG
1673CFLAGS += -DCONFIG_DEBUG_SYSLOG
1674ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1675CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1676endif
1677endif
1678
Dmitry Shmidt04949592012-07-19 12:16:46 -07001679ifdef CONFIG_DEBUG_LINUX_TRACING
1680CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1681endif
1682
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001683ifdef CONFIG_DEBUG_FILE
1684CFLAGS += -DCONFIG_DEBUG_FILE
1685endif
1686
1687ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1688CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1689endif
1690
1691ifdef CONFIG_FIPS
1692CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001693ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001694ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001695$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1696endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001697endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001698endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001699
1700OBJS += $(SHA1OBJS) $(DESOBJS)
1701
1702OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001703OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001704OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001705
1706ifdef CONFIG_BGSCAN_SIMPLE
1707CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1708OBJS += bgscan_simple.o
1709NEED_BGSCAN=y
1710endif
1711
1712ifdef CONFIG_BGSCAN_LEARN
1713CFLAGS += -DCONFIG_BGSCAN_LEARN
1714OBJS += bgscan_learn.o
1715NEED_BGSCAN=y
1716endif
1717
1718ifdef NEED_BGSCAN
1719CFLAGS += -DCONFIG_BGSCAN
1720OBJS += bgscan.o
1721endif
1722
Dmitry Shmidt04949592012-07-19 12:16:46 -07001723ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1724CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1725OBJS += autoscan_exponential.o
1726NEED_AUTOSCAN=y
1727endif
1728
1729ifdef CONFIG_AUTOSCAN_PERIODIC
1730CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1731OBJS += autoscan_periodic.o
1732NEED_AUTOSCAN=y
1733endif
1734
1735ifdef NEED_AUTOSCAN
1736CFLAGS += -DCONFIG_AUTOSCAN
1737OBJS += autoscan.o
1738endif
1739
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001740ifdef CONFIG_EXT_PASSWORD_TEST
1741OBJS += ../src/utils/ext_password_test.o
1742CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1743NEED_EXT_PASSWORD=y
1744endif
1745
1746ifdef NEED_EXT_PASSWORD
1747OBJS += ../src/utils/ext_password.o
1748CFLAGS += -DCONFIG_EXT_PASSWORD
1749endif
1750
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001751ifdef NEED_GAS_SERVER
1752OBJS += ../src/common/gas_server.o
1753CFLAGS += -DCONFIG_GAS_SERVER
1754NEED_GAS=y
1755endif
1756
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001757ifdef NEED_GAS
1758OBJS += ../src/common/gas.o
1759OBJS += gas_query.o
1760CFLAGS += -DCONFIG_GAS
1761NEED_OFFCHANNEL=y
1762endif
1763
1764ifdef NEED_OFFCHANNEL
1765OBJS += offchannel.o
1766CFLAGS += -DCONFIG_OFFCHANNEL
1767endif
1768
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001769ifdef NEED_JSON
1770OBJS += ../src/utils/json.o
1771CFLAGS += -DCONFIG_JSON
1772endif
1773
Dmitry Shmidt71757432014-06-02 13:50:35 -07001774ifdef CONFIG_MODULE_TESTS
1775CFLAGS += -DCONFIG_MODULE_TESTS
1776OBJS += wpas_module_tests.o
1777OBJS += ../src/utils/utils_module_tests.o
1778OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001779OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001780ifdef CONFIG_WPS
1781OBJS += ../src/wps/wps_module_tests.o
1782endif
1783endif
1784
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001785OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001786OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001787
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001788OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1789OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1790OBJS_t += ../src/radius/radius_client.o
1791OBJS_t += ../src/radius/radius.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001792OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001793
1794OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1795OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1796
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001797OBJS += $(CONFIG_MAIN).o
1798
1799ifdef CONFIG_PRIVSEP
1800OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1801OBJS_priv += $(OBJS_l2)
1802OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1803OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1804OBJS_priv += ../src/utils/common.o
1805OBJS_priv += ../src/utils/wpa_debug.o
1806OBJS_priv += ../src/utils/wpabuf.o
1807OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001808ifdef CONFIG_DRIVER_NL80211
1809OBJS_priv += ../src/common/ieee802_11_common.o
1810endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001811OBJS += ../src/l2_packet/l2_packet_privsep.o
1812OBJS += ../src/drivers/driver_privsep.o
1813EXTRA_progs += wpa_priv
1814else
1815OBJS += $(OBJS_d) ../src/drivers/drivers.o
1816OBJS += $(OBJS_l2)
1817endif
1818
1819ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1820CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1821OBJS += ../src/drivers/ndis_events.o
1822EXTRALIBS += -loleaut32 -lole32 -luuid
1823ifdef PLATFORMSDKLIB
1824EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1825else
1826EXTRALIBS += WbemUuid.Lib
1827endif
1828endif
1829
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001830ifdef CONFIG_FST
1831CFLAGS += -DCONFIG_FST
1832ifdef CONFIG_FST_TEST
1833CFLAGS += -DCONFIG_FST_TEST
1834endif
1835FST_OBJS += ../src/fst/fst.o
1836FST_OBJS += ../src/fst/fst_session.o
1837FST_OBJS += ../src/fst/fst_iface.o
1838FST_OBJS += ../src/fst/fst_group.o
1839FST_OBJS += ../src/fst/fst_ctrl_aux.o
1840ifdef CONFIG_CTRL_IFACE
1841FST_OBJS += ../src/fst/fst_ctrl_iface.o
1842endif
1843OBJS += $(FST_OBJS)
1844OBJS_t += $(FST_OBJS)
1845OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001846OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001847endif
1848
Hai Shalomfdcde762020-04-02 11:19:20 -07001849ifdef CONFIG_WEP
1850CFLAGS += -DCONFIG_WEP
1851endif
1852
Hai Shalomb755a2a2020-04-23 21:49:02 -07001853ifdef CONFIG_NO_TKIP
1854CFLAGS += -DCONFIG_NO_TKIP
1855endif
1856
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001857dynamic_eap_methods: $(EAPDYN)
1858
Hai Shalom899fcc72020-10-19 14:38:18 -07001859_OBJS_VAR := OBJS_priv
1860include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001861wpa_priv: $(BCHECK) $(OBJS_priv)
1862 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1863 @$(E) " LD " $@
1864
Hai Shalom899fcc72020-10-19 14:38:18 -07001865_OBJS_VAR := OBJS
1866include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001867wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001868 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1869 @$(E) " LD " $@
1870
Hai Shalom899fcc72020-10-19 14:38:18 -07001871_OBJS_VAR := OBJS_t
1872include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001873eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001874 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1875 @$(E) " LD " $@
1876
Hai Shalom899fcc72020-10-19 14:38:18 -07001877_OBJS_VAR := OBJS_t2
1878include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001879preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001880 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1881 @$(E) " LD " $@
1882
Hai Shalom899fcc72020-10-19 14:38:18 -07001883_OBJS_VAR := OBJS_p
1884include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001885wpa_passphrase: $(OBJS_p)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001886 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001887 @$(E) " LD " $@
1888
Hai Shalom899fcc72020-10-19 14:38:18 -07001889_OBJS_VAR := OBJS_c
1890include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001891wpa_cli: $(OBJS_c)
1892 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1893 @$(E) " LD " $@
1894
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001895LIBCTRL += ../src/common/wpa_ctrl.o
1896LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001897LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001898LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001899LIBCTRLSO += ../src/common/wpa_ctrl.c
1900LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001901LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001902LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001903
Hai Shalom899fcc72020-10-19 14:38:18 -07001904_OBJS_VAR := LIBCTRL
1905include ../src/objs.mk
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001906libwpa_client.a: $(LIBCTRL)
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001907 $(Q)rm -f $@
1908 $(Q)$(AR) crs $@ $?
1909 @$(E) " AR " $@
1910
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001911libwpa_client.so: $(LIBCTRLSO)
1912 @$(E) " CC $@ ($^)"
1913 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1914
Hai Shalom899fcc72020-10-19 14:38:18 -07001915OBJS_wpatest := libwpa_test.o
1916_OBJS_VAR := OBJS_wpatest
1917include ../src/objs.mk
1918libwpa_test1: $(OBJS_wpatest) libwpa_client.a
1919 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001920 @$(E) " LD " $@
1921
Hai Shalom899fcc72020-10-19 14:38:18 -07001922libwpa_test2: $(OBJS_wpatest) libwpa_client.so
1923 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001924 @$(E) " LD " $@
1925
Hai Shalom899fcc72020-10-19 14:38:18 -07001926_OBJS_VAR := OBJS_nfc
1927include ../src/objs.mk
Dmitry Shmidt04949592012-07-19 12:16:46 -07001928nfc_pw_token: $(OBJS_nfc)
1929 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1930 @$(E) " LD " $@
1931
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001932win_if_list: win_if_list.c
1933 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1934 @$(E) " LD " $@
1935
1936eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1937 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1938 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1939
1940eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1941 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1942 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1943
1944eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1945 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1946 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1947
1948eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1949 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1950 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1951
1952eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c
1953 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1954 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1955
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001956eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1957 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1958 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1959
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001960%.so: %.c
1961 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1962 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1963
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001964%.service: %.service.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001965 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001966 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001967
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001968%@.service: %.service.arg.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001969 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001970 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001971
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001972wpa_supplicant.exe: wpa_supplicant
1973 mv -f $< $@
1974wpa_cli.exe: wpa_cli
1975 mv -f $< $@
1976wpa_passphrase.exe: wpa_passphrase
1977 mv -f $< $@
1978win_if_list.exe: win_if_list
1979 mv -f $< $@
1980eapol_test.exe: eapol_test
1981 mv -f $< $@
1982
1983WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1984
1985windows-bin: $(WINALL)
1986 $(STRIP) $(WINALL)
1987
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001988wpa_gui:
1989 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001990
1991wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001992 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001993
1994wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1995 lrelease wpa_gui-qt4/wpa_gui.pro
1996
1997wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1998 $(MAKE) -C wpa_gui-qt4
1999
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07002000FIPSDIR=/usr/local/ssl/fips-2.0
2001FIPSLD=$(FIPSDIR)/bin/fipsld
2002fips:
2003 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
2004
Hai Shalom899fcc72020-10-19 14:38:18 -07002005.PHONY: lcov-html
2006lcov-html: $(call BUILDOBJ,wpa_supplicant.gcda)
2007 lcov -c -d $(BUILDDIR) > lcov.info
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002008 genhtml lcov.info --output-directory lcov-html
2009
Hai Shalom899fcc72020-10-19 14:38:18 -07002010clean: common-clean
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002011 $(MAKE) -C ../src clean
2012 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08002013 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
Hai Shalom899fcc72020-10-19 14:38:18 -07002014 rm -f eap_*.so $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002015 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07002016 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002017 rm -f lcov.info
2018 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07002019 rm -f libwpa_client.a
2020 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08002021 rm -f libwpa_test1 libwpa_test2