blob: 1c6911b9bca337eb6706a52e866a71649757aa2b [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
269OBJS += ../src/common/sae_pk.o
270endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800271NEED_ECC=y
272NEED_DH_GROUPS=y
Hai Shalomb755a2a2020-04-23 21:49:02 -0700273NEED_HMAC_SHA256_KDF=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700274NEED_DRAGONFLY=y
Ahmed ElArabawy0ff61c52019-12-26 12:38:39 -0800275ifdef CONFIG_TESTING_OPTIONS
276NEED_DH_GROUPS_ALL=y
277endif
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800278endif
279
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700280ifdef CONFIG_DPP
281CFLAGS += -DCONFIG_DPP
282OBJS += ../src/common/dpp.o
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700283OBJS += ../src/common/dpp_auth.o
284OBJS += ../src/common/dpp_backup.o
285OBJS += ../src/common/dpp_crypto.o
286OBJS += ../src/common/dpp_pkex.o
287OBJS += ../src/common/dpp_reconfig.o
288OBJS += ../src/common/dpp_tcp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700289OBJS += dpp_supplicant.o
290NEED_AES_SIV=y
291NEED_HMAC_SHA256_KDF=y
292NEED_HMAC_SHA384_KDF=y
293NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700294NEED_SHA384=y
295NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700296NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700297NEED_JSON=y
298NEED_GAS_SERVER=y
299NEED_BASE64=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700300NEED_ASN1=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700301ifdef CONFIG_DPP2
302CFLAGS += -DCONFIG_DPP2
303endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800304ifdef CONFIG_DPP3
305CFLAGS += -DCONFIG_DPP3
306endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700307endif
308
309ifdef CONFIG_OWE
310CFLAGS += -DCONFIG_OWE
311NEED_ECC=y
312NEED_HMAC_SHA256_KDF=y
313NEED_HMAC_SHA384_KDF=y
314NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700315NEED_SHA384=y
316NEED_SHA512=y
317endif
318
Jimmy Chencaaac072019-09-16 16:36:06 +0800319ifdef CONFIG_WAPI_INTERFACE
320L_CFLAGS += -DCONFIG_WAPI_INTERFACE
321endif
322
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800323ifdef CONFIG_FILS
324CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800325NEED_SHA384=y
326NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700327ifdef CONFIG_FILS_SK_PFS
328CFLAGS += -DCONFIG_FILS_SK_PFS
329NEED_ECC=y
330endif
331endif
332
333ifdef CONFIG_MBO
334CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800335endif
336
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800337ifdef CONFIG_WNM
338CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700339OBJS += wnm_sta.o
340endif
341
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700342ifdef CONFIG_TDLS
343CFLAGS += -DCONFIG_TDLS
344OBJS += ../src/rsn_supp/tdls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700345endif
346
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800347ifdef CONFIG_TDLS_TESTING
348CFLAGS += -DCONFIG_TDLS_TESTING
349endif
350
Dmitry Shmidt29333592017-01-09 12:27:11 -0800351ifdef CONFIG_PMKSA_CACHE_EXTERNAL
352CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
353endif
354
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700355ifndef CONFIG_NO_WPA
356OBJS += ../src/rsn_supp/wpa.o
357OBJS += ../src/rsn_supp/preauth.o
358OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700359OBJS += ../src/rsn_supp/wpa_ie.o
360OBJS += ../src/common/wpa_common.o
361NEED_AES=y
362NEED_SHA1=y
363NEED_MD5=y
364NEED_RC4=y
365else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700366CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800367ifeq ($(CONFIG_TLS), internal)
368NEED_SHA1=y
369NEED_MD5=y
370endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700371endif
372
373ifdef CONFIG_IBSS_RSN
374NEED_RSN_AUTHENTICATOR=y
375CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700376CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700377OBJS += ibss_rsn.o
378endif
379
Dmitry Shmidte4663042016-04-04 10:07:49 -0700380ifdef CONFIG_MATCH_IFACE
381CFLAGS += -DCONFIG_MATCH_IFACE
382endif
383
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700384ifdef CONFIG_P2P
385OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700386OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700387OBJS += ../src/p2p/p2p.o
388OBJS += ../src/p2p/p2p_utils.o
389OBJS += ../src/p2p/p2p_parse.o
390OBJS += ../src/p2p/p2p_build.o
391OBJS += ../src/p2p/p2p_go_neg.o
392OBJS += ../src/p2p/p2p_sd.o
393OBJS += ../src/p2p/p2p_pd.o
394OBJS += ../src/p2p/p2p_invitation.o
395OBJS += ../src/p2p/p2p_dev_disc.o
396OBJS += ../src/p2p/p2p_group.o
397OBJS += ../src/ap/p2p_hostapd.o
398CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800399NEED_GAS=y
400NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800401CONFIG_WPS=y
402CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700403ifdef CONFIG_P2P_STRICT
404CFLAGS += -DCONFIG_P2P_STRICT
405endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700406ifdef CONFIG_WIFI_DISPLAY
407CFLAGS += -DCONFIG_WIFI_DISPLAY
408OBJS += wifi_display.o
409endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800410endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700411
Hai Shalom60840252021-02-19 19:02:11 -0800412ifdef CONFIG_PASN
413CFLAGS += -DCONFIG_PASN
414CFLAGS += -DCONFIG_PTKSA_CACHE
415NEED_HMAC_SHA256_KDF=y
416NEED_HMAC_SHA384_KDF=y
417NEED_SHA256=y
418NEED_SHA384=y
419OBJS += ../src/common/ptksa_cache.o
420OBJS += pasn_supplicant.o
421endif
422
Dmitry Shmidt04949592012-07-19 12:16:46 -0700423ifdef CONFIG_HS20
424OBJS += hs20_supplicant.o
425CFLAGS += -DCONFIG_HS20
426CONFIG_INTERWORKING=y
427endif
428
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800429ifdef CONFIG_INTERWORKING
430OBJS += interworking.o
431CFLAGS += -DCONFIG_INTERWORKING
432NEED_GAS=y
433endif
434
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700435ifdef CONFIG_NO_ROAMING
436CFLAGS += -DCONFIG_NO_ROAMING
437endif
438
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700439include ../src/drivers/drivers.mak
440ifdef CONFIG_AP
441OBJS_d += $(DRV_BOTH_OBJS)
442CFLAGS += $(DRV_BOTH_CFLAGS)
443LDFLAGS += $(DRV_BOTH_LDFLAGS)
444LIBS += $(DRV_BOTH_LIBS)
445else
446NEED_AP_MLME=
447OBJS_d += $(DRV_WPA_OBJS)
448CFLAGS += $(DRV_WPA_CFLAGS)
449LDFLAGS += $(DRV_WPA_LDFLAGS)
450LIBS += $(DRV_WPA_LIBS)
451endif
452
453ifndef CONFIG_L2_PACKET
454CONFIG_L2_PACKET=linux
455endif
456
457OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
458
459ifeq ($(CONFIG_L2_PACKET), pcap)
460ifdef CONFIG_WINPCAP
461CFLAGS += -DCONFIG_WINPCAP
462LIBS += -lwpcap -lpacket
463LIBS_w += -lwpcap
464else
465LIBS += -ldnet -lpcap
466endif
467endif
468
469ifeq ($(CONFIG_L2_PACKET), winpcap)
470LIBS += -lwpcap -lpacket
471LIBS_w += -lwpcap
472endif
473
474ifeq ($(CONFIG_L2_PACKET), freebsd)
475LIBS += -lpcap
476endif
477
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800478ifdef CONFIG_ERP
479CFLAGS += -DCONFIG_ERP
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800480NEED_HMAC_SHA256_KDF=y
481endif
482
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700483ifdef CONFIG_EAP_TLS
484# EAP-TLS
485ifeq ($(CONFIG_EAP_TLS), dyn)
486CFLAGS += -DEAP_TLS_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800487EAPDYN += eap_tls.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700488else
489CFLAGS += -DEAP_TLS
490OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700491endif
492TLS_FUNCS=y
493CONFIG_IEEE8021X_EAPOL=y
Sunil Ravia04bd252022-05-02 22:54:18 -0700494ifdef CONFIG_EAP_TLSV1_3
495CFLAGS += -DEAP_TLSV1_3
496endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700497endif
498
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700499ifdef CONFIG_EAP_UNAUTH_TLS
500# EAP-UNAUTH-TLS
501CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700502ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700503OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700504TLS_FUNCS=y
505endif
506CONFIG_IEEE8021X_EAPOL=y
507endif
508
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700509ifdef CONFIG_EAP_PEAP
510# EAP-PEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800511SRC_EAP_PEAP = ../src/eap_peer/eap_peap.c ../src/eap_common/eap_peap_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700512ifeq ($(CONFIG_EAP_PEAP), dyn)
513CFLAGS += -DEAP_PEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800514EAPDYN += eap_peap.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700515else
516CFLAGS += -DEAP_PEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800517OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PEAP))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700518endif
519TLS_FUNCS=y
520CONFIG_IEEE8021X_EAPOL=y
521endif
522
523ifdef CONFIG_EAP_TTLS
524# EAP-TTLS
525ifeq ($(CONFIG_EAP_TTLS), dyn)
526CFLAGS += -DEAP_TTLS_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800527EAPDYN += eap_ttls.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700528else
529CFLAGS += -DEAP_TTLS
530OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700531endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700532TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800533ifndef CONFIG_FIPS
534MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700535CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800536endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700537CONFIG_IEEE8021X_EAPOL=y
538endif
539
540ifdef CONFIG_EAP_MD5
541# EAP-MD5
542ifeq ($(CONFIG_EAP_MD5), dyn)
543CFLAGS += -DEAP_MD5_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800544EAPDYN += eap_md5.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700545else
546CFLAGS += -DEAP_MD5
547OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700548endif
549CHAP=y
550CONFIG_IEEE8021X_EAPOL=y
551endif
552
553# backwards compatibility for old spelling
554ifdef CONFIG_MSCHAPV2
555ifndef CONFIG_EAP_MSCHAPV2
556CONFIG_EAP_MSCHAPV2=y
557endif
558endif
559
560ifdef CONFIG_EAP_MSCHAPV2
561# EAP-MSCHAPv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800562SRC_EAP_MSCHAPV2 = ../src/eap_peer/eap_mschapv2.c ../src/eap_peer/mschapv2.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700563ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
564CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800565EAPDYN += eap_mschapv2.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700566else
567CFLAGS += -DEAP_MSCHAPv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800568OBJS += $(patsubst %.c, %.o, $(SRC_EAP_MSCHAPV2))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700569endif
570MS_FUNCS=y
571CONFIG_IEEE8021X_EAPOL=y
572endif
573
574ifdef CONFIG_EAP_GTC
575# EAP-GTC
576ifeq ($(CONFIG_EAP_GTC), dyn)
577CFLAGS += -DEAP_GTC_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800578EAPDYN += eap_gtc.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700579else
580CFLAGS += -DEAP_GTC
581OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700582endif
583CONFIG_IEEE8021X_EAPOL=y
584endif
585
586ifdef CONFIG_EAP_OTP
587# EAP-OTP
588ifeq ($(CONFIG_EAP_OTP), dyn)
589CFLAGS += -DEAP_OTP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800590EAPDYN += eap_otp.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700591else
592CFLAGS += -DEAP_OTP
593OBJS += ../src/eap_peer/eap_otp.o
594endif
595CONFIG_IEEE8021X_EAPOL=y
596endif
597
598ifdef CONFIG_EAP_SIM
599# EAP-SIM
600ifeq ($(CONFIG_EAP_SIM), dyn)
601CFLAGS += -DEAP_SIM_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800602EAPDYN += eap_sim.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700603else
604CFLAGS += -DEAP_SIM
605OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700606endif
607CONFIG_IEEE8021X_EAPOL=y
608CONFIG_EAP_SIM_COMMON=y
609NEED_AES_CBC=y
610endif
611
612ifdef CONFIG_EAP_LEAP
613# EAP-LEAP
614ifeq ($(CONFIG_EAP_LEAP), dyn)
615CFLAGS += -DEAP_LEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800616EAPDYN += eap_leap.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700617else
618CFLAGS += -DEAP_LEAP
619OBJS += ../src/eap_peer/eap_leap.o
620endif
621MS_FUNCS=y
622CONFIG_IEEE8021X_EAPOL=y
623endif
624
625ifdef CONFIG_EAP_PSK
626# EAP-PSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800627SRC_EAP_PSK = ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700628ifeq ($(CONFIG_EAP_PSK), dyn)
629CFLAGS += -DEAP_PSK_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800630EAPDYN += eap_psk.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700631else
632CFLAGS += -DEAP_PSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800633OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PSK))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700634endif
635CONFIG_IEEE8021X_EAPOL=y
636NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700637NEED_AES_ENCBLOCK=y
638NEED_AES_EAX=y
639endif
640
641ifdef CONFIG_EAP_AKA
642# EAP-AKA
643ifeq ($(CONFIG_EAP_AKA), dyn)
644CFLAGS += -DEAP_AKA_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800645EAPDYN += eap_aka.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700646else
647CFLAGS += -DEAP_AKA
648OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700649endif
650CONFIG_IEEE8021X_EAPOL=y
651CONFIG_EAP_SIM_COMMON=y
652NEED_AES_CBC=y
653endif
654
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800655ifdef CONFIG_EAP_PROXY
656CFLAGS += -DCONFIG_EAP_PROXY
657OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700658include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800659CONFIG_IEEE8021X_EAPOL=y
660endif
661
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700662ifdef CONFIG_EAP_AKA_PRIME
663# EAP-AKA'
664ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
665CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
666else
667CFLAGS += -DEAP_AKA_PRIME
668endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700669endif
670
671ifdef CONFIG_EAP_SIM_COMMON
672OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700673NEED_AES=y
674NEED_FIPS186_2_PRF=y
675endif
676
677ifdef CONFIG_EAP_FAST
678# EAP-FAST
Hai Shaloma20dcd72022-02-04 13:43:00 -0800679SRC_EAP_FAST = ../src/eap_peer/eap_fast.c ../src/eap_peer/eap_fast_pac.c
680SRC_EAP_FAST += ../src/eap_common/eap_fast_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700681ifeq ($(CONFIG_EAP_FAST), dyn)
682CFLAGS += -DEAP_FAST_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800683EAPDYN += eap_fast.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700684else
685CFLAGS += -DEAP_FAST
Hai Shaloma20dcd72022-02-04 13:43:00 -0800686OBJS += $(patsubst %.c, %.o, $(SRC_EAP_FAST))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700687endif
688TLS_FUNCS=y
689CONFIG_IEEE8021X_EAPOL=y
690NEED_T_PRF=y
691endif
692
Hai Shalom81f62d82019-07-22 12:10:00 -0700693ifdef CONFIG_EAP_TEAP
694# EAP-TEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800695SRC_EAP_TEAP = ../src/eap_peer/eap_teap.c ../src/eap_peer/eap_teap_pac.c
696SRC_EAP_TEAP += ../src/eap_common/eap_teap_common.c
Hai Shalom81f62d82019-07-22 12:10:00 -0700697ifeq ($(CONFIG_EAP_TEAP), dyn)
698CFLAGS += -DEAP_TEAP_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800699EAPDYN += eap_teap.so
Hai Shalom81f62d82019-07-22 12:10:00 -0700700else
701CFLAGS += -DEAP_TEAP
Hai Shaloma20dcd72022-02-04 13:43:00 -0800702OBJS += $(patsubst %.c, %.o, $(SRC_EAP_TEAP))
Hai Shalom81f62d82019-07-22 12:10:00 -0700703endif
704TLS_FUNCS=y
705CONFIG_IEEE8021X_EAPOL=y
706NEED_T_PRF=y
707NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700708NEED_TLS_PRF_SHA256=y
709NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700710endif
711
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700712ifdef CONFIG_EAP_PAX
713# EAP-PAX
Hai Shaloma20dcd72022-02-04 13:43:00 -0800714SRC_EAP_PAX = ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700715ifeq ($(CONFIG_EAP_PAX), dyn)
716CFLAGS += -DEAP_PAX_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800717EAPDYN += eap_pax.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700718else
719CFLAGS += -DEAP_PAX
Hai Shaloma20dcd72022-02-04 13:43:00 -0800720OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PAX))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700721endif
722CONFIG_IEEE8021X_EAPOL=y
723endif
724
725ifdef CONFIG_EAP_SAKE
726# EAP-SAKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800727SRC_EAP_SAKE = ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700728ifeq ($(CONFIG_EAP_SAKE), dyn)
729CFLAGS += -DEAP_SAKE_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800730EAPDYN += eap_sake.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700731else
732CFLAGS += -DEAP_SAKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800733OBJS += $(patsubst %.c, %.o, $(SRC_EAP_SAKE))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700734endif
735CONFIG_IEEE8021X_EAPOL=y
736endif
737
738ifdef CONFIG_EAP_GPSK
739# EAP-GPSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800740SRC_EAP_GPSK = ../src/eap_peer/eap_gpsk.c ../src/eap_common/eap_gpsk_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700741ifeq ($(CONFIG_EAP_GPSK), dyn)
742CFLAGS += -DEAP_GPSK_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800743EAPDYN += eap_gpsk.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700744else
745CFLAGS += -DEAP_GPSK
Hai Shaloma20dcd72022-02-04 13:43:00 -0800746OBJS += $(patsubst %.c, %.o, $(SRC_EAP_GPSK))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700747endif
748CONFIG_IEEE8021X_EAPOL=y
749ifdef CONFIG_EAP_GPSK_SHA256
750CFLAGS += -DEAP_GPSK_SHA256
751endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700752endif
753
754ifdef CONFIG_EAP_PWD
755CFLAGS += -DEAP_PWD
Roshan Pius3a1667e2018-07-03 15:17:14 -0700756ifeq ($(CONFIG_TLS), wolfssl)
757CFLAGS += -DCONFIG_ECC
758endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700759OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700760CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700761NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700762NEED_DRAGONFLY=y
Sunil Ravia04bd252022-05-02 22:54:18 -0700763MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700764endif
765
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700766ifdef CONFIG_EAP_EKE
767# EAP-EKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800768SRC_EAP_EKE = ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700769ifeq ($(CONFIG_EAP_EKE), dyn)
770CFLAGS += -DEAP_EKE_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800771EAPDYN += eap_eke.so
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700772else
773CFLAGS += -DEAP_EKE
Hai Shaloma20dcd72022-02-04 13:43:00 -0800774OBJS += $(patsubst %.c, %.o, $(SRC_EAP_EKE))
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700775endif
776CONFIG_IEEE8021X_EAPOL=y
777NEED_DH_GROUPS=y
778NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800779NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700780endif
781
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700782ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700783# EAP-WSC
784CFLAGS += -DCONFIG_WPS -DEAP_WSC
785OBJS += wps_supplicant.o
786OBJS += ../src/utils/uuid.o
787OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
788OBJS += ../src/wps/wps.o
789OBJS += ../src/wps/wps_common.o
790OBJS += ../src/wps/wps_attr_parse.o
791OBJS += ../src/wps/wps_attr_build.o
792OBJS += ../src/wps/wps_attr_process.o
793OBJS += ../src/wps/wps_dev_attr.o
794OBJS += ../src/wps/wps_enrollee.o
795OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700796CONFIG_IEEE8021X_EAPOL=y
797NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700798NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700799NEED_AES_CBC=y
800NEED_MODEXP=y
801
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700802ifdef CONFIG_WPS_NFC
803CFLAGS += -DCONFIG_WPS_NFC
804OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700805NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700806endif
807
808ifdef NEED_WPS_OOB
809CFLAGS += -DCONFIG_WPS_OOB
810endif
811
812ifdef CONFIG_WPS_ER
813CONFIG_WPS_UPNP=y
814CFLAGS += -DCONFIG_WPS_ER
815OBJS += ../src/wps/wps_er.o
816OBJS += ../src/wps/wps_er_ssdp.o
817endif
818
819ifdef CONFIG_WPS_UPNP
820CFLAGS += -DCONFIG_WPS_UPNP
821OBJS += ../src/wps/wps_upnp.o
822OBJS += ../src/wps/wps_upnp_ssdp.o
823OBJS += ../src/wps/wps_upnp_web.o
824OBJS += ../src/wps/wps_upnp_event.o
825OBJS += ../src/wps/wps_upnp_ap.o
826OBJS += ../src/wps/upnp_xml.o
827OBJS += ../src/wps/httpread.o
828OBJS += ../src/wps/http_client.o
829OBJS += ../src/wps/http_server.o
830endif
831
832ifdef CONFIG_WPS_STRICT
833CFLAGS += -DCONFIG_WPS_STRICT
834OBJS += ../src/wps/wps_validate.o
835endif
836
837ifdef CONFIG_WPS_TESTING
838CFLAGS += -DCONFIG_WPS_TESTING
839endif
840
841ifdef CONFIG_WPS_REG_DISABLE_OPEN
842CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
843endif
844
845endif
846
847ifdef CONFIG_EAP_IKEV2
848# EAP-IKEv2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800849SRC_EAP_IKEV2 = ../src/eap_peer/eap_ikev2.c
850SRC_EAP_IKEV2 += ../src/eap_peer/ikev2.c
851SRC_EAP_IKEV2 += ../src/eap_common/eap_ikev2_common.c
852SRC_EAP_IKEV2 += ../src/eap_common/ikev2_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700853ifeq ($(CONFIG_EAP_IKEV2), dyn)
854CFLAGS += -DEAP_IKEV2_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800855EAPDYN += eap_ikev2.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700856else
857CFLAGS += -DEAP_IKEV2
Hai Shaloma20dcd72022-02-04 13:43:00 -0800858OBJS += $(patsubst %.c, %.o, $(SRC_EAP_IKEV2))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700859endif
860CONFIG_IEEE8021X_EAPOL=y
861NEED_DH_GROUPS=y
862NEED_DH_GROUPS_ALL=y
863NEED_MODEXP=y
864NEED_CIPHER=y
865endif
866
867ifdef CONFIG_EAP_VENDOR_TEST
868ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
869CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
Hai Shaloma20dcd72022-02-04 13:43:00 -0800870EAPDYN += eap_vendor_test.so
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700871else
872CFLAGS += -DEAP_VENDOR_TEST
873OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700874endif
875CONFIG_IEEE8021X_EAPOL=y
876endif
877
878ifdef CONFIG_EAP_TNC
879# EAP-TNC
880CFLAGS += -DEAP_TNC
881OBJS += ../src/eap_peer/eap_tnc.o
882OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700883NEED_BASE64=y
884ifndef CONFIG_NATIVE_WINDOWS
885ifndef CONFIG_DRIVER_BSD
886LIBS += -ldl
887endif
888endif
889endif
890
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700891ifdef CONFIG_MACSEC
892CFLAGS += -DCONFIG_MACSEC
893CONFIG_IEEE8021X_EAPOL=y
894NEED_AES_ENCBLOCK=y
895NEED_AES_UNWRAP=y
896NEED_AES_WRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700897OBJS += wpas_kay.o
898OBJS += ../src/pae/ieee802_1x_cp.o
899OBJS += ../src/pae/ieee802_1x_kay.o
900OBJS += ../src/pae/ieee802_1x_key.o
901OBJS += ../src/pae/ieee802_1x_secy_ops.o
Hai Shalom81f62d82019-07-22 12:10:00 -0700902ifdef CONFIG_AP
903OBJS += ../src/ap/wpa_auth_kay.o
904endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700905endif
906
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700907ifdef CONFIG_IEEE8021X_EAPOL
908# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
909CFLAGS += -DIEEE8021X_EAPOL
910OBJS += ../src/eapol_supp/eapol_supp_sm.o
911OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
912NEED_EAP_COMMON=y
913ifdef CONFIG_DYNAMIC_EAP_METHODS
914CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
915LIBS += -ldl -rdynamic
916endif
917endif
918
919ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700920NEED_EAP_COMMON=y
921NEED_RSN_AUTHENTICATOR=y
922CFLAGS += -DCONFIG_AP
923OBJS += ap.o
924CFLAGS += -DCONFIG_NO_RADIUS
925CFLAGS += -DCONFIG_NO_ACCOUNTING
926CFLAGS += -DCONFIG_NO_VLAN
927OBJS += ../src/ap/hostapd.o
928OBJS += ../src/ap/wpa_auth_glue.o
929OBJS += ../src/ap/utils.o
930OBJS += ../src/ap/authsrv.o
931OBJS += ../src/ap/ap_config.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700932OBJS += ../src/ap/sta_info.o
933OBJS += ../src/ap/tkip_countermeasures.o
934OBJS += ../src/ap/ap_mlme.o
935OBJS += ../src/ap/ieee802_1x.o
936OBJS += ../src/eapol_auth/eapol_auth_sm.o
937OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800938OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700939OBJS += ../src/ap/drv_callbacks.o
940OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800941OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800942OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800943OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700944OBJS += ../src/ap/neighbor_db.o
945OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700946OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700947ifdef CONFIG_IEEE80211AC
948OBJS += ../src/ap/ieee802_11_vht.o
949endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800950ifdef CONFIG_IEEE80211AX
951OBJS += ../src/ap/ieee802_11_he.o
952endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700953ifdef CONFIG_IEEE80211BE
954OBJS += ../src/ap/ieee802_11_eht.o
955endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700956ifdef CONFIG_WNM_AP
957CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800958OBJS += ../src/ap/wnm_ap.o
959endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800960ifdef CONFIG_MBO
961OBJS += ../src/ap/mbo_ap.o
962endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800963ifdef CONFIG_FILS
964OBJS += ../src/ap/fils_hlp.o
965endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700966ifdef CONFIG_CTRL_IFACE
967OBJS += ../src/ap/ctrl_iface_ap.o
968endif
969
970CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
971OBJS += ../src/eap_server/eap_server.o
972OBJS += ../src/eap_server/eap_server_identity.o
973OBJS += ../src/eap_server/eap_server_methods.o
974
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700975ifdef CONFIG_IEEE80211AC
976CFLAGS += -DCONFIG_IEEE80211AC
977endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700978ifdef CONFIG_IEEE80211BE
979CONFIG_IEEE80211AX=y
980CFLAGS += -DCONFIG_IEEE80211BE
981endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800982ifdef CONFIG_IEEE80211AX
983CFLAGS += -DCONFIG_IEEE80211AX
984endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700985
986ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700987OBJS += ../src/ap/wmm.o
988OBJS += ../src/ap/ap_list.o
989OBJS += ../src/ap/ieee802_11.o
990OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700991OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700992CFLAGS += -DNEED_AP_MLME
993endif
994ifdef CONFIG_WPS
995CFLAGS += -DEAP_SERVER_WSC
996OBJS += ../src/ap/wps_hostapd.o
997OBJS += ../src/eap_server/eap_server_wsc.o
998endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700999ifdef CONFIG_DPP
1000OBJS += ../src/ap/dpp_hostapd.o
1001OBJS += ../src/ap/gas_query_ap.o
Hai Shalomc3565922019-10-28 11:58:20 -07001002NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001003endif
Dmitry Shmidt04949592012-07-19 12:16:46 -07001004ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -07001005NEED_AP_GAS_SERV=y
1006endif
1007ifdef NEED_AP_GAS_SERV
Dmitry Shmidt04949592012-07-19 12:16:46 -07001008OBJS += ../src/ap/gas_serv.o
1009endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001010ifdef CONFIG_HS20
1011OBJS += ../src/ap/hs20.o
1012endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001013endif
1014
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -08001015ifdef CONFIG_MBO
1016OBJS += mbo.o
1017CFLAGS += -DCONFIG_MBO
1018endif
1019
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001020ifdef NEED_RSN_AUTHENTICATOR
1021CFLAGS += -DCONFIG_NO_RADIUS
1022NEED_AES_WRAP=y
1023OBJS += ../src/ap/wpa_auth.o
1024OBJS += ../src/ap/wpa_auth_ie.o
1025OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001026endif
1027
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08001028ifdef CONFIG_ACS
1029CFLAGS += -DCONFIG_ACS
1030OBJS += ../src/ap/acs.o
1031LIBS += -lm
1032endif
1033
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001034ifdef CONFIG_PCSC
1035# PC/SC interface for smartcards (USIM, GSM SIM)
1036CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
1037OBJS += ../src/utils/pcsc_funcs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001038ifdef CONFIG_NATIVE_WINDOWS
1039#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
1040#dynamic symbol loading that is now used in pcsc_funcs.c
1041#LIBS += -lwinscard
1042else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001043ifdef CONFIG_OSX
1044LIBS += -framework PCSC
1045else
Hai Shaloma20dcd72022-02-04 13:43:00 -08001046LIBS += $(shell $(PKG_CONFIG) --libs libpcsclite)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001047endif
1048endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001049endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001050
1051ifdef CONFIG_SIM_SIMULATOR
1052CFLAGS += -DCONFIG_SIM_SIMULATOR
1053NEED_MILENAGE=y
1054endif
1055
1056ifdef CONFIG_USIM_SIMULATOR
1057CFLAGS += -DCONFIG_USIM_SIMULATOR
1058NEED_MILENAGE=y
1059endif
1060
1061ifdef NEED_MILENAGE
1062OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001063NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001064endif
1065
1066ifdef CONFIG_PKCS12
1067CFLAGS += -DPKCS12_FUNCS
1068endif
1069
1070ifdef CONFIG_SMARTCARD
1071CFLAGS += -DCONFIG_SMARTCARD
1072endif
1073
Hai Shalom81f62d82019-07-22 12:10:00 -07001074ifdef NEED_DRAGONFLY
1075OBJS += ../src/common/dragonfly.o
1076endif
1077
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001078ifdef MS_FUNCS
1079OBJS += ../src/crypto/ms_funcs.o
1080NEED_DES=y
1081NEED_MD4=y
1082endif
1083
1084ifdef CHAP
1085OBJS += ../src/eap_common/chap.o
1086endif
1087
1088ifdef TLS_FUNCS
1089NEED_DES=y
Hai Shalom81f62d82019-07-22 12:10:00 -07001090# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and
1091# EAP_TEAP)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001092OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001093ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001094NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001095NEED_SHA1=y
1096NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001097endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001098endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001099
1100ifndef CONFIG_TLS
1101CONFIG_TLS=openssl
1102endif
1103
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001104ifdef CONFIG_TLSV11
1105CFLAGS += -DCONFIG_TLSV11
1106endif
1107
1108ifdef CONFIG_TLSV12
1109CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001110endif
1111
Roshan Pius3a1667e2018-07-03 15:17:14 -07001112ifeq ($(CONFIG_TLS), wolfssl)
1113ifdef TLS_FUNCS
Hai Shalom4fbc08f2020-05-18 12:37:00 -07001114CFLAGS += -DWOLFSSL_DER_LOAD
Roshan Pius3a1667e2018-07-03 15:17:14 -07001115OBJS += ../src/crypto/tls_wolfssl.o
1116endif
1117OBJS += ../src/crypto/crypto_wolfssl.o
1118OBJS_p += ../src/crypto/crypto_wolfssl.o
1119ifdef NEED_FIPS186_2_PRF
1120OBJS += ../src/crypto/fips_prf_wolfssl.o
1121endif
1122NEED_TLS_PRF_SHA256=y
1123LIBS += -lwolfssl -lm
1124LIBS_p += -lwolfssl -lm
1125endif
1126
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001127ifeq ($(CONFIG_TLS), openssl)
Sunil Ravia04bd252022-05-02 22:54:18 -07001128CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001129ifdef TLS_FUNCS
1130CFLAGS += -DEAP_TLS_OPENSSL
1131OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001132OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001133LIBS += -lssl
1134endif
1135OBJS += ../src/crypto/crypto_openssl.o
1136OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001137OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001138ifdef NEED_FIPS186_2_PRF
1139OBJS += ../src/crypto/fips_prf_openssl.o
1140endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001141NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001142LIBS += -lcrypto
1143LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001144ifdef CONFIG_TLS_ADD_DL
1145LIBS += -ldl
1146LIBS_p += -ldl
1147endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001148ifndef CONFIG_TLS_DEFAULT_CIPHERS
1149CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1150endif
1151CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001152endif
1153
1154ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001155ifndef CONFIG_CRYPTO
1156# default to libgcrypt
1157CONFIG_CRYPTO=gnutls
1158endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001159ifdef TLS_FUNCS
1160OBJS += ../src/crypto/tls_gnutls.o
1161LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001162endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001163OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1164OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1165OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001166ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001167OBJS += ../src/crypto/fips_prf_internal.o
1168SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001169endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001170ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001171LIBS += -lgcrypt
1172LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001173CONFIG_INTERNAL_RC4=y
1174CONFIG_INTERNAL_DH_GROUP5=y
1175endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001176ifeq ($(CONFIG_CRYPTO), nettle)
1177LIBS += -lnettle -lgmp
1178LIBS_p += -lnettle -lgmp
1179CONFIG_INTERNAL_RC4=y
1180CONFIG_INTERNAL_DH_GROUP5=y
1181endif
1182endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001183
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001184ifeq ($(CONFIG_TLS), internal)
1185ifndef CONFIG_CRYPTO
1186CONFIG_CRYPTO=internal
1187endif
1188ifdef TLS_FUNCS
1189OBJS += ../src/crypto/crypto_internal-rsa.o
1190OBJS += ../src/crypto/tls_internal.o
1191OBJS += ../src/tls/tlsv1_common.o
1192OBJS += ../src/tls/tlsv1_record.o
1193OBJS += ../src/tls/tlsv1_cred.o
1194OBJS += ../src/tls/tlsv1_client.o
1195OBJS += ../src/tls/tlsv1_client_write.o
1196OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001197OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001198OBJS += ../src/tls/rsa.o
1199OBJS += ../src/tls/x509v3.o
1200OBJS += ../src/tls/pkcs1.o
1201OBJS += ../src/tls/pkcs5.o
1202OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001203NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001204NEED_BASE64=y
1205NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001206ifdef CONFIG_TLSV12
1207NEED_TLS_PRF_SHA256=y
1208endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001209NEED_MODEXP=y
1210NEED_CIPHER=y
1211CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1212endif
1213ifdef NEED_CIPHER
1214NEED_DES=y
1215OBJS += ../src/crypto/crypto_internal-cipher.o
1216endif
1217ifdef NEED_MODEXP
1218OBJS += ../src/crypto/crypto_internal-modexp.o
1219OBJS += ../src/tls/bignum.o
1220endif
1221ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1222OBJS += ../src/crypto/crypto_libtomcrypt.o
1223OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1224LIBS += -ltomcrypt -ltfm
1225LIBS_p += -ltomcrypt -ltfm
1226CONFIG_INTERNAL_SHA256=y
1227CONFIG_INTERNAL_RC4=y
1228CONFIG_INTERNAL_DH_GROUP5=y
1229endif
1230ifeq ($(CONFIG_CRYPTO), internal)
1231OBJS += ../src/crypto/crypto_internal.o
1232OBJS_p += ../src/crypto/crypto_internal.o
1233NEED_AES_ENC=y
1234CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1235ifdef CONFIG_INTERNAL_LIBTOMMATH
1236CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1237ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1238CFLAGS += -DLTM_FAST
1239endif
1240else
1241LIBS += -ltommath
1242LIBS_p += -ltommath
1243endif
1244CONFIG_INTERNAL_AES=y
1245CONFIG_INTERNAL_DES=y
1246CONFIG_INTERNAL_SHA1=y
1247CONFIG_INTERNAL_MD4=y
1248CONFIG_INTERNAL_MD5=y
1249CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001250CONFIG_INTERNAL_SHA384=y
1251CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001252CONFIG_INTERNAL_RC4=y
1253CONFIG_INTERNAL_DH_GROUP5=y
1254endif
1255ifeq ($(CONFIG_CRYPTO), cryptoapi)
1256OBJS += ../src/crypto/crypto_cryptoapi.o
1257OBJS_p += ../src/crypto/crypto_cryptoapi.o
1258CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1259CONFIG_INTERNAL_SHA256=y
1260CONFIG_INTERNAL_RC4=y
1261endif
1262endif
1263
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001264ifeq ($(CONFIG_TLS), linux)
1265OBJS += ../src/crypto/crypto_linux.o
1266OBJS_p += ../src/crypto/crypto_linux.o
1267ifdef TLS_FUNCS
1268OBJS += ../src/crypto/crypto_internal-rsa.o
1269OBJS += ../src/crypto/tls_internal.o
1270OBJS += ../src/tls/tlsv1_common.o
1271OBJS += ../src/tls/tlsv1_record.o
1272OBJS += ../src/tls/tlsv1_cred.o
1273OBJS += ../src/tls/tlsv1_client.o
1274OBJS += ../src/tls/tlsv1_client_write.o
1275OBJS += ../src/tls/tlsv1_client_read.o
1276OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001277OBJS += ../src/tls/rsa.o
1278OBJS += ../src/tls/x509v3.o
1279OBJS += ../src/tls/pkcs1.o
1280OBJS += ../src/tls/pkcs5.o
1281OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -07001282NEED_ASN1=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001283NEED_BASE64=y
1284NEED_TLS_PRF=y
1285ifdef CONFIG_TLSV12
1286NEED_TLS_PRF_SHA256=y
1287endif
1288NEED_MODEXP=y
1289NEED_CIPHER=y
1290CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1291endif
1292ifdef NEED_MODEXP
1293OBJS += ../src/crypto/crypto_internal-modexp.o
1294OBJS += ../src/tls/bignum.o
1295CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1296CFLAGS += -DLTM_FAST
1297endif
1298CONFIG_INTERNAL_DH_GROUP5=y
1299ifdef NEED_FIPS186_2_PRF
1300OBJS += ../src/crypto/fips_prf_internal.o
1301OBJS += ../src/crypto/sha1-internal.o
1302endif
1303endif
1304
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001305ifeq ($(CONFIG_TLS), none)
1306ifdef TLS_FUNCS
1307OBJS += ../src/crypto/tls_none.o
1308CFLAGS += -DEAP_TLS_NONE
1309CONFIG_INTERNAL_AES=y
1310CONFIG_INTERNAL_SHA1=y
1311CONFIG_INTERNAL_MD5=y
1312endif
1313OBJS += ../src/crypto/crypto_none.o
1314OBJS_p += ../src/crypto/crypto_none.o
1315CONFIG_INTERNAL_SHA256=y
1316CONFIG_INTERNAL_RC4=y
1317endif
1318
1319ifdef TLS_FUNCS
1320ifdef CONFIG_SMARTCARD
1321ifndef CONFIG_NATIVE_WINDOWS
1322ifneq ($(CONFIG_L2_PACKET), freebsd)
1323LIBS += -ldl
1324endif
1325endif
1326endif
1327endif
1328
1329ifndef TLS_FUNCS
1330OBJS += ../src/crypto/tls_none.o
1331ifeq ($(CONFIG_TLS), internal)
1332CONFIG_INTERNAL_AES=y
1333CONFIG_INTERNAL_SHA1=y
1334CONFIG_INTERNAL_MD5=y
1335CONFIG_INTERNAL_RC4=y
1336endif
1337endif
1338
1339AESOBJS = # none so far (see below)
1340ifdef CONFIG_INTERNAL_AES
1341AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1342endif
1343
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001344ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001345ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001346NEED_INTERNAL_AES_WRAP=y
1347endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001348endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001349ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1350# Seems to be needed at least with BoringSSL
1351NEED_INTERNAL_AES_WRAP=y
1352CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1353endif
1354ifdef CONFIG_FIPS
1355# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1356# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1357NEED_INTERNAL_AES_WRAP=y
1358endif
1359
1360ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001361ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001362AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001363endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001364endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001365ifdef NEED_AES_EAX
1366AESOBJS += ../src/crypto/aes-eax.o
1367NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001368endif
1369ifdef NEED_AES_SIV
1370AESOBJS += ../src/crypto/aes-siv.o
1371NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001372endif
1373ifdef NEED_AES_CTR
1374AESOBJS += ../src/crypto/aes-ctr.o
1375endif
1376ifdef NEED_AES_ENCBLOCK
1377AESOBJS += ../src/crypto/aes-encblock.o
1378endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001379NEED_AES_ENC=y
Sunil Ravia04bd252022-05-02 22:54:18 -07001380ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001381ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001382ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001383AESOBJS += ../src/crypto/aes-omac1.o
1384endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001385endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001386endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001387ifdef NEED_AES_WRAP
1388NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001389ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001390AESOBJS += ../src/crypto/aes-wrap.o
1391endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001392endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001393ifdef NEED_AES_CBC
1394NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001395ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001396ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001397ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001398AESOBJS += ../src/crypto/aes-cbc.o
1399endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001400endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001401endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001402endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001403ifdef NEED_AES_ENC
1404ifdef CONFIG_INTERNAL_AES
1405AESOBJS += ../src/crypto/aes-internal-enc.o
1406endif
1407endif
1408ifdef NEED_AES
1409OBJS += $(AESOBJS)
1410endif
1411
1412ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001413ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001414ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001415ifneq ($(CONFIG_TLS), gnutls)
1416ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001417SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001418endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001419endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001420endif
1421endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001422SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001423ifdef CONFIG_INTERNAL_SHA1
1424SHA1OBJS += ../src/crypto/sha1-internal.o
1425ifdef NEED_FIPS186_2_PRF
1426SHA1OBJS += ../src/crypto/fips_prf_internal.o
1427endif
1428endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001429ifdef CONFIG_NO_WPA_PASSPHRASE
1430CFLAGS += -DCONFIG_NO_PBKDF2
1431else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001432ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001433ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001434SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1435endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001436endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001437endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001438ifdef NEED_T_PRF
1439SHA1OBJS += ../src/crypto/sha1-tprf.o
1440endif
1441ifdef NEED_TLS_PRF
1442SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1443endif
1444endif
1445
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001446ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001447ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001448ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001449ifneq ($(CONFIG_TLS), gnutls)
1450ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001451MD5OBJS += ../src/crypto/md5.o
1452endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001453endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001454endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001455endif
1456endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001457ifdef NEED_MD5
1458ifdef CONFIG_INTERNAL_MD5
1459MD5OBJS += ../src/crypto/md5-internal.o
1460endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001461OBJS += $(MD5OBJS)
1462OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001463OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001464endif
1465
1466ifdef NEED_MD4
1467ifdef CONFIG_INTERNAL_MD4
1468OBJS += ../src/crypto/md4-internal.o
1469endif
1470endif
1471
1472DESOBJS = # none needed when not internal
1473ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001474ifndef CONFIG_FIPS
1475CFLAGS += -DCONFIG_DES
1476endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001477ifdef CONFIG_INTERNAL_DES
1478DESOBJS += ../src/crypto/des-internal.o
1479endif
1480endif
1481
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001482ifdef CONFIG_NO_RC4
1483CFLAGS += -DCONFIG_NO_RC4
1484endif
1485
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001486ifdef NEED_RC4
1487ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001488ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001489OBJS += ../src/crypto/rc4.o
1490endif
1491endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001492endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001493
Sunil Ravia04bd252022-05-02 22:54:18 -07001494ifdef CONFIG_SAE
1495ifdef NEED_SHA384
1496# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled.
1497NEED_HMAC_SHA384_KDF=y
1498endif
1499ifdef NEED_SHA512
1500# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled.
1501NEED_HMAC_SHA512_KDF=y
1502endif
1503endif
1504
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001505SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001506CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001507ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001508ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001509ifneq ($(CONFIG_TLS), gnutls)
1510ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001511SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001512endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001513endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001514endif
1515endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001516SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001517ifdef CONFIG_INTERNAL_SHA256
1518SHA256OBJS += ../src/crypto/sha256-internal.o
1519endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001520ifdef CONFIG_INTERNAL_SHA384
1521CFLAGS += -DCONFIG_INTERNAL_SHA384
1522SHA256OBJS += ../src/crypto/sha384-internal.o
1523endif
1524ifdef CONFIG_INTERNAL_SHA512
1525CFLAGS += -DCONFIG_INTERNAL_SHA512
1526SHA256OBJS += ../src/crypto/sha512-internal.o
1527endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001528ifdef NEED_TLS_PRF_SHA256
1529SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1530endif
Hai Shalomc3565922019-10-28 11:58:20 -07001531ifdef NEED_TLS_PRF_SHA384
1532SHA256OBJS += ../src/crypto/sha384-tlsprf.o
1533endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001534ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001535CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001536OBJS += ../src/crypto/sha256-kdf.o
1537endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001538ifdef NEED_HMAC_SHA384_KDF
1539CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1540OBJS += ../src/crypto/sha384-kdf.o
1541endif
1542ifdef NEED_HMAC_SHA512_KDF
1543CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1544OBJS += ../src/crypto/sha512-kdf.o
1545endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001546OBJS += $(SHA256OBJS)
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001547ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001548ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001549ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001550ifneq ($(CONFIG_TLS), gnutls)
1551ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001552OBJS += ../src/crypto/sha384.o
1553endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001554endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001555endif
1556endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001557CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001558OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001559endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001560ifdef NEED_SHA512
1561ifneq ($(CONFIG_TLS), openssl)
1562ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001563ifneq ($(CONFIG_TLS), gnutls)
1564ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001565OBJS += ../src/crypto/sha512.o
1566endif
1567endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001568endif
1569endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001570CFLAGS += -DCONFIG_SHA512
1571OBJS += ../src/crypto/sha512-prf.o
1572endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001573
Hai Shalomfdcde762020-04-02 11:19:20 -07001574ifdef NEED_ASN1
1575OBJS += ../src/tls/asn1.o
1576endif
1577
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001578ifdef NEED_DH_GROUPS
1579OBJS += ../src/crypto/dh_groups.o
1580endif
1581ifdef NEED_DH_GROUPS_ALL
1582CFLAGS += -DALL_DH_GROUPS
1583endif
1584ifdef CONFIG_INTERNAL_DH_GROUP5
1585ifdef NEED_DH_GROUPS
1586OBJS += ../src/crypto/dh_group5.o
1587endif
1588endif
1589
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001590ifdef NEED_ECC
1591CFLAGS += -DCONFIG_ECC
1592endif
1593
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001594ifdef CONFIG_NO_RANDOM_POOL
1595CFLAGS += -DCONFIG_NO_RANDOM_POOL
1596else
Hai Shalom74f70d42019-02-11 14:42:39 -08001597ifdef CONFIG_GETRANDOM
1598CFLAGS += -DCONFIG_GETRANDOM
1599endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001600OBJS += ../src/crypto/random.o
1601endif
1602
1603ifdef CONFIG_CTRL_IFACE
1604ifeq ($(CONFIG_CTRL_IFACE), y)
1605ifdef CONFIG_NATIVE_WINDOWS
1606CONFIG_CTRL_IFACE=named_pipe
1607else
1608CONFIG_CTRL_IFACE=unix
1609endif
1610endif
1611CFLAGS += -DCONFIG_CTRL_IFACE
1612ifeq ($(CONFIG_CTRL_IFACE), unix)
1613CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001614OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001615endif
1616ifeq ($(CONFIG_CTRL_IFACE), udp)
1617CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1618endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001619ifeq ($(CONFIG_CTRL_IFACE), udp6)
1620CONFIG_CTRL_IFACE=udp
1621CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1622CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1623endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001624ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1625CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1626endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001627ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1628CONFIG_CTRL_IFACE=udp
1629CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1630CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1631endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001632ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1633CONFIG_CTRL_IFACE=udp
1634CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1635CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1636CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1637endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001638OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1639endif
1640
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001641ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001642CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1643OBJS += dbus/dbus_dict_helpers.o
1644OBJS += dbus/dbus_new_helpers.o
1645OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1646OBJS += dbus/dbus_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001647ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001648OBJS += dbus/dbus_new_handlers_wps.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001649endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001650ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001651OBJS += dbus/dbus_new_handlers_p2p.o
Jouni Malinen75ecf522011-06-27 15:19:46 -07001652endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001653ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001654DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001655endif
1656ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001657DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001658endif
1659ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001660OBJS += dbus/dbus_new_introspect.o
1661CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001662endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001663CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001664LIBS += $(DBUS_LIBS)
Hai Shalom021b0b52019-04-10 11:17:58 -07001665endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001666
1667ifdef CONFIG_READLINE
1668OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001669LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001670else
1671ifdef CONFIG_WPA_CLI_EDIT
1672OBJS_c += ../src/utils/edit.o
1673else
1674OBJS_c += ../src/utils/edit_simple.o
1675endif
1676endif
1677
1678ifdef CONFIG_NATIVE_WINDOWS
1679CFLAGS += -DCONFIG_NATIVE_WINDOWS
1680LIBS += -lws2_32 -lgdi32 -lcrypt32
1681LIBS_c += -lws2_32
1682LIBS_p += -lws2_32 -lgdi32
1683ifeq ($(CONFIG_CRYPTO), cryptoapi)
1684LIBS_p += -lcrypt32
1685endif
1686endif
1687
1688ifdef CONFIG_NO_STDOUT_DEBUG
1689CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1690ifndef CONFIG_CTRL_IFACE
1691CFLAGS += -DCONFIG_NO_WPA_MSG
1692endif
1693endif
1694
1695ifdef CONFIG_IPV6
1696# for eapol_test only
1697CFLAGS += -DCONFIG_IPV6
1698endif
1699
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001700ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1701CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1702endif
1703
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001704ifdef NEED_BASE64
1705OBJS += ../src/utils/base64.o
1706endif
1707
1708ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001709OBJS += sme.o
1710CFLAGS += -DCONFIG_SME
1711endif
1712
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001713OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001714OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001715
1716ifdef NEED_EAP_COMMON
1717OBJS += ../src/eap_common/eap_common.o
1718endif
1719
1720ifndef CONFIG_MAIN
1721CONFIG_MAIN=main
1722endif
1723
1724ifdef CONFIG_DEBUG_SYSLOG
1725CFLAGS += -DCONFIG_DEBUG_SYSLOG
1726ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1727CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1728endif
1729endif
1730
Dmitry Shmidt04949592012-07-19 12:16:46 -07001731ifdef CONFIG_DEBUG_LINUX_TRACING
1732CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1733endif
1734
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001735ifdef CONFIG_DEBUG_FILE
1736CFLAGS += -DCONFIG_DEBUG_FILE
1737endif
1738
1739ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1740CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1741endif
1742
1743ifdef CONFIG_FIPS
1744CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001745ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001746ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001747$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1748endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001749endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001750endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001751
1752OBJS += $(SHA1OBJS) $(DESOBJS)
1753
1754OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001755OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001756OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001757
1758ifdef CONFIG_BGSCAN_SIMPLE
1759CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1760OBJS += bgscan_simple.o
1761NEED_BGSCAN=y
1762endif
1763
1764ifdef CONFIG_BGSCAN_LEARN
1765CFLAGS += -DCONFIG_BGSCAN_LEARN
1766OBJS += bgscan_learn.o
1767NEED_BGSCAN=y
1768endif
1769
1770ifdef NEED_BGSCAN
1771CFLAGS += -DCONFIG_BGSCAN
1772OBJS += bgscan.o
1773endif
1774
Dmitry Shmidt04949592012-07-19 12:16:46 -07001775ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1776CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1777OBJS += autoscan_exponential.o
1778NEED_AUTOSCAN=y
1779endif
1780
1781ifdef CONFIG_AUTOSCAN_PERIODIC
1782CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1783OBJS += autoscan_periodic.o
1784NEED_AUTOSCAN=y
1785endif
1786
1787ifdef NEED_AUTOSCAN
1788CFLAGS += -DCONFIG_AUTOSCAN
1789OBJS += autoscan.o
1790endif
1791
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001792ifdef CONFIG_EXT_PASSWORD_TEST
1793OBJS += ../src/utils/ext_password_test.o
1794CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1795NEED_EXT_PASSWORD=y
1796endif
1797
Hai Shalom60840252021-02-19 19:02:11 -08001798ifdef CONFIG_EXT_PASSWORD_FILE
1799OBJS += ../src/utils/ext_password_file.o
1800CFLAGS += -DCONFIG_EXT_PASSWORD_FILE
1801NEED_EXT_PASSWORD=y
1802endif
1803
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001804ifdef NEED_EXT_PASSWORD
1805OBJS += ../src/utils/ext_password.o
1806CFLAGS += -DCONFIG_EXT_PASSWORD
1807endif
1808
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001809ifdef NEED_GAS_SERVER
1810OBJS += ../src/common/gas_server.o
1811CFLAGS += -DCONFIG_GAS_SERVER
1812NEED_GAS=y
1813endif
1814
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001815ifdef NEED_GAS
1816OBJS += ../src/common/gas.o
1817OBJS += gas_query.o
1818CFLAGS += -DCONFIG_GAS
1819NEED_OFFCHANNEL=y
1820endif
1821
1822ifdef NEED_OFFCHANNEL
1823OBJS += offchannel.o
1824CFLAGS += -DCONFIG_OFFCHANNEL
1825endif
1826
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001827ifdef NEED_JSON
1828OBJS += ../src/utils/json.o
1829CFLAGS += -DCONFIG_JSON
1830endif
1831
Dmitry Shmidt71757432014-06-02 13:50:35 -07001832ifdef CONFIG_MODULE_TESTS
1833CFLAGS += -DCONFIG_MODULE_TESTS
1834OBJS += wpas_module_tests.o
1835OBJS += ../src/utils/utils_module_tests.o
1836OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001837OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001838ifdef CONFIG_WPS
1839OBJS += ../src/wps/wps_module_tests.o
1840endif
1841endif
1842
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001843OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001844OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001845
Hai Shalom60840252021-02-19 19:02:11 -08001846OBJS += wpa_supplicant.o events.o bssid_ignore.o wpas_glue.o scan.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001847OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1848OBJS_t += ../src/radius/radius_client.o
1849OBJS_t += ../src/radius/radius.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001850OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001851
1852OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1853OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1854
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001855OBJS += $(CONFIG_MAIN).o
1856
1857ifdef CONFIG_PRIVSEP
1858OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1859OBJS_priv += $(OBJS_l2)
1860OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1861OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1862OBJS_priv += ../src/utils/common.o
1863OBJS_priv += ../src/utils/wpa_debug.o
1864OBJS_priv += ../src/utils/wpabuf.o
1865OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001866ifdef CONFIG_DRIVER_NL80211
1867OBJS_priv += ../src/common/ieee802_11_common.o
1868endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001869OBJS += ../src/l2_packet/l2_packet_privsep.o
1870OBJS += ../src/drivers/driver_privsep.o
1871EXTRA_progs += wpa_priv
1872else
1873OBJS += $(OBJS_d) ../src/drivers/drivers.o
1874OBJS += $(OBJS_l2)
1875endif
1876
1877ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1878CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1879OBJS += ../src/drivers/ndis_events.o
1880EXTRALIBS += -loleaut32 -lole32 -luuid
1881ifdef PLATFORMSDKLIB
1882EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1883else
1884EXTRALIBS += WbemUuid.Lib
1885endif
1886endif
1887
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001888ifdef CONFIG_FST
1889CFLAGS += -DCONFIG_FST
1890ifdef CONFIG_FST_TEST
1891CFLAGS += -DCONFIG_FST_TEST
1892endif
1893FST_OBJS += ../src/fst/fst.o
1894FST_OBJS += ../src/fst/fst_session.o
1895FST_OBJS += ../src/fst/fst_iface.o
1896FST_OBJS += ../src/fst/fst_group.o
1897FST_OBJS += ../src/fst/fst_ctrl_aux.o
1898ifdef CONFIG_CTRL_IFACE
1899FST_OBJS += ../src/fst/fst_ctrl_iface.o
1900endif
1901OBJS += $(FST_OBJS)
1902OBJS_t += $(FST_OBJS)
1903OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001904OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001905endif
1906
Hai Shalomfdcde762020-04-02 11:19:20 -07001907ifdef CONFIG_WEP
1908CFLAGS += -DCONFIG_WEP
1909endif
1910
Hai Shalomb755a2a2020-04-23 21:49:02 -07001911ifdef CONFIG_NO_TKIP
1912CFLAGS += -DCONFIG_NO_TKIP
1913endif
1914
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001915dynamic_eap_methods: $(EAPDYN)
1916
Hai Shalom899fcc72020-10-19 14:38:18 -07001917_OBJS_VAR := OBJS_priv
1918include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001919wpa_priv: $(BCHECK) $(OBJS_priv)
1920 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1921 @$(E) " LD " $@
1922
Hai Shalom899fcc72020-10-19 14:38:18 -07001923_OBJS_VAR := OBJS
1924include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001925wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001926 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1927 @$(E) " LD " $@
1928
Hai Shalom899fcc72020-10-19 14:38:18 -07001929_OBJS_VAR := OBJS_t
1930include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001931eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001932 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1933 @$(E) " LD " $@
1934
Hai Shalom899fcc72020-10-19 14:38:18 -07001935_OBJS_VAR := OBJS_t2
1936include ../src/objs.mk
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001937preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001938 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1939 @$(E) " LD " $@
1940
Hai Shalom899fcc72020-10-19 14:38:18 -07001941_OBJS_VAR := OBJS_p
1942include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001943wpa_passphrase: $(OBJS_p)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001944 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001945 @$(E) " LD " $@
1946
Hai Shalom899fcc72020-10-19 14:38:18 -07001947_OBJS_VAR := OBJS_c
1948include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001949wpa_cli: $(OBJS_c)
1950 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1951 @$(E) " LD " $@
1952
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001953LIBCTRL += ../src/common/wpa_ctrl.o
1954LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001955LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001956LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001957LIBCTRLSO += ../src/common/wpa_ctrl.c
1958LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001959LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001960LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001961
Hai Shalom899fcc72020-10-19 14:38:18 -07001962_OBJS_VAR := LIBCTRL
1963include ../src/objs.mk
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001964libwpa_client.a: $(LIBCTRL)
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001965 $(Q)rm -f $@
1966 $(Q)$(AR) crs $@ $?
1967 @$(E) " AR " $@
1968
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001969libwpa_client.so: $(LIBCTRLSO)
1970 @$(E) " CC $@ ($^)"
1971 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1972
Hai Shalom899fcc72020-10-19 14:38:18 -07001973OBJS_wpatest := libwpa_test.o
1974_OBJS_VAR := OBJS_wpatest
1975include ../src/objs.mk
1976libwpa_test1: $(OBJS_wpatest) libwpa_client.a
1977 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001978 @$(E) " LD " $@
1979
Hai Shalom899fcc72020-10-19 14:38:18 -07001980libwpa_test2: $(OBJS_wpatest) libwpa_client.so
1981 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001982 @$(E) " LD " $@
1983
Hai Shalom899fcc72020-10-19 14:38:18 -07001984_OBJS_VAR := OBJS_nfc
1985include ../src/objs.mk
Dmitry Shmidt04949592012-07-19 12:16:46 -07001986nfc_pw_token: $(OBJS_nfc)
1987 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1988 @$(E) " LD " $@
1989
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001990win_if_list: win_if_list.c
1991 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1992 @$(E) " LD " $@
1993
Hai Shaloma20dcd72022-02-04 13:43:00 -08001994eap_psk.so: $(SRC_EAP_PSK)
1995 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001996 -Deap_peer_psk_register=eap_peer_method_dynamic_init
Hai Shaloma20dcd72022-02-04 13:43:00 -08001997 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001998
Hai Shaloma20dcd72022-02-04 13:43:00 -08001999eap_pax.so: $(SRC_EAP_PAX)
2000 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2001 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2002 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002003
Hai Shaloma20dcd72022-02-04 13:43:00 -08002004eap_peap.so: $(SRC_EAP_PEAP)
2005 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2006 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2007 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002008
Hai Shaloma20dcd72022-02-04 13:43:00 -08002009eap_sake.so: $(SRC_EAP_SAKE)
2010 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2011 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2012 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002013
Hai Shaloma20dcd72022-02-04 13:43:00 -08002014eap_ikev2.so: $(SRC_EAP_IKEV2)
2015 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2016 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2017 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002018
Hai Shaloma20dcd72022-02-04 13:43:00 -08002019eap_eke.so: $(SRC_EAP_EKE)
2020 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2021 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2022 @$(E) " CC/LD " $@
Dmitry Shmidt34af3062013-07-11 10:46:32 -07002023
Hai Shaloma20dcd72022-02-04 13:43:00 -08002024eap_mschapv2.so: $(SRC_EAP_MSCHAPV2)
2025 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2026 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2027 @$(E) " CC/LD " $@
2028
2029eap_fast.so: $(SRC_EAP_FAST)
2030 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2031 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2032 @$(E) " CC/LD " $@
2033
2034eap_teap.so: $(SRC_EAP_TEAP)
2035 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2036 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2037 @$(E) " CC/LD " $@
2038
2039eap_gpsk.so: $(SRC_EAP_GPSK)
2040 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
2041 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
2042 @$(E) " CC/LD " $@
2043
2044%.so: ../src/eap_peer/%.c
2045 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002046 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
Hai Shaloma20dcd72022-02-04 13:43:00 -08002047 @$(E) " CC/LD " $@
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002048
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002049%.service: %.service.in
Hai Shalom021b0b52019-04-10 11:17:58 -07002050 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08002051 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002052
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08002053%@.service: %.service.arg.in
Hai Shalom021b0b52019-04-10 11:17:58 -07002054 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08002055 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08002056
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002057wpa_supplicant.exe: wpa_supplicant
2058 mv -f $< $@
2059wpa_cli.exe: wpa_cli
2060 mv -f $< $@
2061wpa_passphrase.exe: wpa_passphrase
2062 mv -f $< $@
2063win_if_list.exe: win_if_list
2064 mv -f $< $@
2065eapol_test.exe: eapol_test
2066 mv -f $< $@
2067
2068WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
2069
2070windows-bin: $(WINALL)
2071 $(STRIP) $(WINALL)
2072
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002073wpa_gui:
2074 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002075
2076wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07002077 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002078
2079wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
2080 lrelease wpa_gui-qt4/wpa_gui.pro
2081
2082wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
2083 $(MAKE) -C wpa_gui-qt4
2084
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07002085FIPSDIR=/usr/local/ssl/fips-2.0
2086FIPSLD=$(FIPSDIR)/bin/fipsld
2087fips:
2088 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
2089
Hai Shalom899fcc72020-10-19 14:38:18 -07002090.PHONY: lcov-html
2091lcov-html: $(call BUILDOBJ,wpa_supplicant.gcda)
2092 lcov -c -d $(BUILDDIR) > lcov.info
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002093 genhtml lcov.info --output-directory lcov-html
2094
Hai Shalom899fcc72020-10-19 14:38:18 -07002095clean: common-clean
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002096 $(MAKE) -C ../src clean
2097 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08002098 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
Hai Shalom899fcc72020-10-19 14:38:18 -07002099 rm -f eap_*.so $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002100 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07002101 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002102 rm -f lcov.info
2103 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07002104 rm -f libwpa_client.a
2105 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08002106 rm -f libwpa_test1 libwpa_test2
Sunil Ravia04bd252022-05-02 22:54:18 -07002107 rm -f wpa_passphrase