blob: b478466c0f91d18b38a718aa8527a1d599dd8622 [file] [log] [blame]
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001ifndef CC
2CC=gcc
3endif
4
5ifndef CFLAGS
6CFLAGS = -MMD -O2 -Wall -g
7endif
8
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08009ifdef LIBS
10# If LIBS is set with some global build system defaults, clone those for
11# LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well.
12ifndef LIBS_c
13LIBS_c := $(LIBS)
14endif
15ifndef LIBS_p
16LIBS_p := $(LIBS)
17endif
18endif
19
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070020export LIBDIR ?= /usr/local/lib/
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070021export INCDIR ?= /usr/local/include/
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070022export BINDIR ?= /usr/local/sbin/
Dmitry Shmidtc55524a2011-07-07 11:18:38 -070023PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070024
Dmitry Shmidt216983b2015-02-06 10:50:36 -080025CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080026CFLAGS += -I$(abspath ../src)
27CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070028
Jouni Malinen75ecf522011-06-27 15:19:46 -070029-include .config
30
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080031ifndef CONFIG_NO_GITVER
32# Add VERSION_STR postfix for builds from a git repository
33ifeq ($(wildcard ../.git),../.git)
34GITVER := $(shell git describe --dirty=+)
35ifneq ($(GITVER),)
36CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
37endif
38endif
39endif
40
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080041ifdef CONFIG_TESTING_OPTIONS
42CFLAGS += -DCONFIG_TESTING_OPTIONS
43CONFIG_WPS_TESTING=y
44CONFIG_TDLS_TESTING=y
45endif
46
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080047BINALL=wpa_supplicant wpa_cli
Jouni Malinen75ecf522011-06-27 15:19:46 -070048
49ifndef CONFIG_NO_WPA_PASSPHRASE
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080050BINALL += wpa_passphrase
Jouni Malinen75ecf522011-06-27 15:19:46 -070051endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070052
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080053ALL = $(BINALL)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080054ALL += systemd/wpa_supplicant.service
55ALL += systemd/wpa_supplicant@.service
56ALL += systemd/wpa_supplicant-nl80211@.service
57ALL += systemd/wpa_supplicant-wired@.service
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080058ALL += dbus/fi.w1.wpa_supplicant1.service
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070059ifdef CONFIG_BUILD_WPA_CLIENT_SO
60ALL += libwpa_client.so
61endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080062
63
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070064all: verify_config $(ALL) dynamic_eap_methods
65
66verify_config:
67 @if [ ! -r .config ]; then \
68 echo 'Building wpa_supplicant requires a configuration file'; \
69 echo '(.config). See README for more instructions. You can'; \
70 echo 'run "cp defconfig .config" to create an example'; \
71 echo 'configuration.'; \
72 exit 1; \
73 fi
74
75mkconfig:
76 @if [ -f .config ]; then \
77 echo '.config exists - did not replace it'; \
78 exit 1; \
79 fi
80 echo CONFIG_DRIVER_HOSTAP=y >> .config
81 echo CONFIG_DRIVER_WEXT=y >> .config
82
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080083$(DESTDIR)$(BINDIR)/%: %
84 install -D $(<) $(@)
85
86install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070087 $(MAKE) -C ../src install
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070088ifdef CONFIG_BUILD_WPA_CLIENT_SO
89 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
90 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
91endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070092
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070093ifdef CONFIG_FIPS
94CONFIG_NO_RANDOM_POOL=
95CONFIG_OPENSSL_CMAC=y
96endif
97
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070098OBJS = config.o
99OBJS += notify.o
100OBJS += bss.o
101OBJS += eap_register.o
102OBJS += ../src/utils/common.o
103OBJS += ../src/utils/wpa_debug.o
104OBJS += ../src/utils/wpabuf.o
Dmitry Shmidt29333592017-01-09 12:27:11 -0800105OBJS += ../src/utils/bitfield.o
Hai Shalomc3565922019-10-28 11:58:20 -0700106OBJS += ../src/utils/ip_addr.o
Dmitry Shmidt29333592017-01-09 12:27:11 -0800107OBJS += op_classes.o
108OBJS += rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700109OBJS_p = wpa_passphrase.o
110OBJS_p += ../src/utils/common.o
111OBJS_p += ../src/utils/wpa_debug.o
112OBJS_p += ../src/utils/wpabuf.o
113OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
114OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800115OBJS_c += ../src/utils/common.o
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700116OBJS_c += ../src/common/cli.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800117OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700118
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700119ifndef CONFIG_OS
120ifdef CONFIG_NATIVE_WINDOWS
121CONFIG_OS=win32
122else
123CONFIG_OS=unix
124endif
125endif
126
127ifeq ($(CONFIG_OS), internal)
128CFLAGS += -DOS_NO_C_LIB_DEFINES
129endif
130
131OBJS += ../src/utils/os_$(CONFIG_OS).o
132OBJS_p += ../src/utils/os_$(CONFIG_OS).o
133OBJS_c += ../src/utils/os_$(CONFIG_OS).o
134
135ifdef CONFIG_WPA_TRACE
136CFLAGS += -DWPA_TRACE
137OBJS += ../src/utils/trace.o
138OBJS_p += ../src/utils/trace.o
139OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800140OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -0800141LIBCTRL += ../src/utils/trace.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -0700142LIBCTRLSO += ../src/utils/trace.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700143LDFLAGS += -rdynamic
144CFLAGS += -funwind-tables
145ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800146CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800147LIBS += -lbfd -ldl -liberty -lz
148LIBS_p += -lbfd -ldl -liberty -lz
149LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700150endif
151endif
152
153ifndef CONFIG_ELOOP
154CONFIG_ELOOP=eloop
155endif
156OBJS += ../src/utils/$(CONFIG_ELOOP).o
157OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
158
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800159ifndef CONFIG_OSX
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800160ifeq ($(CONFIG_ELOOP), eloop)
161# Using glibc < 2.17 requires -lrt for clock_gettime()
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800162# OS X has an alternate implementation
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800163LIBS += -lrt
164LIBS_c += -lrt
165LIBS_p += -lrt
166endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800167endif
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800168
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800169ifdef CONFIG_ELOOP_POLL
170CFLAGS += -DCONFIG_ELOOP_POLL
171endif
172
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700173ifdef CONFIG_ELOOP_EPOLL
174CFLAGS += -DCONFIG_ELOOP_EPOLL
175endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700176
Dmitry Shmidtb97e4282016-02-08 10:16:07 -0800177ifdef CONFIG_ELOOP_KQUEUE
178CFLAGS += -DCONFIG_ELOOP_KQUEUE
179endif
180
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700181ifdef CONFIG_EAPOL_TEST
182CFLAGS += -Werror -DEAPOL_TEST
183endif
184
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800185ifdef CONFIG_CODE_COVERAGE
186CFLAGS += -O0 -fprofile-arcs -ftest-coverage
187LIBS += -lgcov
188LIBS_c += -lgcov
189LIBS_p += -lgcov
190endif
191
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800192ifdef CONFIG_HT_OVERRIDES
193CFLAGS += -DCONFIG_HT_OVERRIDES
194endif
195
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700196ifdef CONFIG_VHT_OVERRIDES
197CFLAGS += -DCONFIG_VHT_OVERRIDES
198endif
199
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700200ifndef CONFIG_BACKEND
201CONFIG_BACKEND=file
202endif
203
204ifeq ($(CONFIG_BACKEND), file)
205OBJS += config_file.o
206ifndef CONFIG_NO_CONFIG_BLOBS
207NEED_BASE64=y
208endif
209CFLAGS += -DCONFIG_BACKEND_FILE
210endif
211
212ifeq ($(CONFIG_BACKEND), winreg)
213OBJS += config_winreg.o
214endif
215
216ifeq ($(CONFIG_BACKEND), none)
217OBJS += config_none.o
218endif
219
220ifdef CONFIG_NO_CONFIG_WRITE
221CFLAGS += -DCONFIG_NO_CONFIG_WRITE
222endif
223
224ifdef CONFIG_NO_CONFIG_BLOBS
225CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
226endif
227
228ifdef CONFIG_NO_SCAN_PROCESSING
229CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
230endif
231
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800232ifdef CONFIG_SUITEB
233CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800234endif
235
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800236ifdef CONFIG_SUITEB192
237CFLAGS += -DCONFIG_SUITEB192
238NEED_SHA384=y
239endif
240
Hai Shalom74f70d42019-02-11 14:42:39 -0800241ifdef CONFIG_OCV
242CFLAGS += -DCONFIG_OCV
243OBJS += ../src/common/ocv.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700244endif
245
246ifdef CONFIG_IEEE80211R
247CFLAGS += -DCONFIG_IEEE80211R
248OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700249endif
250
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800251ifdef CONFIG_MESH
252NEED_80211_COMMON=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800253NEED_AES_SIV=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800254CONFIG_SAE=y
255CONFIG_AP=y
256CFLAGS += -DCONFIG_MESH
257OBJS += mesh.o
258OBJS += mesh_mpm.o
259OBJS += mesh_rsn.o
260endif
261
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800262ifdef CONFIG_SAE
263CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800264OBJS += ../src/common/sae.o
265NEED_ECC=y
266NEED_DH_GROUPS=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700267NEED_DRAGONFLY=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800268endif
269
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700270ifdef CONFIG_DPP
271CFLAGS += -DCONFIG_DPP
272OBJS += ../src/common/dpp.o
273OBJS += dpp_supplicant.o
274NEED_AES_SIV=y
275NEED_HMAC_SHA256_KDF=y
276NEED_HMAC_SHA384_KDF=y
277NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700278NEED_SHA384=y
279NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700280NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700281NEED_JSON=y
282NEED_GAS_SERVER=y
283NEED_BASE64=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700284ifdef CONFIG_DPP2
285CFLAGS += -DCONFIG_DPP2
286endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700287endif
288
289ifdef CONFIG_OWE
290CFLAGS += -DCONFIG_OWE
291NEED_ECC=y
292NEED_HMAC_SHA256_KDF=y
293NEED_HMAC_SHA384_KDF=y
294NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700295NEED_SHA384=y
296NEED_SHA512=y
297endif
298
Jimmy Chencaaac072019-09-16 16:36:06 +0800299ifdef CONFIG_WAPI_INTERFACE
300L_CFLAGS += -DCONFIG_WAPI_INTERFACE
301endif
302
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800303ifdef CONFIG_FILS
304CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800305NEED_SHA384=y
306NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700307ifdef CONFIG_FILS_SK_PFS
308CFLAGS += -DCONFIG_FILS_SK_PFS
309NEED_ECC=y
310endif
311endif
312
313ifdef CONFIG_MBO
314CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800315endif
316
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800317ifdef CONFIG_WNM
318CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700319OBJS += wnm_sta.o
320endif
321
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700322ifdef CONFIG_TDLS
323CFLAGS += -DCONFIG_TDLS
324OBJS += ../src/rsn_supp/tdls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700325endif
326
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800327ifdef CONFIG_TDLS_TESTING
328CFLAGS += -DCONFIG_TDLS_TESTING
329endif
330
Dmitry Shmidt29333592017-01-09 12:27:11 -0800331ifdef CONFIG_PMKSA_CACHE_EXTERNAL
332CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
333endif
334
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700335ifndef CONFIG_NO_WPA
336OBJS += ../src/rsn_supp/wpa.o
337OBJS += ../src/rsn_supp/preauth.o
338OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700339OBJS += ../src/rsn_supp/wpa_ie.o
340OBJS += ../src/common/wpa_common.o
341NEED_AES=y
342NEED_SHA1=y
343NEED_MD5=y
344NEED_RC4=y
345else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700346CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800347ifeq ($(CONFIG_TLS), internal)
348NEED_SHA1=y
349NEED_MD5=y
350endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700351endif
352
353ifdef CONFIG_IBSS_RSN
354NEED_RSN_AUTHENTICATOR=y
355CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700356CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700357OBJS += ibss_rsn.o
358endif
359
Dmitry Shmidte4663042016-04-04 10:07:49 -0700360ifdef CONFIG_MATCH_IFACE
361CFLAGS += -DCONFIG_MATCH_IFACE
362endif
363
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700364ifdef CONFIG_P2P
365OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700366OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700367OBJS += ../src/p2p/p2p.o
368OBJS += ../src/p2p/p2p_utils.o
369OBJS += ../src/p2p/p2p_parse.o
370OBJS += ../src/p2p/p2p_build.o
371OBJS += ../src/p2p/p2p_go_neg.o
372OBJS += ../src/p2p/p2p_sd.o
373OBJS += ../src/p2p/p2p_pd.o
374OBJS += ../src/p2p/p2p_invitation.o
375OBJS += ../src/p2p/p2p_dev_disc.o
376OBJS += ../src/p2p/p2p_group.o
377OBJS += ../src/ap/p2p_hostapd.o
378CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800379NEED_GAS=y
380NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800381CONFIG_WPS=y
382CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700383ifdef CONFIG_P2P_STRICT
384CFLAGS += -DCONFIG_P2P_STRICT
385endif
386endif
387
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700388ifdef CONFIG_WIFI_DISPLAY
389CFLAGS += -DCONFIG_WIFI_DISPLAY
390OBJS += wifi_display.o
391endif
392
Dmitry Shmidt04949592012-07-19 12:16:46 -0700393ifdef CONFIG_HS20
394OBJS += hs20_supplicant.o
395CFLAGS += -DCONFIG_HS20
396CONFIG_INTERWORKING=y
397endif
398
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800399ifdef CONFIG_INTERWORKING
400OBJS += interworking.o
401CFLAGS += -DCONFIG_INTERWORKING
402NEED_GAS=y
403endif
404
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700405ifdef CONFIG_NO_ROAMING
406CFLAGS += -DCONFIG_NO_ROAMING
407endif
408
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700409include ../src/drivers/drivers.mak
410ifdef CONFIG_AP
411OBJS_d += $(DRV_BOTH_OBJS)
412CFLAGS += $(DRV_BOTH_CFLAGS)
413LDFLAGS += $(DRV_BOTH_LDFLAGS)
414LIBS += $(DRV_BOTH_LIBS)
415else
416NEED_AP_MLME=
417OBJS_d += $(DRV_WPA_OBJS)
418CFLAGS += $(DRV_WPA_CFLAGS)
419LDFLAGS += $(DRV_WPA_LDFLAGS)
420LIBS += $(DRV_WPA_LIBS)
421endif
422
423ifndef CONFIG_L2_PACKET
424CONFIG_L2_PACKET=linux
425endif
426
427OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
428
429ifeq ($(CONFIG_L2_PACKET), pcap)
430ifdef CONFIG_WINPCAP
431CFLAGS += -DCONFIG_WINPCAP
432LIBS += -lwpcap -lpacket
433LIBS_w += -lwpcap
434else
435LIBS += -ldnet -lpcap
436endif
437endif
438
439ifeq ($(CONFIG_L2_PACKET), winpcap)
440LIBS += -lwpcap -lpacket
441LIBS_w += -lwpcap
442endif
443
444ifeq ($(CONFIG_L2_PACKET), freebsd)
445LIBS += -lpcap
446endif
447
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800448ifdef CONFIG_ERP
449CFLAGS += -DCONFIG_ERP
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800450NEED_HMAC_SHA256_KDF=y
451endif
452
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700453ifdef CONFIG_EAP_TLS
454# EAP-TLS
455ifeq ($(CONFIG_EAP_TLS), dyn)
456CFLAGS += -DEAP_TLS_DYNAMIC
457EAPDYN += ../src/eap_peer/eap_tls.so
458else
459CFLAGS += -DEAP_TLS
460OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700461endif
462TLS_FUNCS=y
463CONFIG_IEEE8021X_EAPOL=y
464endif
465
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700466ifdef CONFIG_EAP_UNAUTH_TLS
467# EAP-UNAUTH-TLS
468CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700469ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700470OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700471TLS_FUNCS=y
472endif
473CONFIG_IEEE8021X_EAPOL=y
474endif
475
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700476ifdef CONFIG_EAP_PEAP
477# EAP-PEAP
478ifeq ($(CONFIG_EAP_PEAP), dyn)
479CFLAGS += -DEAP_PEAP_DYNAMIC
480EAPDYN += ../src/eap_peer/eap_peap.so
481else
482CFLAGS += -DEAP_PEAP
483OBJS += ../src/eap_peer/eap_peap.o
484OBJS += ../src/eap_common/eap_peap_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700485endif
486TLS_FUNCS=y
487CONFIG_IEEE8021X_EAPOL=y
488endif
489
490ifdef CONFIG_EAP_TTLS
491# EAP-TTLS
492ifeq ($(CONFIG_EAP_TTLS), dyn)
493CFLAGS += -DEAP_TTLS_DYNAMIC
494EAPDYN += ../src/eap_peer/eap_ttls.so
495else
496CFLAGS += -DEAP_TTLS
497OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700498endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700499TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800500ifndef CONFIG_FIPS
501MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700502CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800503endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700504CONFIG_IEEE8021X_EAPOL=y
505endif
506
507ifdef CONFIG_EAP_MD5
508# EAP-MD5
509ifeq ($(CONFIG_EAP_MD5), dyn)
510CFLAGS += -DEAP_MD5_DYNAMIC
511EAPDYN += ../src/eap_peer/eap_md5.so
512else
513CFLAGS += -DEAP_MD5
514OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700515endif
516CHAP=y
517CONFIG_IEEE8021X_EAPOL=y
518endif
519
520# backwards compatibility for old spelling
521ifdef CONFIG_MSCHAPV2
522ifndef CONFIG_EAP_MSCHAPV2
523CONFIG_EAP_MSCHAPV2=y
524endif
525endif
526
527ifdef CONFIG_EAP_MSCHAPV2
528# EAP-MSCHAPv2
529ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
530CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
531EAPDYN += ../src/eap_peer/eap_mschapv2.so
532EAPDYN += ../src/eap_peer/mschapv2.so
533else
534CFLAGS += -DEAP_MSCHAPv2
535OBJS += ../src/eap_peer/eap_mschapv2.o
536OBJS += ../src/eap_peer/mschapv2.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700537endif
538MS_FUNCS=y
539CONFIG_IEEE8021X_EAPOL=y
540endif
541
542ifdef CONFIG_EAP_GTC
543# EAP-GTC
544ifeq ($(CONFIG_EAP_GTC), dyn)
545CFLAGS += -DEAP_GTC_DYNAMIC
546EAPDYN += ../src/eap_peer/eap_gtc.so
547else
548CFLAGS += -DEAP_GTC
549OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700550endif
551CONFIG_IEEE8021X_EAPOL=y
552endif
553
554ifdef CONFIG_EAP_OTP
555# EAP-OTP
556ifeq ($(CONFIG_EAP_OTP), dyn)
557CFLAGS += -DEAP_OTP_DYNAMIC
558EAPDYN += ../src/eap_peer/eap_otp.so
559else
560CFLAGS += -DEAP_OTP
561OBJS += ../src/eap_peer/eap_otp.o
562endif
563CONFIG_IEEE8021X_EAPOL=y
564endif
565
566ifdef CONFIG_EAP_SIM
567# EAP-SIM
568ifeq ($(CONFIG_EAP_SIM), dyn)
569CFLAGS += -DEAP_SIM_DYNAMIC
570EAPDYN += ../src/eap_peer/eap_sim.so
571else
572CFLAGS += -DEAP_SIM
573OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700574endif
575CONFIG_IEEE8021X_EAPOL=y
576CONFIG_EAP_SIM_COMMON=y
577NEED_AES_CBC=y
578endif
579
580ifdef CONFIG_EAP_LEAP
581# EAP-LEAP
582ifeq ($(CONFIG_EAP_LEAP), dyn)
583CFLAGS += -DEAP_LEAP_DYNAMIC
584EAPDYN += ../src/eap_peer/eap_leap.so
585else
586CFLAGS += -DEAP_LEAP
587OBJS += ../src/eap_peer/eap_leap.o
588endif
589MS_FUNCS=y
590CONFIG_IEEE8021X_EAPOL=y
591endif
592
593ifdef CONFIG_EAP_PSK
594# EAP-PSK
595ifeq ($(CONFIG_EAP_PSK), dyn)
596CFLAGS += -DEAP_PSK_DYNAMIC
597EAPDYN += ../src/eap_peer/eap_psk.so
598else
599CFLAGS += -DEAP_PSK
600OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700601endif
602CONFIG_IEEE8021X_EAPOL=y
603NEED_AES=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700604NEED_AES_ENCBLOCK=y
605NEED_AES_EAX=y
606endif
607
608ifdef CONFIG_EAP_AKA
609# EAP-AKA
610ifeq ($(CONFIG_EAP_AKA), dyn)
611CFLAGS += -DEAP_AKA_DYNAMIC
612EAPDYN += ../src/eap_peer/eap_aka.so
613else
614CFLAGS += -DEAP_AKA
615OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700616endif
617CONFIG_IEEE8021X_EAPOL=y
618CONFIG_EAP_SIM_COMMON=y
619NEED_AES_CBC=y
620endif
621
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800622ifdef CONFIG_EAP_PROXY
623CFLAGS += -DCONFIG_EAP_PROXY
624OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700625include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800626CONFIG_IEEE8021X_EAPOL=y
627endif
628
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700629ifdef CONFIG_EAP_AKA_PRIME
630# EAP-AKA'
631ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
632CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
633else
634CFLAGS += -DEAP_AKA_PRIME
635endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700636endif
637
638ifdef CONFIG_EAP_SIM_COMMON
639OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700640NEED_AES=y
641NEED_FIPS186_2_PRF=y
642endif
643
644ifdef CONFIG_EAP_FAST
645# EAP-FAST
646ifeq ($(CONFIG_EAP_FAST), dyn)
647CFLAGS += -DEAP_FAST_DYNAMIC
648EAPDYN += ../src/eap_peer/eap_fast.so
649EAPDYN += ../src/eap_common/eap_fast_common.o
650else
651CFLAGS += -DEAP_FAST
652OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
653OBJS += ../src/eap_common/eap_fast_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700654endif
655TLS_FUNCS=y
656CONFIG_IEEE8021X_EAPOL=y
657NEED_T_PRF=y
658endif
659
Hai Shalom81f62d82019-07-22 12:10:00 -0700660ifdef CONFIG_EAP_TEAP
661# EAP-TEAP
662ifeq ($(CONFIG_EAP_TEAP), dyn)
663CFLAGS += -DEAP_TEAP_DYNAMIC
664EAPDYN += ../src/eap_peer/eap_teap.so
665EAPDYN += ../src/eap_common/eap_teap_common.o
666else
667CFLAGS += -DEAP_TEAP
668OBJS += ../src/eap_peer/eap_teap.o ../src/eap_peer/eap_teap_pac.o
669OBJS += ../src/eap_common/eap_teap_common.o
670endif
671TLS_FUNCS=y
672CONFIG_IEEE8021X_EAPOL=y
673NEED_T_PRF=y
674NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700675NEED_TLS_PRF_SHA256=y
676NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700677endif
678
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700679ifdef CONFIG_EAP_PAX
680# EAP-PAX
681ifeq ($(CONFIG_EAP_PAX), dyn)
682CFLAGS += -DEAP_PAX_DYNAMIC
683EAPDYN += ../src/eap_peer/eap_pax.so
684else
685CFLAGS += -DEAP_PAX
686OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700687endif
688CONFIG_IEEE8021X_EAPOL=y
689endif
690
691ifdef CONFIG_EAP_SAKE
692# EAP-SAKE
693ifeq ($(CONFIG_EAP_SAKE), dyn)
694CFLAGS += -DEAP_SAKE_DYNAMIC
695EAPDYN += ../src/eap_peer/eap_sake.so
696else
697CFLAGS += -DEAP_SAKE
698OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700699endif
700CONFIG_IEEE8021X_EAPOL=y
701endif
702
703ifdef CONFIG_EAP_GPSK
704# EAP-GPSK
705ifeq ($(CONFIG_EAP_GPSK), dyn)
706CFLAGS += -DEAP_GPSK_DYNAMIC
707EAPDYN += ../src/eap_peer/eap_gpsk.so
708else
709CFLAGS += -DEAP_GPSK
710OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700711endif
712CONFIG_IEEE8021X_EAPOL=y
713ifdef CONFIG_EAP_GPSK_SHA256
714CFLAGS += -DEAP_GPSK_SHA256
715endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700716endif
717
718ifdef CONFIG_EAP_PWD
719CFLAGS += -DEAP_PWD
Roshan Pius3a1667e2018-07-03 15:17:14 -0700720ifeq ($(CONFIG_TLS), wolfssl)
721CFLAGS += -DCONFIG_ECC
722endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700723OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700724CONFIG_IEEE8021X_EAPOL=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700725NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700726NEED_DRAGONFLY=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700727endif
728
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700729ifdef CONFIG_EAP_EKE
730# EAP-EKE
731ifeq ($(CONFIG_EAP_EKE), dyn)
732CFLAGS += -DEAP_EKE_DYNAMIC
733EAPDYN += ../src/eap_peer/eap_eke.so
734else
735CFLAGS += -DEAP_EKE
736OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700737endif
738CONFIG_IEEE8021X_EAPOL=y
739NEED_DH_GROUPS=y
740NEED_DH_GROUPS_ALL=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800741NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700742endif
743
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700744ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700745# EAP-WSC
746CFLAGS += -DCONFIG_WPS -DEAP_WSC
747OBJS += wps_supplicant.o
748OBJS += ../src/utils/uuid.o
749OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
750OBJS += ../src/wps/wps.o
751OBJS += ../src/wps/wps_common.o
752OBJS += ../src/wps/wps_attr_parse.o
753OBJS += ../src/wps/wps_attr_build.o
754OBJS += ../src/wps/wps_attr_process.o
755OBJS += ../src/wps/wps_dev_attr.o
756OBJS += ../src/wps/wps_enrollee.o
757OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700758CONFIG_IEEE8021X_EAPOL=y
759NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700760NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700761NEED_AES_CBC=y
762NEED_MODEXP=y
763
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700764ifdef CONFIG_WPS_NFC
765CFLAGS += -DCONFIG_WPS_NFC
766OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700767NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700768endif
769
770ifdef NEED_WPS_OOB
771CFLAGS += -DCONFIG_WPS_OOB
772endif
773
774ifdef CONFIG_WPS_ER
775CONFIG_WPS_UPNP=y
776CFLAGS += -DCONFIG_WPS_ER
777OBJS += ../src/wps/wps_er.o
778OBJS += ../src/wps/wps_er_ssdp.o
779endif
780
781ifdef CONFIG_WPS_UPNP
782CFLAGS += -DCONFIG_WPS_UPNP
783OBJS += ../src/wps/wps_upnp.o
784OBJS += ../src/wps/wps_upnp_ssdp.o
785OBJS += ../src/wps/wps_upnp_web.o
786OBJS += ../src/wps/wps_upnp_event.o
787OBJS += ../src/wps/wps_upnp_ap.o
788OBJS += ../src/wps/upnp_xml.o
789OBJS += ../src/wps/httpread.o
790OBJS += ../src/wps/http_client.o
791OBJS += ../src/wps/http_server.o
792endif
793
794ifdef CONFIG_WPS_STRICT
795CFLAGS += -DCONFIG_WPS_STRICT
796OBJS += ../src/wps/wps_validate.o
797endif
798
799ifdef CONFIG_WPS_TESTING
800CFLAGS += -DCONFIG_WPS_TESTING
801endif
802
803ifdef CONFIG_WPS_REG_DISABLE_OPEN
804CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
805endif
806
807endif
808
809ifdef CONFIG_EAP_IKEV2
810# EAP-IKEv2
811ifeq ($(CONFIG_EAP_IKEV2), dyn)
812CFLAGS += -DEAP_IKEV2_DYNAMIC
813EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
814EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
815else
816CFLAGS += -DEAP_IKEV2
817OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
818OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700819endif
820CONFIG_IEEE8021X_EAPOL=y
821NEED_DH_GROUPS=y
822NEED_DH_GROUPS_ALL=y
823NEED_MODEXP=y
824NEED_CIPHER=y
825endif
826
827ifdef CONFIG_EAP_VENDOR_TEST
828ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
829CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
830EAPDYN += ../src/eap_peer/eap_vendor_test.so
831else
832CFLAGS += -DEAP_VENDOR_TEST
833OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700834endif
835CONFIG_IEEE8021X_EAPOL=y
836endif
837
838ifdef CONFIG_EAP_TNC
839# EAP-TNC
840CFLAGS += -DEAP_TNC
841OBJS += ../src/eap_peer/eap_tnc.o
842OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700843NEED_BASE64=y
844ifndef CONFIG_NATIVE_WINDOWS
845ifndef CONFIG_DRIVER_BSD
846LIBS += -ldl
847endif
848endif
849endif
850
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700851ifdef CONFIG_MACSEC
852CFLAGS += -DCONFIG_MACSEC
853CONFIG_IEEE8021X_EAPOL=y
854NEED_AES_ENCBLOCK=y
855NEED_AES_UNWRAP=y
856NEED_AES_WRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700857OBJS += wpas_kay.o
858OBJS += ../src/pae/ieee802_1x_cp.o
859OBJS += ../src/pae/ieee802_1x_kay.o
860OBJS += ../src/pae/ieee802_1x_key.o
861OBJS += ../src/pae/ieee802_1x_secy_ops.o
Hai Shalom81f62d82019-07-22 12:10:00 -0700862ifdef CONFIG_AP
863OBJS += ../src/ap/wpa_auth_kay.o
864endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700865endif
866
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700867ifdef CONFIG_IEEE8021X_EAPOL
868# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
869CFLAGS += -DIEEE8021X_EAPOL
870OBJS += ../src/eapol_supp/eapol_supp_sm.o
871OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
872NEED_EAP_COMMON=y
873ifdef CONFIG_DYNAMIC_EAP_METHODS
874CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
875LIBS += -ldl -rdynamic
876endif
877endif
878
879ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700880NEED_EAP_COMMON=y
881NEED_RSN_AUTHENTICATOR=y
882CFLAGS += -DCONFIG_AP
883OBJS += ap.o
884CFLAGS += -DCONFIG_NO_RADIUS
885CFLAGS += -DCONFIG_NO_ACCOUNTING
886CFLAGS += -DCONFIG_NO_VLAN
887OBJS += ../src/ap/hostapd.o
888OBJS += ../src/ap/wpa_auth_glue.o
889OBJS += ../src/ap/utils.o
890OBJS += ../src/ap/authsrv.o
891OBJS += ../src/ap/ap_config.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700892OBJS += ../src/ap/sta_info.o
893OBJS += ../src/ap/tkip_countermeasures.o
894OBJS += ../src/ap/ap_mlme.o
895OBJS += ../src/ap/ieee802_1x.o
896OBJS += ../src/eapol_auth/eapol_auth_sm.o
897OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800898OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700899OBJS += ../src/ap/drv_callbacks.o
900OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800901OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800902OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800903OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700904OBJS += ../src/ap/neighbor_db.o
905OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700906ifdef CONFIG_IEEE80211N
907OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700908ifdef CONFIG_IEEE80211AC
909OBJS += ../src/ap/ieee802_11_vht.o
910endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800911ifdef CONFIG_IEEE80211AX
912OBJS += ../src/ap/ieee802_11_he.o
913endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700914endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700915ifdef CONFIG_WNM_AP
916CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800917OBJS += ../src/ap/wnm_ap.o
918endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800919ifdef CONFIG_MBO
920OBJS += ../src/ap/mbo_ap.o
921endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800922ifdef CONFIG_FILS
923OBJS += ../src/ap/fils_hlp.o
924endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700925ifdef CONFIG_CTRL_IFACE
926OBJS += ../src/ap/ctrl_iface_ap.o
927endif
928
929CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
930OBJS += ../src/eap_server/eap_server.o
931OBJS += ../src/eap_server/eap_server_identity.o
932OBJS += ../src/eap_server/eap_server_methods.o
933
934ifdef CONFIG_IEEE80211N
935CFLAGS += -DCONFIG_IEEE80211N
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 -0700942endif
943
944ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700945OBJS += ../src/ap/wmm.o
946OBJS += ../src/ap/ap_list.o
947OBJS += ../src/ap/ieee802_11.o
948OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700949OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700950CFLAGS += -DNEED_AP_MLME
951endif
952ifdef CONFIG_WPS
953CFLAGS += -DEAP_SERVER_WSC
954OBJS += ../src/ap/wps_hostapd.o
955OBJS += ../src/eap_server/eap_server_wsc.o
956endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700957ifdef CONFIG_DPP
958OBJS += ../src/ap/dpp_hostapd.o
959OBJS += ../src/ap/gas_query_ap.o
Hai Shalomc3565922019-10-28 11:58:20 -0700960NEED_AP_GAS_SERV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700961endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700962ifdef CONFIG_INTERWORKING
Hai Shalomc3565922019-10-28 11:58:20 -0700963NEED_AP_GAS_SERV=y
964endif
965ifdef NEED_AP_GAS_SERV
Dmitry Shmidt04949592012-07-19 12:16:46 -0700966OBJS += ../src/ap/gas_serv.o
967endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700968ifdef CONFIG_HS20
969OBJS += ../src/ap/hs20.o
970endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700971endif
972
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800973ifdef CONFIG_MBO
974OBJS += mbo.o
975CFLAGS += -DCONFIG_MBO
976endif
977
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700978ifdef NEED_RSN_AUTHENTICATOR
979CFLAGS += -DCONFIG_NO_RADIUS
980NEED_AES_WRAP=y
981OBJS += ../src/ap/wpa_auth.o
982OBJS += ../src/ap/wpa_auth_ie.o
983OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700984endif
985
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -0800986ifdef CONFIG_ACS
987CFLAGS += -DCONFIG_ACS
988OBJS += ../src/ap/acs.o
989LIBS += -lm
990endif
991
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700992ifdef CONFIG_PCSC
993# PC/SC interface for smartcards (USIM, GSM SIM)
994CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
995OBJS += ../src/utils/pcsc_funcs.o
996# -lpthread may not be needed depending on how pcsc-lite was configured
997ifdef CONFIG_NATIVE_WINDOWS
998#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
999#dynamic symbol loading that is now used in pcsc_funcs.c
1000#LIBS += -lwinscard
1001else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001002ifdef CONFIG_OSX
1003LIBS += -framework PCSC
1004else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001005LIBS += -lpcsclite -lpthread
1006endif
1007endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001008endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001009
1010ifdef CONFIG_SIM_SIMULATOR
1011CFLAGS += -DCONFIG_SIM_SIMULATOR
1012NEED_MILENAGE=y
1013endif
1014
1015ifdef CONFIG_USIM_SIMULATOR
1016CFLAGS += -DCONFIG_USIM_SIMULATOR
1017NEED_MILENAGE=y
1018endif
1019
1020ifdef NEED_MILENAGE
1021OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001022NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001023endif
1024
1025ifdef CONFIG_PKCS12
1026CFLAGS += -DPKCS12_FUNCS
1027endif
1028
1029ifdef CONFIG_SMARTCARD
1030CFLAGS += -DCONFIG_SMARTCARD
1031endif
1032
Hai Shalom81f62d82019-07-22 12:10:00 -07001033ifdef NEED_DRAGONFLY
1034OBJS += ../src/common/dragonfly.o
1035endif
1036
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001037ifdef MS_FUNCS
1038OBJS += ../src/crypto/ms_funcs.o
1039NEED_DES=y
1040NEED_MD4=y
1041endif
1042
1043ifdef CHAP
1044OBJS += ../src/eap_common/chap.o
1045endif
1046
1047ifdef TLS_FUNCS
1048NEED_DES=y
Hai Shalom81f62d82019-07-22 12:10:00 -07001049# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and
1050# EAP_TEAP)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001051OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001052ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001053NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001054NEED_SHA1=y
1055NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001056endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001057endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001058
1059ifndef CONFIG_TLS
1060CONFIG_TLS=openssl
1061endif
1062
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001063ifdef CONFIG_TLSV11
1064CFLAGS += -DCONFIG_TLSV11
1065endif
1066
1067ifdef CONFIG_TLSV12
1068CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001069endif
1070
Roshan Pius3a1667e2018-07-03 15:17:14 -07001071ifeq ($(CONFIG_TLS), wolfssl)
1072ifdef TLS_FUNCS
1073CFLAGS += -DWOLFSSL_DER_LOAD -I/usr/local/include/wolfssl
1074OBJS += ../src/crypto/tls_wolfssl.o
1075endif
1076OBJS += ../src/crypto/crypto_wolfssl.o
1077OBJS_p += ../src/crypto/crypto_wolfssl.o
1078ifdef NEED_FIPS186_2_PRF
1079OBJS += ../src/crypto/fips_prf_wolfssl.o
1080endif
1081NEED_TLS_PRF_SHA256=y
1082LIBS += -lwolfssl -lm
1083LIBS_p += -lwolfssl -lm
1084endif
1085
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001086ifeq ($(CONFIG_TLS), openssl)
1087ifdef TLS_FUNCS
1088CFLAGS += -DEAP_TLS_OPENSSL
1089OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001090OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001091LIBS += -lssl
1092endif
1093OBJS += ../src/crypto/crypto_openssl.o
1094OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001095OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001096ifdef NEED_FIPS186_2_PRF
1097OBJS += ../src/crypto/fips_prf_openssl.o
1098endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001099NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001100LIBS += -lcrypto
1101LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001102ifdef CONFIG_TLS_ADD_DL
1103LIBS += -ldl
1104LIBS_p += -ldl
1105endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001106ifndef CONFIG_TLS_DEFAULT_CIPHERS
1107CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1108endif
1109CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001110endif
1111
1112ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001113ifndef CONFIG_CRYPTO
1114# default to libgcrypt
1115CONFIG_CRYPTO=gnutls
1116endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001117ifdef TLS_FUNCS
1118OBJS += ../src/crypto/tls_gnutls.o
1119LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001120endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001121OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1122OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1123OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001124ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001125OBJS += ../src/crypto/fips_prf_internal.o
1126SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001127endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001128ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001129LIBS += -lgcrypt
1130LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001131CONFIG_INTERNAL_RC4=y
1132CONFIG_INTERNAL_DH_GROUP5=y
1133endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001134ifeq ($(CONFIG_CRYPTO), nettle)
1135LIBS += -lnettle -lgmp
1136LIBS_p += -lnettle -lgmp
1137CONFIG_INTERNAL_RC4=y
1138CONFIG_INTERNAL_DH_GROUP5=y
1139endif
1140endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001141
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001142ifeq ($(CONFIG_TLS), internal)
1143ifndef CONFIG_CRYPTO
1144CONFIG_CRYPTO=internal
1145endif
1146ifdef TLS_FUNCS
1147OBJS += ../src/crypto/crypto_internal-rsa.o
1148OBJS += ../src/crypto/tls_internal.o
1149OBJS += ../src/tls/tlsv1_common.o
1150OBJS += ../src/tls/tlsv1_record.o
1151OBJS += ../src/tls/tlsv1_cred.o
1152OBJS += ../src/tls/tlsv1_client.o
1153OBJS += ../src/tls/tlsv1_client_write.o
1154OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001155OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001156OBJS += ../src/tls/asn1.o
1157OBJS += ../src/tls/rsa.o
1158OBJS += ../src/tls/x509v3.o
1159OBJS += ../src/tls/pkcs1.o
1160OBJS += ../src/tls/pkcs5.o
1161OBJS += ../src/tls/pkcs8.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001162NEED_BASE64=y
1163NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001164ifdef CONFIG_TLSV12
1165NEED_TLS_PRF_SHA256=y
1166endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001167NEED_MODEXP=y
1168NEED_CIPHER=y
1169CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1170endif
1171ifdef NEED_CIPHER
1172NEED_DES=y
1173OBJS += ../src/crypto/crypto_internal-cipher.o
1174endif
1175ifdef NEED_MODEXP
1176OBJS += ../src/crypto/crypto_internal-modexp.o
1177OBJS += ../src/tls/bignum.o
1178endif
1179ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1180OBJS += ../src/crypto/crypto_libtomcrypt.o
1181OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1182LIBS += -ltomcrypt -ltfm
1183LIBS_p += -ltomcrypt -ltfm
1184CONFIG_INTERNAL_SHA256=y
1185CONFIG_INTERNAL_RC4=y
1186CONFIG_INTERNAL_DH_GROUP5=y
1187endif
1188ifeq ($(CONFIG_CRYPTO), internal)
1189OBJS += ../src/crypto/crypto_internal.o
1190OBJS_p += ../src/crypto/crypto_internal.o
1191NEED_AES_ENC=y
1192CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1193ifdef CONFIG_INTERNAL_LIBTOMMATH
1194CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1195ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1196CFLAGS += -DLTM_FAST
1197endif
1198else
1199LIBS += -ltommath
1200LIBS_p += -ltommath
1201endif
1202CONFIG_INTERNAL_AES=y
1203CONFIG_INTERNAL_DES=y
1204CONFIG_INTERNAL_SHA1=y
1205CONFIG_INTERNAL_MD4=y
1206CONFIG_INTERNAL_MD5=y
1207CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001208CONFIG_INTERNAL_SHA384=y
1209CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001210CONFIG_INTERNAL_RC4=y
1211CONFIG_INTERNAL_DH_GROUP5=y
1212endif
1213ifeq ($(CONFIG_CRYPTO), cryptoapi)
1214OBJS += ../src/crypto/crypto_cryptoapi.o
1215OBJS_p += ../src/crypto/crypto_cryptoapi.o
1216CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1217CONFIG_INTERNAL_SHA256=y
1218CONFIG_INTERNAL_RC4=y
1219endif
1220endif
1221
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001222ifeq ($(CONFIG_TLS), linux)
1223OBJS += ../src/crypto/crypto_linux.o
1224OBJS_p += ../src/crypto/crypto_linux.o
1225ifdef TLS_FUNCS
1226OBJS += ../src/crypto/crypto_internal-rsa.o
1227OBJS += ../src/crypto/tls_internal.o
1228OBJS += ../src/tls/tlsv1_common.o
1229OBJS += ../src/tls/tlsv1_record.o
1230OBJS += ../src/tls/tlsv1_cred.o
1231OBJS += ../src/tls/tlsv1_client.o
1232OBJS += ../src/tls/tlsv1_client_write.o
1233OBJS += ../src/tls/tlsv1_client_read.o
1234OBJS += ../src/tls/tlsv1_client_ocsp.o
1235OBJS += ../src/tls/asn1.o
1236OBJS += ../src/tls/rsa.o
1237OBJS += ../src/tls/x509v3.o
1238OBJS += ../src/tls/pkcs1.o
1239OBJS += ../src/tls/pkcs5.o
1240OBJS += ../src/tls/pkcs8.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001241NEED_BASE64=y
1242NEED_TLS_PRF=y
1243ifdef CONFIG_TLSV12
1244NEED_TLS_PRF_SHA256=y
1245endif
1246NEED_MODEXP=y
1247NEED_CIPHER=y
1248CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1249endif
1250ifdef NEED_MODEXP
1251OBJS += ../src/crypto/crypto_internal-modexp.o
1252OBJS += ../src/tls/bignum.o
1253CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1254CFLAGS += -DLTM_FAST
1255endif
1256CONFIG_INTERNAL_DH_GROUP5=y
1257ifdef NEED_FIPS186_2_PRF
1258OBJS += ../src/crypto/fips_prf_internal.o
1259OBJS += ../src/crypto/sha1-internal.o
1260endif
1261endif
1262
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001263ifeq ($(CONFIG_TLS), none)
1264ifdef TLS_FUNCS
1265OBJS += ../src/crypto/tls_none.o
1266CFLAGS += -DEAP_TLS_NONE
1267CONFIG_INTERNAL_AES=y
1268CONFIG_INTERNAL_SHA1=y
1269CONFIG_INTERNAL_MD5=y
1270endif
1271OBJS += ../src/crypto/crypto_none.o
1272OBJS_p += ../src/crypto/crypto_none.o
1273CONFIG_INTERNAL_SHA256=y
1274CONFIG_INTERNAL_RC4=y
1275endif
1276
1277ifdef TLS_FUNCS
1278ifdef CONFIG_SMARTCARD
1279ifndef CONFIG_NATIVE_WINDOWS
1280ifneq ($(CONFIG_L2_PACKET), freebsd)
1281LIBS += -ldl
1282endif
1283endif
1284endif
1285endif
1286
1287ifndef TLS_FUNCS
1288OBJS += ../src/crypto/tls_none.o
1289ifeq ($(CONFIG_TLS), internal)
1290CONFIG_INTERNAL_AES=y
1291CONFIG_INTERNAL_SHA1=y
1292CONFIG_INTERNAL_MD5=y
1293CONFIG_INTERNAL_RC4=y
1294endif
1295endif
1296
1297AESOBJS = # none so far (see below)
1298ifdef CONFIG_INTERNAL_AES
1299AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1300endif
1301
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001302ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001303ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001304NEED_INTERNAL_AES_WRAP=y
1305endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001306endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001307ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1308# Seems to be needed at least with BoringSSL
1309NEED_INTERNAL_AES_WRAP=y
1310CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1311endif
1312ifdef CONFIG_FIPS
1313# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1314# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1315NEED_INTERNAL_AES_WRAP=y
1316endif
1317
1318ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001319ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001320AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001321endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001322endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001323ifdef NEED_AES_EAX
1324AESOBJS += ../src/crypto/aes-eax.o
1325NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001326endif
1327ifdef NEED_AES_SIV
1328AESOBJS += ../src/crypto/aes-siv.o
1329NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001330endif
1331ifdef NEED_AES_CTR
1332AESOBJS += ../src/crypto/aes-ctr.o
1333endif
1334ifdef NEED_AES_ENCBLOCK
1335AESOBJS += ../src/crypto/aes-encblock.o
1336endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001337NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001338ifdef CONFIG_OPENSSL_CMAC
1339CFLAGS += -DCONFIG_OPENSSL_CMAC
1340else
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001341ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001342ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001343AESOBJS += ../src/crypto/aes-omac1.o
1344endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001345endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001346endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001347ifdef NEED_AES_WRAP
1348NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001349ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001350AESOBJS += ../src/crypto/aes-wrap.o
1351endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001352endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001353ifdef NEED_AES_CBC
1354NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001355ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001356ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001357ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001358AESOBJS += ../src/crypto/aes-cbc.o
1359endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001360endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001361endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001362endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001363ifdef NEED_AES_ENC
1364ifdef CONFIG_INTERNAL_AES
1365AESOBJS += ../src/crypto/aes-internal-enc.o
1366endif
1367endif
1368ifdef NEED_AES
1369OBJS += $(AESOBJS)
1370endif
1371
1372ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001373ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001374ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001375ifneq ($(CONFIG_TLS), gnutls)
1376ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001377SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001378endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001379endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001380endif
1381endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001382SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001383ifdef CONFIG_INTERNAL_SHA1
1384SHA1OBJS += ../src/crypto/sha1-internal.o
1385ifdef NEED_FIPS186_2_PRF
1386SHA1OBJS += ../src/crypto/fips_prf_internal.o
1387endif
1388endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001389ifdef CONFIG_NO_WPA_PASSPHRASE
1390CFLAGS += -DCONFIG_NO_PBKDF2
1391else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001392ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001393ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001394SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1395endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001396endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001397endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001398ifdef NEED_T_PRF
1399SHA1OBJS += ../src/crypto/sha1-tprf.o
1400endif
1401ifdef NEED_TLS_PRF
1402SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1403endif
1404endif
1405
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001406ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001407ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001408ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001409ifneq ($(CONFIG_TLS), gnutls)
1410ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001411MD5OBJS += ../src/crypto/md5.o
1412endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001413endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001414endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001415endif
1416endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001417ifdef NEED_MD5
1418ifdef CONFIG_INTERNAL_MD5
1419MD5OBJS += ../src/crypto/md5-internal.o
1420endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001421OBJS += $(MD5OBJS)
1422OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001423OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001424endif
1425
1426ifdef NEED_MD4
1427ifdef CONFIG_INTERNAL_MD4
1428OBJS += ../src/crypto/md4-internal.o
1429endif
1430endif
1431
1432DESOBJS = # none needed when not internal
1433ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001434ifndef CONFIG_FIPS
1435CFLAGS += -DCONFIG_DES
1436endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001437ifdef CONFIG_INTERNAL_DES
1438DESOBJS += ../src/crypto/des-internal.o
1439endif
1440endif
1441
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001442ifdef CONFIG_NO_RC4
1443CFLAGS += -DCONFIG_NO_RC4
1444endif
1445
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001446ifdef NEED_RC4
1447ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001448ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001449OBJS += ../src/crypto/rc4.o
1450endif
1451endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001452endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001453
1454SHA256OBJS = # none by default
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001455CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001456ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001457ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001458ifneq ($(CONFIG_TLS), gnutls)
1459ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001460SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001461endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001462endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001463endif
1464endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001465SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001466ifdef CONFIG_INTERNAL_SHA256
1467SHA256OBJS += ../src/crypto/sha256-internal.o
1468endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001469ifdef CONFIG_INTERNAL_SHA384
1470CFLAGS += -DCONFIG_INTERNAL_SHA384
1471SHA256OBJS += ../src/crypto/sha384-internal.o
1472endif
1473ifdef CONFIG_INTERNAL_SHA512
1474CFLAGS += -DCONFIG_INTERNAL_SHA512
1475SHA256OBJS += ../src/crypto/sha512-internal.o
1476endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001477ifdef NEED_TLS_PRF_SHA256
1478SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1479endif
Hai Shalomc3565922019-10-28 11:58:20 -07001480ifdef NEED_TLS_PRF_SHA384
1481SHA256OBJS += ../src/crypto/sha384-tlsprf.o
1482endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001483ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001484CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001485OBJS += ../src/crypto/sha256-kdf.o
1486endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001487ifdef NEED_HMAC_SHA384_KDF
1488CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1489OBJS += ../src/crypto/sha384-kdf.o
1490endif
1491ifdef NEED_HMAC_SHA512_KDF
1492CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1493OBJS += ../src/crypto/sha512-kdf.o
1494endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001495OBJS += $(SHA256OBJS)
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001496ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001497ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001498ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001499ifneq ($(CONFIG_TLS), gnutls)
1500ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001501OBJS += ../src/crypto/sha384.o
1502endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001503endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001504endif
1505endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001506CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001507OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001508endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001509ifdef NEED_SHA512
1510ifneq ($(CONFIG_TLS), openssl)
1511ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001512ifneq ($(CONFIG_TLS), gnutls)
1513ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001514OBJS += ../src/crypto/sha512.o
1515endif
1516endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001517endif
1518endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001519CFLAGS += -DCONFIG_SHA512
1520OBJS += ../src/crypto/sha512-prf.o
1521endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001522
1523ifdef NEED_DH_GROUPS
1524OBJS += ../src/crypto/dh_groups.o
1525endif
1526ifdef NEED_DH_GROUPS_ALL
1527CFLAGS += -DALL_DH_GROUPS
1528endif
1529ifdef CONFIG_INTERNAL_DH_GROUP5
1530ifdef NEED_DH_GROUPS
1531OBJS += ../src/crypto/dh_group5.o
1532endif
1533endif
1534
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001535ifdef NEED_ECC
1536CFLAGS += -DCONFIG_ECC
1537endif
1538
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001539ifdef CONFIG_NO_RANDOM_POOL
1540CFLAGS += -DCONFIG_NO_RANDOM_POOL
1541else
Hai Shalom74f70d42019-02-11 14:42:39 -08001542ifdef CONFIG_GETRANDOM
1543CFLAGS += -DCONFIG_GETRANDOM
1544endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001545OBJS += ../src/crypto/random.o
1546endif
1547
1548ifdef CONFIG_CTRL_IFACE
1549ifeq ($(CONFIG_CTRL_IFACE), y)
1550ifdef CONFIG_NATIVE_WINDOWS
1551CONFIG_CTRL_IFACE=named_pipe
1552else
1553CONFIG_CTRL_IFACE=unix
1554endif
1555endif
1556CFLAGS += -DCONFIG_CTRL_IFACE
1557ifeq ($(CONFIG_CTRL_IFACE), unix)
1558CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001559OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001560endif
1561ifeq ($(CONFIG_CTRL_IFACE), udp)
1562CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1563endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001564ifeq ($(CONFIG_CTRL_IFACE), udp6)
1565CONFIG_CTRL_IFACE=udp
1566CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1567CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1568endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001569ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1570CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1571endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001572ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1573CONFIG_CTRL_IFACE=udp
1574CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1575CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1576endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001577ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1578CONFIG_CTRL_IFACE=udp
1579CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1580CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1581CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1582endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001583OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1584endif
1585
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001586ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001587CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1588OBJS += dbus/dbus_dict_helpers.o
1589OBJS += dbus/dbus_new_helpers.o
1590OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1591OBJS += dbus/dbus_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001592ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001593OBJS += dbus/dbus_new_handlers_wps.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001594endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001595ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001596OBJS += dbus/dbus_new_handlers_p2p.o
Jouni Malinen75ecf522011-06-27 15:19:46 -07001597endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001598ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001599DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001600endif
1601ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001602DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001603endif
1604ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001605OBJS += dbus/dbus_new_introspect.o
1606CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001607endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001608CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001609LIBS += $(DBUS_LIBS)
Hai Shalom021b0b52019-04-10 11:17:58 -07001610endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001611
1612ifdef CONFIG_READLINE
1613OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001614LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001615else
1616ifdef CONFIG_WPA_CLI_EDIT
1617OBJS_c += ../src/utils/edit.o
1618else
1619OBJS_c += ../src/utils/edit_simple.o
1620endif
1621endif
1622
1623ifdef CONFIG_NATIVE_WINDOWS
1624CFLAGS += -DCONFIG_NATIVE_WINDOWS
1625LIBS += -lws2_32 -lgdi32 -lcrypt32
1626LIBS_c += -lws2_32
1627LIBS_p += -lws2_32 -lgdi32
1628ifeq ($(CONFIG_CRYPTO), cryptoapi)
1629LIBS_p += -lcrypt32
1630endif
1631endif
1632
1633ifdef CONFIG_NO_STDOUT_DEBUG
1634CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1635ifndef CONFIG_CTRL_IFACE
1636CFLAGS += -DCONFIG_NO_WPA_MSG
1637endif
1638endif
1639
1640ifdef CONFIG_IPV6
1641# for eapol_test only
1642CFLAGS += -DCONFIG_IPV6
1643endif
1644
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001645ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1646CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1647endif
1648
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001649ifdef NEED_BASE64
1650OBJS += ../src/utils/base64.o
1651endif
1652
1653ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001654OBJS += sme.o
1655CFLAGS += -DCONFIG_SME
1656endif
1657
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001658OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001659OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001660
1661ifdef NEED_EAP_COMMON
1662OBJS += ../src/eap_common/eap_common.o
1663endif
1664
1665ifndef CONFIG_MAIN
1666CONFIG_MAIN=main
1667endif
1668
1669ifdef CONFIG_DEBUG_SYSLOG
1670CFLAGS += -DCONFIG_DEBUG_SYSLOG
1671ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1672CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1673endif
1674endif
1675
Dmitry Shmidt04949592012-07-19 12:16:46 -07001676ifdef CONFIG_DEBUG_LINUX_TRACING
1677CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1678endif
1679
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001680ifdef CONFIG_DEBUG_FILE
1681CFLAGS += -DCONFIG_DEBUG_FILE
1682endif
1683
1684ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1685CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1686endif
1687
1688ifdef CONFIG_FIPS
1689CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001690ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001691ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001692$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1693endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001694endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001695endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001696
1697OBJS += $(SHA1OBJS) $(DESOBJS)
1698
1699OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001700OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001701OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001702
1703ifdef CONFIG_BGSCAN_SIMPLE
1704CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1705OBJS += bgscan_simple.o
1706NEED_BGSCAN=y
1707endif
1708
1709ifdef CONFIG_BGSCAN_LEARN
1710CFLAGS += -DCONFIG_BGSCAN_LEARN
1711OBJS += bgscan_learn.o
1712NEED_BGSCAN=y
1713endif
1714
1715ifdef NEED_BGSCAN
1716CFLAGS += -DCONFIG_BGSCAN
1717OBJS += bgscan.o
1718endif
1719
Dmitry Shmidt04949592012-07-19 12:16:46 -07001720ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1721CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1722OBJS += autoscan_exponential.o
1723NEED_AUTOSCAN=y
1724endif
1725
1726ifdef CONFIG_AUTOSCAN_PERIODIC
1727CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1728OBJS += autoscan_periodic.o
1729NEED_AUTOSCAN=y
1730endif
1731
1732ifdef NEED_AUTOSCAN
1733CFLAGS += -DCONFIG_AUTOSCAN
1734OBJS += autoscan.o
1735endif
1736
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001737ifdef CONFIG_EXT_PASSWORD_TEST
1738OBJS += ../src/utils/ext_password_test.o
1739CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1740NEED_EXT_PASSWORD=y
1741endif
1742
1743ifdef NEED_EXT_PASSWORD
1744OBJS += ../src/utils/ext_password.o
1745CFLAGS += -DCONFIG_EXT_PASSWORD
1746endif
1747
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001748ifdef NEED_GAS_SERVER
1749OBJS += ../src/common/gas_server.o
1750CFLAGS += -DCONFIG_GAS_SERVER
1751NEED_GAS=y
1752endif
1753
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001754ifdef NEED_GAS
1755OBJS += ../src/common/gas.o
1756OBJS += gas_query.o
1757CFLAGS += -DCONFIG_GAS
1758NEED_OFFCHANNEL=y
1759endif
1760
1761ifdef NEED_OFFCHANNEL
1762OBJS += offchannel.o
1763CFLAGS += -DCONFIG_OFFCHANNEL
1764endif
1765
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001766ifdef NEED_JSON
1767OBJS += ../src/utils/json.o
1768CFLAGS += -DCONFIG_JSON
1769endif
1770
Dmitry Shmidt71757432014-06-02 13:50:35 -07001771ifdef CONFIG_MODULE_TESTS
1772CFLAGS += -DCONFIG_MODULE_TESTS
1773OBJS += wpas_module_tests.o
1774OBJS += ../src/utils/utils_module_tests.o
1775OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001776OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001777ifdef CONFIG_WPS
1778OBJS += ../src/wps/wps_module_tests.o
1779endif
1780endif
1781
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001782OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001783OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001784
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001785OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1786OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1787OBJS_t += ../src/radius/radius_client.o
1788OBJS_t += ../src/radius/radius.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001789OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001790
1791OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1792OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1793
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001794OBJS += $(CONFIG_MAIN).o
1795
1796ifdef CONFIG_PRIVSEP
1797OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1798OBJS_priv += $(OBJS_l2)
1799OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1800OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1801OBJS_priv += ../src/utils/common.o
1802OBJS_priv += ../src/utils/wpa_debug.o
1803OBJS_priv += ../src/utils/wpabuf.o
1804OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001805ifdef CONFIG_DRIVER_NL80211
1806OBJS_priv += ../src/common/ieee802_11_common.o
1807endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001808OBJS += ../src/l2_packet/l2_packet_privsep.o
1809OBJS += ../src/drivers/driver_privsep.o
1810EXTRA_progs += wpa_priv
1811else
1812OBJS += $(OBJS_d) ../src/drivers/drivers.o
1813OBJS += $(OBJS_l2)
1814endif
1815
1816ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1817CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1818OBJS += ../src/drivers/ndis_events.o
1819EXTRALIBS += -loleaut32 -lole32 -luuid
1820ifdef PLATFORMSDKLIB
1821EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1822else
1823EXTRALIBS += WbemUuid.Lib
1824endif
1825endif
1826
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001827ifdef CONFIG_FST
1828CFLAGS += -DCONFIG_FST
1829ifdef CONFIG_FST_TEST
1830CFLAGS += -DCONFIG_FST_TEST
1831endif
1832FST_OBJS += ../src/fst/fst.o
1833FST_OBJS += ../src/fst/fst_session.o
1834FST_OBJS += ../src/fst/fst_iface.o
1835FST_OBJS += ../src/fst/fst_group.o
1836FST_OBJS += ../src/fst/fst_ctrl_aux.o
1837ifdef CONFIG_CTRL_IFACE
1838FST_OBJS += ../src/fst/fst_ctrl_iface.o
1839endif
1840OBJS += $(FST_OBJS)
1841OBJS_t += $(FST_OBJS)
1842OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001843OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001844endif
1845
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001846ifndef LDO
1847LDO=$(CC)
1848endif
1849
1850Q=@
1851E=echo
1852ifeq ($(V), 1)
1853Q=
1854E=true
1855endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001856ifeq ($(QUIET), 1)
1857Q=@
1858E=true
1859endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001860
1861dynamic_eap_methods: $(EAPDYN)
1862
1863../src/drivers/build.wpa_supplicant:
1864 @if [ -f ../src/drivers/build.hostapd ]; then \
1865 $(MAKE) -C ../src/drivers clean; \
1866 fi
1867 @touch ../src/drivers/build.wpa_supplicant
1868
1869BCHECK=../src/drivers/build.wpa_supplicant
1870
1871wpa_priv: $(BCHECK) $(OBJS_priv)
1872 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1873 @$(E) " LD " $@
1874
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001875$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1876
1877wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001878 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1879 @$(E) " LD " $@
1880
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001881eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001882 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1883 @$(E) " LD " $@
1884
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001885preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001886 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1887 @$(E) " LD " $@
1888
1889wpa_passphrase: $(OBJS_p)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001890 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001891 @$(E) " LD " $@
1892
1893wpa_cli: $(OBJS_c)
1894 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1895 @$(E) " LD " $@
1896
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001897LIBCTRL += ../src/common/wpa_ctrl.o
1898LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001899LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001900LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001901LIBCTRLSO += ../src/common/wpa_ctrl.c
1902LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001903LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001904LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001905
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
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001915libwpa_test1: libwpa_test.o libwpa_client.a
1916 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 libwpa_test.o libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001917 @$(E) " LD " $@
1918
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001919libwpa_test2: libwpa_test.o libwpa_client.so
1920 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 libwpa_test.o -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001921 @$(E) " LD " $@
1922
Dmitry Shmidt04949592012-07-19 12:16:46 -07001923nfc_pw_token: $(OBJS_nfc)
1924 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1925 @$(E) " LD " $@
1926
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001927win_if_list: win_if_list.c
1928 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1929 @$(E) " LD " $@
1930
1931eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1932 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1933 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1934
1935eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1936 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1937 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1938
1939eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1940 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1941 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1942
1943eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1944 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1945 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1946
1947eap_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
1948 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1949 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1950
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001951eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1952 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1953 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1954
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001955%.so: %.c
1956 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1957 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1958
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001959ifdef CONFIG_CODE_COVERAGE
1960%.o: %.c
1961 @$(E) " CC " $<
1962 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1963else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001964%.o: %.c
1965 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1966 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001967endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001968
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001969%.service: %.service.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001970 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001971 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001972
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001973%@.service: %.service.arg.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001974 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001975 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001976
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001977wpa_supplicant.exe: wpa_supplicant
1978 mv -f $< $@
1979wpa_cli.exe: wpa_cli
1980 mv -f $< $@
1981wpa_passphrase.exe: wpa_passphrase
1982 mv -f $< $@
1983win_if_list.exe: win_if_list
1984 mv -f $< $@
1985eapol_test.exe: eapol_test
1986 mv -f $< $@
1987
1988WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1989
1990windows-bin: $(WINALL)
1991 $(STRIP) $(WINALL)
1992
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001993wpa_gui:
1994 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001995
1996wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001997 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001998
1999wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
2000 lrelease wpa_gui-qt4/wpa_gui.pro
2001
2002wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
2003 $(MAKE) -C wpa_gui-qt4
2004
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07002005FIPSDIR=/usr/local/ssl/fips-2.0
2006FIPSLD=$(FIPSDIR)/bin/fipsld
2007fips:
2008 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
2009
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002010lcov-html: wpa_supplicant.gcda
2011 lcov -c -d .. > lcov.info
2012 genhtml lcov.info --output-directory lcov-html
2013
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002014clean:
2015 $(MAKE) -C ../src clean
2016 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08002017 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
2018 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002019 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07002020 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002021 rm -f lcov.info
2022 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07002023 rm -f libwpa_client.a
2024 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08002025 rm -f libwpa_test1 libwpa_test2
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002026
2027-include $(OBJS:%.o=%.d)