blob: f1384d5fa2dc87f79bb7b1b7ac8829441a20aa17 [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
106OBJS += op_classes.o
107OBJS += rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700108OBJS_p = wpa_passphrase.o
109OBJS_p += ../src/utils/common.o
110OBJS_p += ../src/utils/wpa_debug.o
111OBJS_p += ../src/utils/wpabuf.o
112OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
113OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800114OBJS_c += ../src/utils/common.o
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700115OBJS_c += ../src/common/cli.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800116OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700117
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700118ifndef CONFIG_OS
119ifdef CONFIG_NATIVE_WINDOWS
120CONFIG_OS=win32
121else
122CONFIG_OS=unix
123endif
124endif
125
126ifeq ($(CONFIG_OS), internal)
127CFLAGS += -DOS_NO_C_LIB_DEFINES
128endif
129
130OBJS += ../src/utils/os_$(CONFIG_OS).o
131OBJS_p += ../src/utils/os_$(CONFIG_OS).o
132OBJS_c += ../src/utils/os_$(CONFIG_OS).o
133
134ifdef CONFIG_WPA_TRACE
135CFLAGS += -DWPA_TRACE
136OBJS += ../src/utils/trace.o
137OBJS_p += ../src/utils/trace.o
138OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800139OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -0800140LIBCTRL += ../src/utils/trace.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -0700141LIBCTRLSO += ../src/utils/trace.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700142LDFLAGS += -rdynamic
143CFLAGS += -funwind-tables
144ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800145CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800146LIBS += -lbfd -ldl -liberty -lz
147LIBS_p += -lbfd -ldl -liberty -lz
148LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700149endif
150endif
151
152ifndef CONFIG_ELOOP
153CONFIG_ELOOP=eloop
154endif
155OBJS += ../src/utils/$(CONFIG_ELOOP).o
156OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
157
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800158ifndef CONFIG_OSX
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800159ifeq ($(CONFIG_ELOOP), eloop)
160# Using glibc < 2.17 requires -lrt for clock_gettime()
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800161# OS X has an alternate implementation
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800162LIBS += -lrt
163LIBS_c += -lrt
164LIBS_p += -lrt
165endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800166endif
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800167
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800168ifdef CONFIG_ELOOP_POLL
169CFLAGS += -DCONFIG_ELOOP_POLL
170endif
171
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700172ifdef CONFIG_ELOOP_EPOLL
173CFLAGS += -DCONFIG_ELOOP_EPOLL
174endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700175
Dmitry Shmidtb97e4282016-02-08 10:16:07 -0800176ifdef CONFIG_ELOOP_KQUEUE
177CFLAGS += -DCONFIG_ELOOP_KQUEUE
178endif
179
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700180ifdef CONFIG_EAPOL_TEST
181CFLAGS += -Werror -DEAPOL_TEST
182endif
183
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800184ifdef CONFIG_CODE_COVERAGE
185CFLAGS += -O0 -fprofile-arcs -ftest-coverage
186LIBS += -lgcov
187LIBS_c += -lgcov
188LIBS_p += -lgcov
189endif
190
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800191ifdef CONFIG_HT_OVERRIDES
192CFLAGS += -DCONFIG_HT_OVERRIDES
193endif
194
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700195ifdef CONFIG_VHT_OVERRIDES
196CFLAGS += -DCONFIG_VHT_OVERRIDES
197endif
198
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700199ifndef CONFIG_BACKEND
200CONFIG_BACKEND=file
201endif
202
203ifeq ($(CONFIG_BACKEND), file)
204OBJS += config_file.o
205ifndef CONFIG_NO_CONFIG_BLOBS
206NEED_BASE64=y
207endif
208CFLAGS += -DCONFIG_BACKEND_FILE
209endif
210
211ifeq ($(CONFIG_BACKEND), winreg)
212OBJS += config_winreg.o
213endif
214
215ifeq ($(CONFIG_BACKEND), none)
216OBJS += config_none.o
217endif
218
219ifdef CONFIG_NO_CONFIG_WRITE
220CFLAGS += -DCONFIG_NO_CONFIG_WRITE
221endif
222
223ifdef CONFIG_NO_CONFIG_BLOBS
224CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
225endif
226
227ifdef CONFIG_NO_SCAN_PROCESSING
228CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
229endif
230
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800231ifdef CONFIG_SUITEB
232CFLAGS += -DCONFIG_SUITEB
233NEED_SHA256=y
234NEED_AES_OMAC1=y
235endif
236
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800237ifdef CONFIG_SUITEB192
238CFLAGS += -DCONFIG_SUITEB192
239NEED_SHA384=y
240endif
241
Hai Shalom74f70d42019-02-11 14:42:39 -0800242ifdef CONFIG_OCV
243CFLAGS += -DCONFIG_OCV
244OBJS += ../src/common/ocv.o
245CONFIG_IEEE80211W=y
246endif
247
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700248ifdef CONFIG_IEEE80211W
249CFLAGS += -DCONFIG_IEEE80211W
250NEED_SHA256=y
251NEED_AES_OMAC1=y
252endif
253
254ifdef CONFIG_IEEE80211R
255CFLAGS += -DCONFIG_IEEE80211R
256OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700257NEED_SHA256=y
258NEED_AES_OMAC1=y
259endif
260
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800261ifdef CONFIG_MESH
262NEED_80211_COMMON=y
263NEED_SHA256=y
264NEED_AES_SIV=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800265CONFIG_SAE=y
266CONFIG_AP=y
267CFLAGS += -DCONFIG_MESH
268OBJS += mesh.o
269OBJS += mesh_mpm.o
270OBJS += mesh_rsn.o
271endif
272
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800273ifdef CONFIG_SAE
274CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800275OBJS += ../src/common/sae.o
276NEED_ECC=y
277NEED_DH_GROUPS=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700278NEED_DRAGONFLY=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800279endif
280
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700281ifdef CONFIG_DPP
282CFLAGS += -DCONFIG_DPP
283OBJS += ../src/common/dpp.o
284OBJS += dpp_supplicant.o
285NEED_AES_SIV=y
286NEED_HMAC_SHA256_KDF=y
287NEED_HMAC_SHA384_KDF=y
288NEED_HMAC_SHA512_KDF=y
289NEED_SHA256=y
290NEED_SHA384=y
291NEED_SHA512=y
292NEED_JSON=y
293NEED_GAS_SERVER=y
294NEED_BASE64=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700295ifdef CONFIG_DPP2
296CFLAGS += -DCONFIG_DPP2
297endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700298endif
299
300ifdef CONFIG_OWE
301CFLAGS += -DCONFIG_OWE
302NEED_ECC=y
303NEED_HMAC_SHA256_KDF=y
304NEED_HMAC_SHA384_KDF=y
305NEED_HMAC_SHA512_KDF=y
306NEED_SHA256=y
307NEED_SHA384=y
308NEED_SHA512=y
309endif
310
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800311ifdef CONFIG_FILS
312CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800313NEED_SHA384=y
314NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700315ifdef CONFIG_FILS_SK_PFS
316CFLAGS += -DCONFIG_FILS_SK_PFS
317NEED_ECC=y
318endif
319endif
320
321ifdef CONFIG_MBO
322CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800323endif
324
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800325ifdef CONFIG_WNM
326CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700327OBJS += wnm_sta.o
328endif
329
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700330ifdef CONFIG_TDLS
331CFLAGS += -DCONFIG_TDLS
332OBJS += ../src/rsn_supp/tdls.o
333NEED_SHA256=y
334NEED_AES_OMAC1=y
335endif
336
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800337ifdef CONFIG_TDLS_TESTING
338CFLAGS += -DCONFIG_TDLS_TESTING
339endif
340
Dmitry Shmidt29333592017-01-09 12:27:11 -0800341ifdef CONFIG_PMKSA_CACHE_EXTERNAL
342CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
343endif
344
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700345ifndef CONFIG_NO_WPA
346OBJS += ../src/rsn_supp/wpa.o
347OBJS += ../src/rsn_supp/preauth.o
348OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700349OBJS += ../src/rsn_supp/wpa_ie.o
350OBJS += ../src/common/wpa_common.o
351NEED_AES=y
352NEED_SHA1=y
353NEED_MD5=y
354NEED_RC4=y
355else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700356CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800357ifeq ($(CONFIG_TLS), internal)
358NEED_SHA1=y
359NEED_MD5=y
360endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700361endif
362
363ifdef CONFIG_IBSS_RSN
364NEED_RSN_AUTHENTICATOR=y
365CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700366CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700367OBJS += ibss_rsn.o
368endif
369
Dmitry Shmidte4663042016-04-04 10:07:49 -0700370ifdef CONFIG_MATCH_IFACE
371CFLAGS += -DCONFIG_MATCH_IFACE
372endif
373
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700374ifdef CONFIG_P2P
375OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700376OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700377OBJS += ../src/p2p/p2p.o
378OBJS += ../src/p2p/p2p_utils.o
379OBJS += ../src/p2p/p2p_parse.o
380OBJS += ../src/p2p/p2p_build.o
381OBJS += ../src/p2p/p2p_go_neg.o
382OBJS += ../src/p2p/p2p_sd.o
383OBJS += ../src/p2p/p2p_pd.o
384OBJS += ../src/p2p/p2p_invitation.o
385OBJS += ../src/p2p/p2p_dev_disc.o
386OBJS += ../src/p2p/p2p_group.o
387OBJS += ../src/ap/p2p_hostapd.o
388CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800389NEED_GAS=y
390NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800391CONFIG_WPS=y
392CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700393ifdef CONFIG_P2P_STRICT
394CFLAGS += -DCONFIG_P2P_STRICT
395endif
396endif
397
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700398ifdef CONFIG_WIFI_DISPLAY
399CFLAGS += -DCONFIG_WIFI_DISPLAY
400OBJS += wifi_display.o
401endif
402
Dmitry Shmidt04949592012-07-19 12:16:46 -0700403ifdef CONFIG_HS20
404OBJS += hs20_supplicant.o
405CFLAGS += -DCONFIG_HS20
406CONFIG_INTERWORKING=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800407NEED_AES_OMAC1=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700408endif
409
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800410ifdef CONFIG_INTERWORKING
411OBJS += interworking.o
412CFLAGS += -DCONFIG_INTERWORKING
413NEED_GAS=y
414endif
415
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700416ifdef CONFIG_NO_ROAMING
417CFLAGS += -DCONFIG_NO_ROAMING
418endif
419
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700420include ../src/drivers/drivers.mak
421ifdef CONFIG_AP
422OBJS_d += $(DRV_BOTH_OBJS)
423CFLAGS += $(DRV_BOTH_CFLAGS)
424LDFLAGS += $(DRV_BOTH_LDFLAGS)
425LIBS += $(DRV_BOTH_LIBS)
426else
427NEED_AP_MLME=
428OBJS_d += $(DRV_WPA_OBJS)
429CFLAGS += $(DRV_WPA_CFLAGS)
430LDFLAGS += $(DRV_WPA_LDFLAGS)
431LIBS += $(DRV_WPA_LIBS)
432endif
433
434ifndef CONFIG_L2_PACKET
435CONFIG_L2_PACKET=linux
436endif
437
438OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
439
440ifeq ($(CONFIG_L2_PACKET), pcap)
441ifdef CONFIG_WINPCAP
442CFLAGS += -DCONFIG_WINPCAP
443LIBS += -lwpcap -lpacket
444LIBS_w += -lwpcap
445else
446LIBS += -ldnet -lpcap
447endif
448endif
449
450ifeq ($(CONFIG_L2_PACKET), winpcap)
451LIBS += -lwpcap -lpacket
452LIBS_w += -lwpcap
453endif
454
455ifeq ($(CONFIG_L2_PACKET), freebsd)
456LIBS += -lpcap
457endif
458
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800459ifdef CONFIG_ERP
460CFLAGS += -DCONFIG_ERP
461NEED_SHA256=y
462NEED_HMAC_SHA256_KDF=y
463endif
464
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700465ifdef CONFIG_EAP_TLS
466# EAP-TLS
467ifeq ($(CONFIG_EAP_TLS), dyn)
468CFLAGS += -DEAP_TLS_DYNAMIC
469EAPDYN += ../src/eap_peer/eap_tls.so
470else
471CFLAGS += -DEAP_TLS
472OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700473endif
474TLS_FUNCS=y
475CONFIG_IEEE8021X_EAPOL=y
476endif
477
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700478ifdef CONFIG_EAP_UNAUTH_TLS
479# EAP-UNAUTH-TLS
480CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700481ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700482OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700483TLS_FUNCS=y
484endif
485CONFIG_IEEE8021X_EAPOL=y
486endif
487
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700488ifdef CONFIG_EAP_PEAP
489# EAP-PEAP
490ifeq ($(CONFIG_EAP_PEAP), dyn)
491CFLAGS += -DEAP_PEAP_DYNAMIC
492EAPDYN += ../src/eap_peer/eap_peap.so
493else
494CFLAGS += -DEAP_PEAP
495OBJS += ../src/eap_peer/eap_peap.o
496OBJS += ../src/eap_common/eap_peap_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700497endif
498TLS_FUNCS=y
499CONFIG_IEEE8021X_EAPOL=y
500endif
501
502ifdef CONFIG_EAP_TTLS
503# EAP-TTLS
504ifeq ($(CONFIG_EAP_TTLS), dyn)
505CFLAGS += -DEAP_TTLS_DYNAMIC
506EAPDYN += ../src/eap_peer/eap_ttls.so
507else
508CFLAGS += -DEAP_TTLS
509OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700510endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700511TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800512ifndef CONFIG_FIPS
513MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700514CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800515endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700516CONFIG_IEEE8021X_EAPOL=y
517endif
518
519ifdef CONFIG_EAP_MD5
520# EAP-MD5
521ifeq ($(CONFIG_EAP_MD5), dyn)
522CFLAGS += -DEAP_MD5_DYNAMIC
523EAPDYN += ../src/eap_peer/eap_md5.so
524else
525CFLAGS += -DEAP_MD5
526OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700527endif
528CHAP=y
529CONFIG_IEEE8021X_EAPOL=y
530endif
531
532# backwards compatibility for old spelling
533ifdef CONFIG_MSCHAPV2
534ifndef CONFIG_EAP_MSCHAPV2
535CONFIG_EAP_MSCHAPV2=y
536endif
537endif
538
539ifdef CONFIG_EAP_MSCHAPV2
540# EAP-MSCHAPv2
541ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
542CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
543EAPDYN += ../src/eap_peer/eap_mschapv2.so
544EAPDYN += ../src/eap_peer/mschapv2.so
545else
546CFLAGS += -DEAP_MSCHAPv2
547OBJS += ../src/eap_peer/eap_mschapv2.o
548OBJS += ../src/eap_peer/mschapv2.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700549endif
550MS_FUNCS=y
551CONFIG_IEEE8021X_EAPOL=y
552endif
553
554ifdef CONFIG_EAP_GTC
555# EAP-GTC
556ifeq ($(CONFIG_EAP_GTC), dyn)
557CFLAGS += -DEAP_GTC_DYNAMIC
558EAPDYN += ../src/eap_peer/eap_gtc.so
559else
560CFLAGS += -DEAP_GTC
561OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700562endif
563CONFIG_IEEE8021X_EAPOL=y
564endif
565
566ifdef CONFIG_EAP_OTP
567# EAP-OTP
568ifeq ($(CONFIG_EAP_OTP), dyn)
569CFLAGS += -DEAP_OTP_DYNAMIC
570EAPDYN += ../src/eap_peer/eap_otp.so
571else
572CFLAGS += -DEAP_OTP
573OBJS += ../src/eap_peer/eap_otp.o
574endif
575CONFIG_IEEE8021X_EAPOL=y
576endif
577
578ifdef CONFIG_EAP_SIM
579# EAP-SIM
580ifeq ($(CONFIG_EAP_SIM), dyn)
581CFLAGS += -DEAP_SIM_DYNAMIC
582EAPDYN += ../src/eap_peer/eap_sim.so
583else
584CFLAGS += -DEAP_SIM
585OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700586endif
587CONFIG_IEEE8021X_EAPOL=y
588CONFIG_EAP_SIM_COMMON=y
589NEED_AES_CBC=y
590endif
591
592ifdef CONFIG_EAP_LEAP
593# EAP-LEAP
594ifeq ($(CONFIG_EAP_LEAP), dyn)
595CFLAGS += -DEAP_LEAP_DYNAMIC
596EAPDYN += ../src/eap_peer/eap_leap.so
597else
598CFLAGS += -DEAP_LEAP
599OBJS += ../src/eap_peer/eap_leap.o
600endif
601MS_FUNCS=y
602CONFIG_IEEE8021X_EAPOL=y
603endif
604
605ifdef CONFIG_EAP_PSK
606# EAP-PSK
607ifeq ($(CONFIG_EAP_PSK), dyn)
608CFLAGS += -DEAP_PSK_DYNAMIC
609EAPDYN += ../src/eap_peer/eap_psk.so
610else
611CFLAGS += -DEAP_PSK
612OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700613endif
614CONFIG_IEEE8021X_EAPOL=y
615NEED_AES=y
616NEED_AES_OMAC1=y
617NEED_AES_ENCBLOCK=y
618NEED_AES_EAX=y
619endif
620
621ifdef CONFIG_EAP_AKA
622# EAP-AKA
623ifeq ($(CONFIG_EAP_AKA), dyn)
624CFLAGS += -DEAP_AKA_DYNAMIC
625EAPDYN += ../src/eap_peer/eap_aka.so
626else
627CFLAGS += -DEAP_AKA
628OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700629endif
630CONFIG_IEEE8021X_EAPOL=y
631CONFIG_EAP_SIM_COMMON=y
632NEED_AES_CBC=y
633endif
634
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800635ifdef CONFIG_EAP_PROXY
636CFLAGS += -DCONFIG_EAP_PROXY
637OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700638include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800639CONFIG_IEEE8021X_EAPOL=y
640endif
641
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700642ifdef CONFIG_EAP_AKA_PRIME
643# EAP-AKA'
644ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
645CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
646else
647CFLAGS += -DEAP_AKA_PRIME
648endif
649NEED_SHA256=y
650endif
651
652ifdef CONFIG_EAP_SIM_COMMON
653OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700654NEED_AES=y
655NEED_FIPS186_2_PRF=y
656endif
657
658ifdef CONFIG_EAP_FAST
659# EAP-FAST
660ifeq ($(CONFIG_EAP_FAST), dyn)
661CFLAGS += -DEAP_FAST_DYNAMIC
662EAPDYN += ../src/eap_peer/eap_fast.so
663EAPDYN += ../src/eap_common/eap_fast_common.o
664else
665CFLAGS += -DEAP_FAST
666OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
667OBJS += ../src/eap_common/eap_fast_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700668endif
669TLS_FUNCS=y
670CONFIG_IEEE8021X_EAPOL=y
671NEED_T_PRF=y
672endif
673
Hai Shalom81f62d82019-07-22 12:10:00 -0700674ifdef CONFIG_EAP_TEAP
675# EAP-TEAP
676ifeq ($(CONFIG_EAP_TEAP), dyn)
677CFLAGS += -DEAP_TEAP_DYNAMIC
678EAPDYN += ../src/eap_peer/eap_teap.so
679EAPDYN += ../src/eap_common/eap_teap_common.o
680else
681CFLAGS += -DEAP_TEAP
682OBJS += ../src/eap_peer/eap_teap.o ../src/eap_peer/eap_teap_pac.o
683OBJS += ../src/eap_common/eap_teap_common.o
684endif
685TLS_FUNCS=y
686CONFIG_IEEE8021X_EAPOL=y
687NEED_T_PRF=y
688NEED_SHA384=y
689endif
690
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700691ifdef CONFIG_EAP_PAX
692# EAP-PAX
693ifeq ($(CONFIG_EAP_PAX), dyn)
694CFLAGS += -DEAP_PAX_DYNAMIC
695EAPDYN += ../src/eap_peer/eap_pax.so
696else
697CFLAGS += -DEAP_PAX
698OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700699endif
700CONFIG_IEEE8021X_EAPOL=y
701endif
702
703ifdef CONFIG_EAP_SAKE
704# EAP-SAKE
705ifeq ($(CONFIG_EAP_SAKE), dyn)
706CFLAGS += -DEAP_SAKE_DYNAMIC
707EAPDYN += ../src/eap_peer/eap_sake.so
708else
709CFLAGS += -DEAP_SAKE
710OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700711endif
712CONFIG_IEEE8021X_EAPOL=y
713endif
714
715ifdef CONFIG_EAP_GPSK
716# EAP-GPSK
717ifeq ($(CONFIG_EAP_GPSK), dyn)
718CFLAGS += -DEAP_GPSK_DYNAMIC
719EAPDYN += ../src/eap_peer/eap_gpsk.so
720else
721CFLAGS += -DEAP_GPSK
722OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700723endif
724CONFIG_IEEE8021X_EAPOL=y
725ifdef CONFIG_EAP_GPSK_SHA256
726CFLAGS += -DEAP_GPSK_SHA256
727endif
728NEED_SHA256=y
729NEED_AES_OMAC1=y
730endif
731
732ifdef CONFIG_EAP_PWD
733CFLAGS += -DEAP_PWD
Roshan Pius3a1667e2018-07-03 15:17:14 -0700734ifeq ($(CONFIG_TLS), wolfssl)
735CFLAGS += -DCONFIG_ECC
736endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700737OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700738CONFIG_IEEE8021X_EAPOL=y
739NEED_SHA256=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700740NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700741NEED_DRAGONFLY=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700742endif
743
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700744ifdef CONFIG_EAP_EKE
745# EAP-EKE
746ifeq ($(CONFIG_EAP_EKE), dyn)
747CFLAGS += -DEAP_EKE_DYNAMIC
748EAPDYN += ../src/eap_peer/eap_eke.so
749else
750CFLAGS += -DEAP_EKE
751OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700752endif
753CONFIG_IEEE8021X_EAPOL=y
754NEED_DH_GROUPS=y
755NEED_DH_GROUPS_ALL=y
756NEED_SHA256=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800757NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700758endif
759
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700760ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700761# EAP-WSC
762CFLAGS += -DCONFIG_WPS -DEAP_WSC
763OBJS += wps_supplicant.o
764OBJS += ../src/utils/uuid.o
765OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
766OBJS += ../src/wps/wps.o
767OBJS += ../src/wps/wps_common.o
768OBJS += ../src/wps/wps_attr_parse.o
769OBJS += ../src/wps/wps_attr_build.o
770OBJS += ../src/wps/wps_attr_process.o
771OBJS += ../src/wps/wps_dev_attr.o
772OBJS += ../src/wps/wps_enrollee.o
773OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700774CONFIG_IEEE8021X_EAPOL=y
775NEED_DH_GROUPS=y
776NEED_SHA256=y
777NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700778NEED_AES_CBC=y
779NEED_MODEXP=y
780
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781ifdef CONFIG_WPS_NFC
782CFLAGS += -DCONFIG_WPS_NFC
783OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700784NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700785endif
786
787ifdef NEED_WPS_OOB
788CFLAGS += -DCONFIG_WPS_OOB
789endif
790
791ifdef CONFIG_WPS_ER
792CONFIG_WPS_UPNP=y
793CFLAGS += -DCONFIG_WPS_ER
794OBJS += ../src/wps/wps_er.o
795OBJS += ../src/wps/wps_er_ssdp.o
796endif
797
798ifdef CONFIG_WPS_UPNP
799CFLAGS += -DCONFIG_WPS_UPNP
800OBJS += ../src/wps/wps_upnp.o
801OBJS += ../src/wps/wps_upnp_ssdp.o
802OBJS += ../src/wps/wps_upnp_web.o
803OBJS += ../src/wps/wps_upnp_event.o
804OBJS += ../src/wps/wps_upnp_ap.o
805OBJS += ../src/wps/upnp_xml.o
806OBJS += ../src/wps/httpread.o
807OBJS += ../src/wps/http_client.o
808OBJS += ../src/wps/http_server.o
809endif
810
811ifdef CONFIG_WPS_STRICT
812CFLAGS += -DCONFIG_WPS_STRICT
813OBJS += ../src/wps/wps_validate.o
814endif
815
816ifdef CONFIG_WPS_TESTING
817CFLAGS += -DCONFIG_WPS_TESTING
818endif
819
820ifdef CONFIG_WPS_REG_DISABLE_OPEN
821CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
822endif
823
824endif
825
826ifdef CONFIG_EAP_IKEV2
827# EAP-IKEv2
828ifeq ($(CONFIG_EAP_IKEV2), dyn)
829CFLAGS += -DEAP_IKEV2_DYNAMIC
830EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
831EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
832else
833CFLAGS += -DEAP_IKEV2
834OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
835OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700836endif
837CONFIG_IEEE8021X_EAPOL=y
838NEED_DH_GROUPS=y
839NEED_DH_GROUPS_ALL=y
840NEED_MODEXP=y
841NEED_CIPHER=y
842endif
843
844ifdef CONFIG_EAP_VENDOR_TEST
845ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
846CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
847EAPDYN += ../src/eap_peer/eap_vendor_test.so
848else
849CFLAGS += -DEAP_VENDOR_TEST
850OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700851endif
852CONFIG_IEEE8021X_EAPOL=y
853endif
854
855ifdef CONFIG_EAP_TNC
856# EAP-TNC
857CFLAGS += -DEAP_TNC
858OBJS += ../src/eap_peer/eap_tnc.o
859OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700860NEED_BASE64=y
861ifndef CONFIG_NATIVE_WINDOWS
862ifndef CONFIG_DRIVER_BSD
863LIBS += -ldl
864endif
865endif
866endif
867
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700868ifdef CONFIG_MACSEC
869CFLAGS += -DCONFIG_MACSEC
870CONFIG_IEEE8021X_EAPOL=y
871NEED_AES_ENCBLOCK=y
872NEED_AES_UNWRAP=y
873NEED_AES_WRAP=y
874NEED_AES_OMAC1=y
875OBJS += wpas_kay.o
876OBJS += ../src/pae/ieee802_1x_cp.o
877OBJS += ../src/pae/ieee802_1x_kay.o
878OBJS += ../src/pae/ieee802_1x_key.o
879OBJS += ../src/pae/ieee802_1x_secy_ops.o
Hai Shalom81f62d82019-07-22 12:10:00 -0700880ifdef CONFIG_AP
881OBJS += ../src/ap/wpa_auth_kay.o
882endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700883endif
884
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700885ifdef CONFIG_IEEE8021X_EAPOL
886# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
887CFLAGS += -DIEEE8021X_EAPOL
888OBJS += ../src/eapol_supp/eapol_supp_sm.o
889OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
890NEED_EAP_COMMON=y
891ifdef CONFIG_DYNAMIC_EAP_METHODS
892CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
893LIBS += -ldl -rdynamic
894endif
895endif
896
897ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700898NEED_EAP_COMMON=y
899NEED_RSN_AUTHENTICATOR=y
900CFLAGS += -DCONFIG_AP
901OBJS += ap.o
902CFLAGS += -DCONFIG_NO_RADIUS
903CFLAGS += -DCONFIG_NO_ACCOUNTING
904CFLAGS += -DCONFIG_NO_VLAN
905OBJS += ../src/ap/hostapd.o
906OBJS += ../src/ap/wpa_auth_glue.o
907OBJS += ../src/ap/utils.o
908OBJS += ../src/ap/authsrv.o
909OBJS += ../src/ap/ap_config.o
910OBJS += ../src/utils/ip_addr.o
911OBJS += ../src/ap/sta_info.o
912OBJS += ../src/ap/tkip_countermeasures.o
913OBJS += ../src/ap/ap_mlme.o
914OBJS += ../src/ap/ieee802_1x.o
915OBJS += ../src/eapol_auth/eapol_auth_sm.o
916OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800917OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700918OBJS += ../src/ap/drv_callbacks.o
919OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800920OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800921OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800922OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700923OBJS += ../src/ap/neighbor_db.o
924OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700925ifdef CONFIG_IEEE80211N
926OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700927ifdef CONFIG_IEEE80211AC
928OBJS += ../src/ap/ieee802_11_vht.o
929endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800930ifdef CONFIG_IEEE80211AX
931OBJS += ../src/ap/ieee802_11_he.o
932endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700933endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700934ifdef CONFIG_WNM_AP
935CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800936OBJS += ../src/ap/wnm_ap.o
937endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800938ifdef CONFIG_MBO
939OBJS += ../src/ap/mbo_ap.o
940endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800941ifdef CONFIG_FILS
942OBJS += ../src/ap/fils_hlp.o
943endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700944ifdef CONFIG_CTRL_IFACE
945OBJS += ../src/ap/ctrl_iface_ap.o
946endif
947
948CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
949OBJS += ../src/eap_server/eap_server.o
950OBJS += ../src/eap_server/eap_server_identity.o
951OBJS += ../src/eap_server/eap_server_methods.o
952
953ifdef CONFIG_IEEE80211N
954CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700955ifdef CONFIG_IEEE80211AC
956CFLAGS += -DCONFIG_IEEE80211AC
957endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800958ifdef CONFIG_IEEE80211AX
959CFLAGS += -DCONFIG_IEEE80211AX
960endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700961endif
962
963ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700964OBJS += ../src/ap/wmm.o
965OBJS += ../src/ap/ap_list.o
966OBJS += ../src/ap/ieee802_11.o
967OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700968OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700969CFLAGS += -DNEED_AP_MLME
970endif
971ifdef CONFIG_WPS
972CFLAGS += -DEAP_SERVER_WSC
973OBJS += ../src/ap/wps_hostapd.o
974OBJS += ../src/eap_server/eap_server_wsc.o
975endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700976ifdef CONFIG_DPP
977OBJS += ../src/ap/dpp_hostapd.o
978OBJS += ../src/ap/gas_query_ap.o
979endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700980ifdef CONFIG_INTERWORKING
981OBJS += ../src/ap/gas_serv.o
982endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700983ifdef CONFIG_HS20
984OBJS += ../src/ap/hs20.o
985endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700986endif
987
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800988ifdef CONFIG_MBO
989OBJS += mbo.o
990CFLAGS += -DCONFIG_MBO
991endif
992
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700993ifdef NEED_RSN_AUTHENTICATOR
994CFLAGS += -DCONFIG_NO_RADIUS
995NEED_AES_WRAP=y
996OBJS += ../src/ap/wpa_auth.o
997OBJS += ../src/ap/wpa_auth_ie.o
998OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700999endif
1000
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08001001ifdef CONFIG_ACS
1002CFLAGS += -DCONFIG_ACS
1003OBJS += ../src/ap/acs.o
1004LIBS += -lm
1005endif
1006
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001007ifdef CONFIG_PCSC
1008# PC/SC interface for smartcards (USIM, GSM SIM)
1009CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
1010OBJS += ../src/utils/pcsc_funcs.o
1011# -lpthread may not be needed depending on how pcsc-lite was configured
1012ifdef CONFIG_NATIVE_WINDOWS
1013#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
1014#dynamic symbol loading that is now used in pcsc_funcs.c
1015#LIBS += -lwinscard
1016else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001017ifdef CONFIG_OSX
1018LIBS += -framework PCSC
1019else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001020LIBS += -lpcsclite -lpthread
1021endif
1022endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001023endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001024
1025ifdef CONFIG_SIM_SIMULATOR
1026CFLAGS += -DCONFIG_SIM_SIMULATOR
1027NEED_MILENAGE=y
1028endif
1029
1030ifdef CONFIG_USIM_SIMULATOR
1031CFLAGS += -DCONFIG_USIM_SIMULATOR
1032NEED_MILENAGE=y
1033endif
1034
1035ifdef NEED_MILENAGE
1036OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001037NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001038endif
1039
1040ifdef CONFIG_PKCS12
1041CFLAGS += -DPKCS12_FUNCS
1042endif
1043
1044ifdef CONFIG_SMARTCARD
1045CFLAGS += -DCONFIG_SMARTCARD
1046endif
1047
Hai Shalom81f62d82019-07-22 12:10:00 -07001048ifdef NEED_DRAGONFLY
1049OBJS += ../src/common/dragonfly.o
1050endif
1051
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001052ifdef MS_FUNCS
1053OBJS += ../src/crypto/ms_funcs.o
1054NEED_DES=y
1055NEED_MD4=y
1056endif
1057
1058ifdef CHAP
1059OBJS += ../src/eap_common/chap.o
1060endif
1061
1062ifdef TLS_FUNCS
1063NEED_DES=y
Hai Shalom81f62d82019-07-22 12:10:00 -07001064# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and
1065# EAP_TEAP)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001066OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001067ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001068NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001069NEED_SHA1=y
1070NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001071endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001072endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001073
1074ifndef CONFIG_TLS
1075CONFIG_TLS=openssl
1076endif
1077
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001078ifdef CONFIG_TLSV11
1079CFLAGS += -DCONFIG_TLSV11
1080endif
1081
1082ifdef CONFIG_TLSV12
1083CFLAGS += -DCONFIG_TLSV12
1084NEED_SHA256=y
1085endif
1086
Roshan Pius3a1667e2018-07-03 15:17:14 -07001087ifeq ($(CONFIG_TLS), wolfssl)
1088ifdef TLS_FUNCS
1089CFLAGS += -DWOLFSSL_DER_LOAD -I/usr/local/include/wolfssl
1090OBJS += ../src/crypto/tls_wolfssl.o
1091endif
1092OBJS += ../src/crypto/crypto_wolfssl.o
1093OBJS_p += ../src/crypto/crypto_wolfssl.o
1094ifdef NEED_FIPS186_2_PRF
1095OBJS += ../src/crypto/fips_prf_wolfssl.o
1096endif
1097NEED_TLS_PRF_SHA256=y
1098LIBS += -lwolfssl -lm
1099LIBS_p += -lwolfssl -lm
1100endif
1101
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001102ifeq ($(CONFIG_TLS), openssl)
1103ifdef TLS_FUNCS
1104CFLAGS += -DEAP_TLS_OPENSSL
1105OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001106OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001107LIBS += -lssl
1108endif
1109OBJS += ../src/crypto/crypto_openssl.o
1110OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001111OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001112ifdef NEED_FIPS186_2_PRF
1113OBJS += ../src/crypto/fips_prf_openssl.o
1114endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001115NEED_SHA256=y
1116NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001117LIBS += -lcrypto
1118LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001119ifdef CONFIG_TLS_ADD_DL
1120LIBS += -ldl
1121LIBS_p += -ldl
1122endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001123ifndef CONFIG_TLS_DEFAULT_CIPHERS
1124CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1125endif
1126CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001127endif
1128
1129ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001130ifndef CONFIG_CRYPTO
1131# default to libgcrypt
1132CONFIG_CRYPTO=gnutls
1133endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001134ifdef TLS_FUNCS
1135OBJS += ../src/crypto/tls_gnutls.o
1136LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001137endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001138OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1139OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1140OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001141ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001142OBJS += ../src/crypto/fips_prf_internal.o
1143SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001144endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001145ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001146LIBS += -lgcrypt
1147LIBS_p += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001148CONFIG_INTERNAL_RC4=y
1149CONFIG_INTERNAL_DH_GROUP5=y
1150endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001151ifeq ($(CONFIG_CRYPTO), nettle)
1152LIBS += -lnettle -lgmp
1153LIBS_p += -lnettle -lgmp
1154CONFIG_INTERNAL_RC4=y
1155CONFIG_INTERNAL_DH_GROUP5=y
1156endif
1157endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001158
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001159ifeq ($(CONFIG_TLS), internal)
1160ifndef CONFIG_CRYPTO
1161CONFIG_CRYPTO=internal
1162endif
1163ifdef TLS_FUNCS
1164OBJS += ../src/crypto/crypto_internal-rsa.o
1165OBJS += ../src/crypto/tls_internal.o
1166OBJS += ../src/tls/tlsv1_common.o
1167OBJS += ../src/tls/tlsv1_record.o
1168OBJS += ../src/tls/tlsv1_cred.o
1169OBJS += ../src/tls/tlsv1_client.o
1170OBJS += ../src/tls/tlsv1_client_write.o
1171OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001172OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001173OBJS += ../src/tls/asn1.o
1174OBJS += ../src/tls/rsa.o
1175OBJS += ../src/tls/x509v3.o
1176OBJS += ../src/tls/pkcs1.o
1177OBJS += ../src/tls/pkcs5.o
1178OBJS += ../src/tls/pkcs8.o
1179NEED_SHA256=y
1180NEED_BASE64=y
1181NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001182ifdef CONFIG_TLSV12
1183NEED_TLS_PRF_SHA256=y
1184endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001185NEED_MODEXP=y
1186NEED_CIPHER=y
1187CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1188endif
1189ifdef NEED_CIPHER
1190NEED_DES=y
1191OBJS += ../src/crypto/crypto_internal-cipher.o
1192endif
1193ifdef NEED_MODEXP
1194OBJS += ../src/crypto/crypto_internal-modexp.o
1195OBJS += ../src/tls/bignum.o
1196endif
1197ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1198OBJS += ../src/crypto/crypto_libtomcrypt.o
1199OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1200LIBS += -ltomcrypt -ltfm
1201LIBS_p += -ltomcrypt -ltfm
1202CONFIG_INTERNAL_SHA256=y
1203CONFIG_INTERNAL_RC4=y
1204CONFIG_INTERNAL_DH_GROUP5=y
1205endif
1206ifeq ($(CONFIG_CRYPTO), internal)
1207OBJS += ../src/crypto/crypto_internal.o
1208OBJS_p += ../src/crypto/crypto_internal.o
1209NEED_AES_ENC=y
1210CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1211ifdef CONFIG_INTERNAL_LIBTOMMATH
1212CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1213ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1214CFLAGS += -DLTM_FAST
1215endif
1216else
1217LIBS += -ltommath
1218LIBS_p += -ltommath
1219endif
1220CONFIG_INTERNAL_AES=y
1221CONFIG_INTERNAL_DES=y
1222CONFIG_INTERNAL_SHA1=y
1223CONFIG_INTERNAL_MD4=y
1224CONFIG_INTERNAL_MD5=y
1225CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001226CONFIG_INTERNAL_SHA384=y
1227CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001228CONFIG_INTERNAL_RC4=y
1229CONFIG_INTERNAL_DH_GROUP5=y
1230endif
1231ifeq ($(CONFIG_CRYPTO), cryptoapi)
1232OBJS += ../src/crypto/crypto_cryptoapi.o
1233OBJS_p += ../src/crypto/crypto_cryptoapi.o
1234CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1235CONFIG_INTERNAL_SHA256=y
1236CONFIG_INTERNAL_RC4=y
1237endif
1238endif
1239
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001240ifeq ($(CONFIG_TLS), linux)
1241OBJS += ../src/crypto/crypto_linux.o
1242OBJS_p += ../src/crypto/crypto_linux.o
1243ifdef TLS_FUNCS
1244OBJS += ../src/crypto/crypto_internal-rsa.o
1245OBJS += ../src/crypto/tls_internal.o
1246OBJS += ../src/tls/tlsv1_common.o
1247OBJS += ../src/tls/tlsv1_record.o
1248OBJS += ../src/tls/tlsv1_cred.o
1249OBJS += ../src/tls/tlsv1_client.o
1250OBJS += ../src/tls/tlsv1_client_write.o
1251OBJS += ../src/tls/tlsv1_client_read.o
1252OBJS += ../src/tls/tlsv1_client_ocsp.o
1253OBJS += ../src/tls/asn1.o
1254OBJS += ../src/tls/rsa.o
1255OBJS += ../src/tls/x509v3.o
1256OBJS += ../src/tls/pkcs1.o
1257OBJS += ../src/tls/pkcs5.o
1258OBJS += ../src/tls/pkcs8.o
1259NEED_SHA256=y
1260NEED_BASE64=y
1261NEED_TLS_PRF=y
1262ifdef CONFIG_TLSV12
1263NEED_TLS_PRF_SHA256=y
1264endif
1265NEED_MODEXP=y
1266NEED_CIPHER=y
1267CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1268endif
1269ifdef NEED_MODEXP
1270OBJS += ../src/crypto/crypto_internal-modexp.o
1271OBJS += ../src/tls/bignum.o
1272CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1273CFLAGS += -DLTM_FAST
1274endif
1275CONFIG_INTERNAL_DH_GROUP5=y
1276ifdef NEED_FIPS186_2_PRF
1277OBJS += ../src/crypto/fips_prf_internal.o
1278OBJS += ../src/crypto/sha1-internal.o
1279endif
1280endif
1281
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001282ifeq ($(CONFIG_TLS), none)
1283ifdef TLS_FUNCS
1284OBJS += ../src/crypto/tls_none.o
1285CFLAGS += -DEAP_TLS_NONE
1286CONFIG_INTERNAL_AES=y
1287CONFIG_INTERNAL_SHA1=y
1288CONFIG_INTERNAL_MD5=y
1289endif
1290OBJS += ../src/crypto/crypto_none.o
1291OBJS_p += ../src/crypto/crypto_none.o
1292CONFIG_INTERNAL_SHA256=y
1293CONFIG_INTERNAL_RC4=y
1294endif
1295
1296ifdef TLS_FUNCS
1297ifdef CONFIG_SMARTCARD
1298ifndef CONFIG_NATIVE_WINDOWS
1299ifneq ($(CONFIG_L2_PACKET), freebsd)
1300LIBS += -ldl
1301endif
1302endif
1303endif
1304endif
1305
1306ifndef TLS_FUNCS
1307OBJS += ../src/crypto/tls_none.o
1308ifeq ($(CONFIG_TLS), internal)
1309CONFIG_INTERNAL_AES=y
1310CONFIG_INTERNAL_SHA1=y
1311CONFIG_INTERNAL_MD5=y
1312CONFIG_INTERNAL_RC4=y
1313endif
1314endif
1315
1316AESOBJS = # none so far (see below)
1317ifdef CONFIG_INTERNAL_AES
1318AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1319endif
1320
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001321ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001322ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001323NEED_INTERNAL_AES_WRAP=y
1324endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001325endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001326ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1327# Seems to be needed at least with BoringSSL
1328NEED_INTERNAL_AES_WRAP=y
1329CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1330endif
1331ifdef CONFIG_FIPS
1332# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1333# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1334NEED_INTERNAL_AES_WRAP=y
1335endif
1336
1337ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001338ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001339AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001340endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001341endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001342ifdef NEED_AES_EAX
1343AESOBJS += ../src/crypto/aes-eax.o
1344NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001345NEED_AES_OMAC1=y
1346endif
1347ifdef NEED_AES_SIV
1348AESOBJS += ../src/crypto/aes-siv.o
1349NEED_AES_CTR=y
1350NEED_AES_OMAC1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001351endif
1352ifdef NEED_AES_CTR
1353AESOBJS += ../src/crypto/aes-ctr.o
1354endif
1355ifdef NEED_AES_ENCBLOCK
1356AESOBJS += ../src/crypto/aes-encblock.o
1357endif
1358ifdef NEED_AES_OMAC1
1359NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001360ifdef CONFIG_OPENSSL_CMAC
1361CFLAGS += -DCONFIG_OPENSSL_CMAC
1362else
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001363ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001364ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001365AESOBJS += ../src/crypto/aes-omac1.o
1366endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001367endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001368endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001369endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001370ifdef NEED_AES_WRAP
1371NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001372ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001373AESOBJS += ../src/crypto/aes-wrap.o
1374endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001375endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001376ifdef NEED_AES_CBC
1377NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001378ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001379ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001380ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001381AESOBJS += ../src/crypto/aes-cbc.o
1382endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001383endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001384endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001385endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001386ifdef NEED_AES_ENC
1387ifdef CONFIG_INTERNAL_AES
1388AESOBJS += ../src/crypto/aes-internal-enc.o
1389endif
1390endif
1391ifdef NEED_AES
1392OBJS += $(AESOBJS)
1393endif
1394
1395ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001396ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001397ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001398ifneq ($(CONFIG_TLS), gnutls)
1399ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001400SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001401endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001402endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001403endif
1404endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001405SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001406ifdef CONFIG_INTERNAL_SHA1
1407SHA1OBJS += ../src/crypto/sha1-internal.o
1408ifdef NEED_FIPS186_2_PRF
1409SHA1OBJS += ../src/crypto/fips_prf_internal.o
1410endif
1411endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001412ifdef CONFIG_NO_WPA_PASSPHRASE
1413CFLAGS += -DCONFIG_NO_PBKDF2
1414else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001415ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001416ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001417SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1418endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001419endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001420endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001421ifdef NEED_T_PRF
1422SHA1OBJS += ../src/crypto/sha1-tprf.o
1423endif
1424ifdef NEED_TLS_PRF
1425SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1426endif
1427endif
1428
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001429ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001430ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001431ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001432ifneq ($(CONFIG_TLS), gnutls)
1433ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001434MD5OBJS += ../src/crypto/md5.o
1435endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001436endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001437endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001438endif
1439endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001440ifdef NEED_MD5
1441ifdef CONFIG_INTERNAL_MD5
1442MD5OBJS += ../src/crypto/md5-internal.o
1443endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001444OBJS += $(MD5OBJS)
1445OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001446OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001447endif
1448
1449ifdef NEED_MD4
1450ifdef CONFIG_INTERNAL_MD4
1451OBJS += ../src/crypto/md4-internal.o
1452endif
1453endif
1454
1455DESOBJS = # none needed when not internal
1456ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001457ifndef CONFIG_FIPS
1458CFLAGS += -DCONFIG_DES
1459endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001460ifdef CONFIG_INTERNAL_DES
1461DESOBJS += ../src/crypto/des-internal.o
1462endif
1463endif
1464
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001465ifdef CONFIG_NO_RC4
1466CFLAGS += -DCONFIG_NO_RC4
1467endif
1468
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001469ifdef NEED_RC4
1470ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001471ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001472OBJS += ../src/crypto/rc4.o
1473endif
1474endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001475endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001476
1477SHA256OBJS = # none by default
1478ifdef NEED_SHA256
1479CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001480ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001481ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001482ifneq ($(CONFIG_TLS), gnutls)
1483ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001484SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001485endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001486endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001487endif
1488endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001489SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001490ifdef CONFIG_INTERNAL_SHA256
1491SHA256OBJS += ../src/crypto/sha256-internal.o
1492endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001493ifdef CONFIG_INTERNAL_SHA384
1494CFLAGS += -DCONFIG_INTERNAL_SHA384
1495SHA256OBJS += ../src/crypto/sha384-internal.o
1496endif
1497ifdef CONFIG_INTERNAL_SHA512
1498CFLAGS += -DCONFIG_INTERNAL_SHA512
1499SHA256OBJS += ../src/crypto/sha512-internal.o
1500endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001501ifdef NEED_TLS_PRF_SHA256
1502SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1503endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001504ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001505CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001506OBJS += ../src/crypto/sha256-kdf.o
1507endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001508ifdef NEED_HMAC_SHA384_KDF
1509CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1510OBJS += ../src/crypto/sha384-kdf.o
1511endif
1512ifdef NEED_HMAC_SHA512_KDF
1513CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1514OBJS += ../src/crypto/sha512-kdf.o
1515endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001516OBJS += $(SHA256OBJS)
1517endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001518ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001519ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001520ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001521ifneq ($(CONFIG_TLS), gnutls)
1522ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001523OBJS += ../src/crypto/sha384.o
1524endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001525endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001526endif
1527endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001528CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001529OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001530endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001531ifdef NEED_SHA512
1532ifneq ($(CONFIG_TLS), openssl)
1533ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001534ifneq ($(CONFIG_TLS), gnutls)
1535ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001536OBJS += ../src/crypto/sha512.o
1537endif
1538endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001539endif
1540endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001541CFLAGS += -DCONFIG_SHA512
1542OBJS += ../src/crypto/sha512-prf.o
1543endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001544
1545ifdef NEED_DH_GROUPS
1546OBJS += ../src/crypto/dh_groups.o
1547endif
1548ifdef NEED_DH_GROUPS_ALL
1549CFLAGS += -DALL_DH_GROUPS
1550endif
1551ifdef CONFIG_INTERNAL_DH_GROUP5
1552ifdef NEED_DH_GROUPS
1553OBJS += ../src/crypto/dh_group5.o
1554endif
1555endif
1556
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001557ifdef NEED_ECC
1558CFLAGS += -DCONFIG_ECC
1559endif
1560
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001561ifdef CONFIG_NO_RANDOM_POOL
1562CFLAGS += -DCONFIG_NO_RANDOM_POOL
1563else
Hai Shalom74f70d42019-02-11 14:42:39 -08001564ifdef CONFIG_GETRANDOM
1565CFLAGS += -DCONFIG_GETRANDOM
1566endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001567OBJS += ../src/crypto/random.o
1568endif
1569
1570ifdef CONFIG_CTRL_IFACE
1571ifeq ($(CONFIG_CTRL_IFACE), y)
1572ifdef CONFIG_NATIVE_WINDOWS
1573CONFIG_CTRL_IFACE=named_pipe
1574else
1575CONFIG_CTRL_IFACE=unix
1576endif
1577endif
1578CFLAGS += -DCONFIG_CTRL_IFACE
1579ifeq ($(CONFIG_CTRL_IFACE), unix)
1580CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001581OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001582endif
1583ifeq ($(CONFIG_CTRL_IFACE), udp)
1584CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1585endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001586ifeq ($(CONFIG_CTRL_IFACE), udp6)
1587CONFIG_CTRL_IFACE=udp
1588CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1589CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1590endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001591ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1592CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1593endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001594ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1595CONFIG_CTRL_IFACE=udp
1596CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1597CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1598endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001599ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1600CONFIG_CTRL_IFACE=udp
1601CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1602CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1603CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1604endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001605OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1606endif
1607
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001608ifdef CONFIG_CTRL_IFACE_DBUS_NEW
Hai Shalom021b0b52019-04-10 11:17:58 -07001609CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1610OBJS += dbus/dbus_dict_helpers.o
1611OBJS += dbus/dbus_new_helpers.o
1612OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1613OBJS += dbus/dbus_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001614ifdef CONFIG_WPS
Hai Shalom021b0b52019-04-10 11:17:58 -07001615OBJS += dbus/dbus_new_handlers_wps.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001616endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001617ifdef CONFIG_P2P
Hai Shalom021b0b52019-04-10 11:17:58 -07001618OBJS += dbus/dbus_new_handlers_p2p.o
Jouni Malinen75ecf522011-06-27 15:19:46 -07001619endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001620ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001621DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001622endif
1623ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001624DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001625endif
1626ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
Hai Shalom021b0b52019-04-10 11:17:58 -07001627OBJS += dbus/dbus_new_introspect.o
1628CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001629endif
Hai Shalom021b0b52019-04-10 11:17:58 -07001630CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001631LIBS += $(DBUS_LIBS)
Hai Shalom021b0b52019-04-10 11:17:58 -07001632endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001633
1634ifdef CONFIG_READLINE
1635OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001636LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001637else
1638ifdef CONFIG_WPA_CLI_EDIT
1639OBJS_c += ../src/utils/edit.o
1640else
1641OBJS_c += ../src/utils/edit_simple.o
1642endif
1643endif
1644
1645ifdef CONFIG_NATIVE_WINDOWS
1646CFLAGS += -DCONFIG_NATIVE_WINDOWS
1647LIBS += -lws2_32 -lgdi32 -lcrypt32
1648LIBS_c += -lws2_32
1649LIBS_p += -lws2_32 -lgdi32
1650ifeq ($(CONFIG_CRYPTO), cryptoapi)
1651LIBS_p += -lcrypt32
1652endif
1653endif
1654
1655ifdef CONFIG_NO_STDOUT_DEBUG
1656CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1657ifndef CONFIG_CTRL_IFACE
1658CFLAGS += -DCONFIG_NO_WPA_MSG
1659endif
1660endif
1661
1662ifdef CONFIG_IPV6
1663# for eapol_test only
1664CFLAGS += -DCONFIG_IPV6
1665endif
1666
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001667ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1668CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1669endif
1670
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001671ifdef NEED_BASE64
1672OBJS += ../src/utils/base64.o
1673endif
1674
1675ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001676OBJS += sme.o
1677CFLAGS += -DCONFIG_SME
1678endif
1679
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001680OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001681OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001682
1683ifdef NEED_EAP_COMMON
1684OBJS += ../src/eap_common/eap_common.o
1685endif
1686
1687ifndef CONFIG_MAIN
1688CONFIG_MAIN=main
1689endif
1690
1691ifdef CONFIG_DEBUG_SYSLOG
1692CFLAGS += -DCONFIG_DEBUG_SYSLOG
1693ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1694CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1695endif
1696endif
1697
Dmitry Shmidt04949592012-07-19 12:16:46 -07001698ifdef CONFIG_DEBUG_LINUX_TRACING
1699CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1700endif
1701
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001702ifdef CONFIG_DEBUG_FILE
1703CFLAGS += -DCONFIG_DEBUG_FILE
1704endif
1705
1706ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1707CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1708endif
1709
1710ifdef CONFIG_FIPS
1711CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001712ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001713ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001714$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1715endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001716endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001717endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001718
1719OBJS += $(SHA1OBJS) $(DESOBJS)
1720
1721OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001722OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001723OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001724
1725ifdef CONFIG_BGSCAN_SIMPLE
1726CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1727OBJS += bgscan_simple.o
1728NEED_BGSCAN=y
1729endif
1730
1731ifdef CONFIG_BGSCAN_LEARN
1732CFLAGS += -DCONFIG_BGSCAN_LEARN
1733OBJS += bgscan_learn.o
1734NEED_BGSCAN=y
1735endif
1736
1737ifdef NEED_BGSCAN
1738CFLAGS += -DCONFIG_BGSCAN
1739OBJS += bgscan.o
1740endif
1741
Dmitry Shmidt04949592012-07-19 12:16:46 -07001742ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1743CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1744OBJS += autoscan_exponential.o
1745NEED_AUTOSCAN=y
1746endif
1747
1748ifdef CONFIG_AUTOSCAN_PERIODIC
1749CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1750OBJS += autoscan_periodic.o
1751NEED_AUTOSCAN=y
1752endif
1753
1754ifdef NEED_AUTOSCAN
1755CFLAGS += -DCONFIG_AUTOSCAN
1756OBJS += autoscan.o
1757endif
1758
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001759ifdef CONFIG_EXT_PASSWORD_TEST
1760OBJS += ../src/utils/ext_password_test.o
1761CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1762NEED_EXT_PASSWORD=y
1763endif
1764
1765ifdef NEED_EXT_PASSWORD
1766OBJS += ../src/utils/ext_password.o
1767CFLAGS += -DCONFIG_EXT_PASSWORD
1768endif
1769
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001770ifdef NEED_GAS_SERVER
1771OBJS += ../src/common/gas_server.o
1772CFLAGS += -DCONFIG_GAS_SERVER
1773NEED_GAS=y
1774endif
1775
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001776ifdef NEED_GAS
1777OBJS += ../src/common/gas.o
1778OBJS += gas_query.o
1779CFLAGS += -DCONFIG_GAS
1780NEED_OFFCHANNEL=y
1781endif
1782
1783ifdef NEED_OFFCHANNEL
1784OBJS += offchannel.o
1785CFLAGS += -DCONFIG_OFFCHANNEL
1786endif
1787
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001788ifdef NEED_JSON
1789OBJS += ../src/utils/json.o
1790CFLAGS += -DCONFIG_JSON
1791endif
1792
Dmitry Shmidt71757432014-06-02 13:50:35 -07001793ifdef CONFIG_MODULE_TESTS
1794CFLAGS += -DCONFIG_MODULE_TESTS
1795OBJS += wpas_module_tests.o
1796OBJS += ../src/utils/utils_module_tests.o
1797OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001798OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001799ifdef CONFIG_WPS
1800OBJS += ../src/wps/wps_module_tests.o
1801endif
1802endif
1803
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001804OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001805OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001806
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001807OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1808OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1809OBJS_t += ../src/radius/radius_client.o
1810OBJS_t += ../src/radius/radius.o
1811ifndef CONFIG_AP
1812OBJS_t += ../src/utils/ip_addr.o
1813endif
1814OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001815
1816OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1817OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1818
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001819OBJS += $(CONFIG_MAIN).o
1820
1821ifdef CONFIG_PRIVSEP
1822OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1823OBJS_priv += $(OBJS_l2)
1824OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1825OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1826OBJS_priv += ../src/utils/common.o
1827OBJS_priv += ../src/utils/wpa_debug.o
1828OBJS_priv += ../src/utils/wpabuf.o
1829OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001830ifdef CONFIG_DRIVER_NL80211
1831OBJS_priv += ../src/common/ieee802_11_common.o
1832endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001833OBJS += ../src/l2_packet/l2_packet_privsep.o
1834OBJS += ../src/drivers/driver_privsep.o
1835EXTRA_progs += wpa_priv
1836else
1837OBJS += $(OBJS_d) ../src/drivers/drivers.o
1838OBJS += $(OBJS_l2)
1839endif
1840
1841ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1842CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1843OBJS += ../src/drivers/ndis_events.o
1844EXTRALIBS += -loleaut32 -lole32 -luuid
1845ifdef PLATFORMSDKLIB
1846EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1847else
1848EXTRALIBS += WbemUuid.Lib
1849endif
1850endif
1851
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001852ifdef CONFIG_FST
1853CFLAGS += -DCONFIG_FST
1854ifdef CONFIG_FST_TEST
1855CFLAGS += -DCONFIG_FST_TEST
1856endif
1857FST_OBJS += ../src/fst/fst.o
1858FST_OBJS += ../src/fst/fst_session.o
1859FST_OBJS += ../src/fst/fst_iface.o
1860FST_OBJS += ../src/fst/fst_group.o
1861FST_OBJS += ../src/fst/fst_ctrl_aux.o
1862ifdef CONFIG_CTRL_IFACE
1863FST_OBJS += ../src/fst/fst_ctrl_iface.o
1864endif
1865OBJS += $(FST_OBJS)
1866OBJS_t += $(FST_OBJS)
1867OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001868OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001869endif
1870
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001871ifndef LDO
1872LDO=$(CC)
1873endif
1874
1875Q=@
1876E=echo
1877ifeq ($(V), 1)
1878Q=
1879E=true
1880endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001881ifeq ($(QUIET), 1)
1882Q=@
1883E=true
1884endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001885
1886dynamic_eap_methods: $(EAPDYN)
1887
1888../src/drivers/build.wpa_supplicant:
1889 @if [ -f ../src/drivers/build.hostapd ]; then \
1890 $(MAKE) -C ../src/drivers clean; \
1891 fi
1892 @touch ../src/drivers/build.wpa_supplicant
1893
1894BCHECK=../src/drivers/build.wpa_supplicant
1895
1896wpa_priv: $(BCHECK) $(OBJS_priv)
1897 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1898 @$(E) " LD " $@
1899
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001900$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1901
1902wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001903 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1904 @$(E) " LD " $@
1905
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001906eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001907 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1908 @$(E) " LD " $@
1909
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001910preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001911 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1912 @$(E) " LD " $@
1913
1914wpa_passphrase: $(OBJS_p)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001915 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001916 @$(E) " LD " $@
1917
1918wpa_cli: $(OBJS_c)
1919 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1920 @$(E) " LD " $@
1921
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001922LIBCTRL += ../src/common/wpa_ctrl.o
1923LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001924LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001925LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001926LIBCTRLSO += ../src/common/wpa_ctrl.c
1927LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001928LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001929LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001930
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001931libwpa_client.a: $(LIBCTRL)
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001932 $(Q)rm -f $@
1933 $(Q)$(AR) crs $@ $?
1934 @$(E) " AR " $@
1935
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001936libwpa_client.so: $(LIBCTRLSO)
1937 @$(E) " CC $@ ($^)"
1938 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1939
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001940libwpa_test1: libwpa_test.o libwpa_client.a
1941 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 libwpa_test.o libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001942 @$(E) " LD " $@
1943
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001944libwpa_test2: libwpa_test.o libwpa_client.so
1945 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 libwpa_test.o -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001946 @$(E) " LD " $@
1947
Dmitry Shmidt04949592012-07-19 12:16:46 -07001948nfc_pw_token: $(OBJS_nfc)
1949 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1950 @$(E) " LD " $@
1951
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001952win_if_list: win_if_list.c
1953 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1954 @$(E) " LD " $@
1955
1956eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1957 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1958 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1959
1960eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1961 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1962 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1963
1964eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1965 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1966 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1967
1968eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1969 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1970 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1971
1972eap_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
1973 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1974 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1975
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001976eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1977 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1978 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1979
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001980%.so: %.c
1981 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1982 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1983
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001984ifdef CONFIG_CODE_COVERAGE
1985%.o: %.c
1986 @$(E) " CC " $<
1987 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1988else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001989%.o: %.c
1990 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1991 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001992endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001993
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001994%.service: %.service.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001995 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001996 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001997
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001998%@.service: %.service.arg.in
Hai Shalom021b0b52019-04-10 11:17:58 -07001999 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08002000 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08002001
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002002wpa_supplicant.exe: wpa_supplicant
2003 mv -f $< $@
2004wpa_cli.exe: wpa_cli
2005 mv -f $< $@
2006wpa_passphrase.exe: wpa_passphrase
2007 mv -f $< $@
2008win_if_list.exe: win_if_list
2009 mv -f $< $@
2010eapol_test.exe: eapol_test
2011 mv -f $< $@
2012
2013WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
2014
2015windows-bin: $(WINALL)
2016 $(STRIP) $(WINALL)
2017
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08002018wpa_gui:
2019 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002020
2021wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07002022 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002023
2024wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
2025 lrelease wpa_gui-qt4/wpa_gui.pro
2026
2027wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
2028 $(MAKE) -C wpa_gui-qt4
2029
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07002030FIPSDIR=/usr/local/ssl/fips-2.0
2031FIPSLD=$(FIPSDIR)/bin/fipsld
2032fips:
2033 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
2034
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002035lcov-html: wpa_supplicant.gcda
2036 lcov -c -d .. > lcov.info
2037 genhtml lcov.info --output-directory lcov-html
2038
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002039clean:
2040 $(MAKE) -C ../src clean
2041 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08002042 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
2043 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002044 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07002045 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08002046 rm -f lcov.info
2047 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07002048 rm -f libwpa_client.a
2049 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08002050 rm -f libwpa_test1 libwpa_test2
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07002051
2052-include $(OBJS:%.o=%.d)