blob: 65205d8eb04e0c05b33e84a844b72967c82f85cd [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
58ALL += dbus/fi.epitest.hostap.WPASupplicant.service
59ALL += dbus/fi.w1.wpa_supplicant1.service
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070060ifdef CONFIG_BUILD_WPA_CLIENT_SO
61ALL += libwpa_client.so
62endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080063
64
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070065all: verify_config $(ALL) dynamic_eap_methods
66
67verify_config:
68 @if [ ! -r .config ]; then \
69 echo 'Building wpa_supplicant requires a configuration file'; \
70 echo '(.config). See README for more instructions. You can'; \
71 echo 'run "cp defconfig .config" to create an example'; \
72 echo 'configuration.'; \
73 exit 1; \
74 fi
75
76mkconfig:
77 @if [ -f .config ]; then \
78 echo '.config exists - did not replace it'; \
79 exit 1; \
80 fi
81 echo CONFIG_DRIVER_HOSTAP=y >> .config
82 echo CONFIG_DRIVER_WEXT=y >> .config
83
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080084$(DESTDIR)$(BINDIR)/%: %
85 install -D $(<) $(@)
86
87install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070088 $(MAKE) -C ../src install
Dmitry Shmidtb1e52102015-05-29 12:36:29 -070089ifdef CONFIG_BUILD_WPA_CLIENT_SO
90 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
91 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
92endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070093
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070094ifdef CONFIG_FIPS
95CONFIG_NO_RANDOM_POOL=
96CONFIG_OPENSSL_CMAC=y
97endif
98
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070099OBJS = config.o
100OBJS += notify.o
101OBJS += bss.o
102OBJS += eap_register.o
103OBJS += ../src/utils/common.o
104OBJS += ../src/utils/wpa_debug.o
105OBJS += ../src/utils/wpabuf.o
Dmitry Shmidt29333592017-01-09 12:27:11 -0800106OBJS += ../src/utils/bitfield.o
107OBJS += 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
234NEED_SHA256=y
235NEED_AES_OMAC1=y
236endif
237
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800238ifdef CONFIG_SUITEB192
239CFLAGS += -DCONFIG_SUITEB192
240NEED_SHA384=y
241endif
242
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700243ifdef CONFIG_IEEE80211W
244CFLAGS += -DCONFIG_IEEE80211W
245NEED_SHA256=y
246NEED_AES_OMAC1=y
247endif
248
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800249ifdef CONFIG_IEEE80211R_AP
250CONFIG_IEEE80211R=y
251endif
252
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700253ifdef CONFIG_IEEE80211R
254CFLAGS += -DCONFIG_IEEE80211R
255OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700256NEED_SHA256=y
257NEED_AES_OMAC1=y
258endif
259
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800260ifdef CONFIG_MESH
261NEED_80211_COMMON=y
262NEED_SHA256=y
263NEED_AES_SIV=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800264CONFIG_SAE=y
265CONFIG_AP=y
266CFLAGS += -DCONFIG_MESH
267OBJS += mesh.o
268OBJS += mesh_mpm.o
269OBJS += mesh_rsn.o
270endif
271
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800272ifdef CONFIG_SAE
273CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800274OBJS += ../src/common/sae.o
275NEED_ECC=y
276NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800277endif
278
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700279ifdef CONFIG_DPP
280CFLAGS += -DCONFIG_DPP
281OBJS += ../src/common/dpp.o
282OBJS += dpp_supplicant.o
283NEED_AES_SIV=y
284NEED_HMAC_SHA256_KDF=y
285NEED_HMAC_SHA384_KDF=y
286NEED_HMAC_SHA512_KDF=y
287NEED_SHA256=y
288NEED_SHA384=y
289NEED_SHA512=y
290NEED_JSON=y
291NEED_GAS_SERVER=y
292NEED_BASE64=y
293endif
294
295ifdef CONFIG_OWE
296CFLAGS += -DCONFIG_OWE
297NEED_ECC=y
298NEED_HMAC_SHA256_KDF=y
299NEED_HMAC_SHA384_KDF=y
300NEED_HMAC_SHA512_KDF=y
301NEED_SHA256=y
302NEED_SHA384=y
303NEED_SHA512=y
304endif
305
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800306ifdef CONFIG_FILS
307CFLAGS += -DCONFIG_FILS
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800308NEED_SHA384=y
309NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700310ifdef CONFIG_FILS_SK_PFS
311CFLAGS += -DCONFIG_FILS_SK_PFS
312NEED_ECC=y
313endif
314endif
315
316ifdef CONFIG_MBO
317CONFIG_WNM=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800318endif
319
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800320ifdef CONFIG_WNM
321CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700322OBJS += wnm_sta.o
323endif
324
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700325ifdef CONFIG_TDLS
326CFLAGS += -DCONFIG_TDLS
327OBJS += ../src/rsn_supp/tdls.o
328NEED_SHA256=y
329NEED_AES_OMAC1=y
330endif
331
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800332ifdef CONFIG_TDLS_TESTING
333CFLAGS += -DCONFIG_TDLS_TESTING
334endif
335
Dmitry Shmidt29333592017-01-09 12:27:11 -0800336ifdef CONFIG_PMKSA_CACHE_EXTERNAL
337CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL
338endif
339
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700340ifndef CONFIG_NO_WPA
341OBJS += ../src/rsn_supp/wpa.o
342OBJS += ../src/rsn_supp/preauth.o
343OBJS += ../src/rsn_supp/pmksa_cache.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700344OBJS += ../src/rsn_supp/wpa_ie.o
345OBJS += ../src/common/wpa_common.o
346NEED_AES=y
347NEED_SHA1=y
348NEED_MD5=y
349NEED_RC4=y
350else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700351CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800352ifeq ($(CONFIG_TLS), internal)
353NEED_SHA1=y
354NEED_MD5=y
355endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700356endif
357
358ifdef CONFIG_IBSS_RSN
359NEED_RSN_AUTHENTICATOR=y
360CFLAGS += -DCONFIG_IBSS_RSN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700361CFLAGS += -DCONFIG_NO_VLAN
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700362OBJS += ibss_rsn.o
363endif
364
Dmitry Shmidte4663042016-04-04 10:07:49 -0700365ifdef CONFIG_MATCH_IFACE
366CFLAGS += -DCONFIG_MATCH_IFACE
367endif
368
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700369ifdef CONFIG_P2P
370OBJS += p2p_supplicant.o
Dmitry Shmidtf73259c2015-03-17 11:00:54 -0700371OBJS += p2p_supplicant_sd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700372OBJS += ../src/p2p/p2p.o
373OBJS += ../src/p2p/p2p_utils.o
374OBJS += ../src/p2p/p2p_parse.o
375OBJS += ../src/p2p/p2p_build.o
376OBJS += ../src/p2p/p2p_go_neg.o
377OBJS += ../src/p2p/p2p_sd.o
378OBJS += ../src/p2p/p2p_pd.o
379OBJS += ../src/p2p/p2p_invitation.o
380OBJS += ../src/p2p/p2p_dev_disc.o
381OBJS += ../src/p2p/p2p_group.o
382OBJS += ../src/ap/p2p_hostapd.o
383CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800384NEED_GAS=y
385NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800386CONFIG_WPS=y
387CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700388ifdef CONFIG_P2P_STRICT
389CFLAGS += -DCONFIG_P2P_STRICT
390endif
391endif
392
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700393ifdef CONFIG_WIFI_DISPLAY
394CFLAGS += -DCONFIG_WIFI_DISPLAY
395OBJS += wifi_display.o
396endif
397
Dmitry Shmidt04949592012-07-19 12:16:46 -0700398ifdef CONFIG_HS20
399OBJS += hs20_supplicant.o
400CFLAGS += -DCONFIG_HS20
401CONFIG_INTERWORKING=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800402NEED_AES_OMAC1=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700403endif
404
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800405ifdef CONFIG_INTERWORKING
406OBJS += interworking.o
407CFLAGS += -DCONFIG_INTERWORKING
408NEED_GAS=y
409endif
410
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700411ifdef CONFIG_NO_ROAMING
412CFLAGS += -DCONFIG_NO_ROAMING
413endif
414
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700415include ../src/drivers/drivers.mak
416ifdef CONFIG_AP
417OBJS_d += $(DRV_BOTH_OBJS)
418CFLAGS += $(DRV_BOTH_CFLAGS)
419LDFLAGS += $(DRV_BOTH_LDFLAGS)
420LIBS += $(DRV_BOTH_LIBS)
421else
422NEED_AP_MLME=
423OBJS_d += $(DRV_WPA_OBJS)
424CFLAGS += $(DRV_WPA_CFLAGS)
425LDFLAGS += $(DRV_WPA_LDFLAGS)
426LIBS += $(DRV_WPA_LIBS)
427endif
428
429ifndef CONFIG_L2_PACKET
430CONFIG_L2_PACKET=linux
431endif
432
433OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
434
435ifeq ($(CONFIG_L2_PACKET), pcap)
436ifdef CONFIG_WINPCAP
437CFLAGS += -DCONFIG_WINPCAP
438LIBS += -lwpcap -lpacket
439LIBS_w += -lwpcap
440else
441LIBS += -ldnet -lpcap
442endif
443endif
444
445ifeq ($(CONFIG_L2_PACKET), winpcap)
446LIBS += -lwpcap -lpacket
447LIBS_w += -lwpcap
448endif
449
450ifeq ($(CONFIG_L2_PACKET), freebsd)
451LIBS += -lpcap
452endif
453
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800454ifdef CONFIG_ERP
455CFLAGS += -DCONFIG_ERP
456NEED_SHA256=y
457NEED_HMAC_SHA256_KDF=y
458endif
459
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700460ifdef CONFIG_EAP_TLS
461# EAP-TLS
462ifeq ($(CONFIG_EAP_TLS), dyn)
463CFLAGS += -DEAP_TLS_DYNAMIC
464EAPDYN += ../src/eap_peer/eap_tls.so
465else
466CFLAGS += -DEAP_TLS
467OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700468endif
469TLS_FUNCS=y
470CONFIG_IEEE8021X_EAPOL=y
471endif
472
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700473ifdef CONFIG_EAP_UNAUTH_TLS
474# EAP-UNAUTH-TLS
475CFLAGS += -DEAP_UNAUTH_TLS
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700476ifndef CONFIG_EAP_TLS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700477OBJS += ../src/eap_peer/eap_tls.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700478TLS_FUNCS=y
479endif
480CONFIG_IEEE8021X_EAPOL=y
481endif
482
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700483ifdef CONFIG_EAP_PEAP
484# EAP-PEAP
485ifeq ($(CONFIG_EAP_PEAP), dyn)
486CFLAGS += -DEAP_PEAP_DYNAMIC
487EAPDYN += ../src/eap_peer/eap_peap.so
488else
489CFLAGS += -DEAP_PEAP
490OBJS += ../src/eap_peer/eap_peap.o
491OBJS += ../src/eap_common/eap_peap_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700492endif
493TLS_FUNCS=y
494CONFIG_IEEE8021X_EAPOL=y
495endif
496
497ifdef CONFIG_EAP_TTLS
498# EAP-TTLS
499ifeq ($(CONFIG_EAP_TTLS), dyn)
500CFLAGS += -DEAP_TTLS_DYNAMIC
501EAPDYN += ../src/eap_peer/eap_ttls.so
502else
503CFLAGS += -DEAP_TTLS
504OBJS += ../src/eap_peer/eap_ttls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700505endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700506TLS_FUNCS=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800507ifndef CONFIG_FIPS
508MS_FUNCS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700509CHAP=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800510endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700511CONFIG_IEEE8021X_EAPOL=y
512endif
513
514ifdef CONFIG_EAP_MD5
515# EAP-MD5
516ifeq ($(CONFIG_EAP_MD5), dyn)
517CFLAGS += -DEAP_MD5_DYNAMIC
518EAPDYN += ../src/eap_peer/eap_md5.so
519else
520CFLAGS += -DEAP_MD5
521OBJS += ../src/eap_peer/eap_md5.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700522endif
523CHAP=y
524CONFIG_IEEE8021X_EAPOL=y
525endif
526
527# backwards compatibility for old spelling
528ifdef CONFIG_MSCHAPV2
529ifndef CONFIG_EAP_MSCHAPV2
530CONFIG_EAP_MSCHAPV2=y
531endif
532endif
533
534ifdef CONFIG_EAP_MSCHAPV2
535# EAP-MSCHAPv2
536ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
537CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
538EAPDYN += ../src/eap_peer/eap_mschapv2.so
539EAPDYN += ../src/eap_peer/mschapv2.so
540else
541CFLAGS += -DEAP_MSCHAPv2
542OBJS += ../src/eap_peer/eap_mschapv2.o
543OBJS += ../src/eap_peer/mschapv2.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700544endif
545MS_FUNCS=y
546CONFIG_IEEE8021X_EAPOL=y
547endif
548
549ifdef CONFIG_EAP_GTC
550# EAP-GTC
551ifeq ($(CONFIG_EAP_GTC), dyn)
552CFLAGS += -DEAP_GTC_DYNAMIC
553EAPDYN += ../src/eap_peer/eap_gtc.so
554else
555CFLAGS += -DEAP_GTC
556OBJS += ../src/eap_peer/eap_gtc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700557endif
558CONFIG_IEEE8021X_EAPOL=y
559endif
560
561ifdef CONFIG_EAP_OTP
562# EAP-OTP
563ifeq ($(CONFIG_EAP_OTP), dyn)
564CFLAGS += -DEAP_OTP_DYNAMIC
565EAPDYN += ../src/eap_peer/eap_otp.so
566else
567CFLAGS += -DEAP_OTP
568OBJS += ../src/eap_peer/eap_otp.o
569endif
570CONFIG_IEEE8021X_EAPOL=y
571endif
572
573ifdef CONFIG_EAP_SIM
574# EAP-SIM
575ifeq ($(CONFIG_EAP_SIM), dyn)
576CFLAGS += -DEAP_SIM_DYNAMIC
577EAPDYN += ../src/eap_peer/eap_sim.so
578else
579CFLAGS += -DEAP_SIM
580OBJS += ../src/eap_peer/eap_sim.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700581endif
582CONFIG_IEEE8021X_EAPOL=y
583CONFIG_EAP_SIM_COMMON=y
584NEED_AES_CBC=y
585endif
586
587ifdef CONFIG_EAP_LEAP
588# EAP-LEAP
589ifeq ($(CONFIG_EAP_LEAP), dyn)
590CFLAGS += -DEAP_LEAP_DYNAMIC
591EAPDYN += ../src/eap_peer/eap_leap.so
592else
593CFLAGS += -DEAP_LEAP
594OBJS += ../src/eap_peer/eap_leap.o
595endif
596MS_FUNCS=y
597CONFIG_IEEE8021X_EAPOL=y
598endif
599
600ifdef CONFIG_EAP_PSK
601# EAP-PSK
602ifeq ($(CONFIG_EAP_PSK), dyn)
603CFLAGS += -DEAP_PSK_DYNAMIC
604EAPDYN += ../src/eap_peer/eap_psk.so
605else
606CFLAGS += -DEAP_PSK
607OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700608endif
609CONFIG_IEEE8021X_EAPOL=y
610NEED_AES=y
611NEED_AES_OMAC1=y
612NEED_AES_ENCBLOCK=y
613NEED_AES_EAX=y
614endif
615
616ifdef CONFIG_EAP_AKA
617# EAP-AKA
618ifeq ($(CONFIG_EAP_AKA), dyn)
619CFLAGS += -DEAP_AKA_DYNAMIC
620EAPDYN += ../src/eap_peer/eap_aka.so
621else
622CFLAGS += -DEAP_AKA
623OBJS += ../src/eap_peer/eap_aka.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700624endif
625CONFIG_IEEE8021X_EAPOL=y
626CONFIG_EAP_SIM_COMMON=y
627NEED_AES_CBC=y
628endif
629
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800630ifdef CONFIG_EAP_PROXY
631CFLAGS += -DCONFIG_EAP_PROXY
632OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700633include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800634CONFIG_IEEE8021X_EAPOL=y
635endif
636
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700637ifdef CONFIG_EAP_AKA_PRIME
638# EAP-AKA'
639ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
640CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
641else
642CFLAGS += -DEAP_AKA_PRIME
643endif
644NEED_SHA256=y
645endif
646
647ifdef CONFIG_EAP_SIM_COMMON
648OBJS += ../src/eap_common/eap_sim_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700649NEED_AES=y
650NEED_FIPS186_2_PRF=y
651endif
652
653ifdef CONFIG_EAP_FAST
654# EAP-FAST
655ifeq ($(CONFIG_EAP_FAST), dyn)
656CFLAGS += -DEAP_FAST_DYNAMIC
657EAPDYN += ../src/eap_peer/eap_fast.so
658EAPDYN += ../src/eap_common/eap_fast_common.o
659else
660CFLAGS += -DEAP_FAST
661OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
662OBJS += ../src/eap_common/eap_fast_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700663endif
664TLS_FUNCS=y
665CONFIG_IEEE8021X_EAPOL=y
666NEED_T_PRF=y
667endif
668
669ifdef CONFIG_EAP_PAX
670# EAP-PAX
671ifeq ($(CONFIG_EAP_PAX), dyn)
672CFLAGS += -DEAP_PAX_DYNAMIC
673EAPDYN += ../src/eap_peer/eap_pax.so
674else
675CFLAGS += -DEAP_PAX
676OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700677endif
678CONFIG_IEEE8021X_EAPOL=y
679endif
680
681ifdef CONFIG_EAP_SAKE
682# EAP-SAKE
683ifeq ($(CONFIG_EAP_SAKE), dyn)
684CFLAGS += -DEAP_SAKE_DYNAMIC
685EAPDYN += ../src/eap_peer/eap_sake.so
686else
687CFLAGS += -DEAP_SAKE
688OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700689endif
690CONFIG_IEEE8021X_EAPOL=y
691endif
692
693ifdef CONFIG_EAP_GPSK
694# EAP-GPSK
695ifeq ($(CONFIG_EAP_GPSK), dyn)
696CFLAGS += -DEAP_GPSK_DYNAMIC
697EAPDYN += ../src/eap_peer/eap_gpsk.so
698else
699CFLAGS += -DEAP_GPSK
700OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700701endif
702CONFIG_IEEE8021X_EAPOL=y
703ifdef CONFIG_EAP_GPSK_SHA256
704CFLAGS += -DEAP_GPSK_SHA256
705endif
706NEED_SHA256=y
707NEED_AES_OMAC1=y
708endif
709
710ifdef CONFIG_EAP_PWD
711CFLAGS += -DEAP_PWD
712OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700713CONFIG_IEEE8021X_EAPOL=y
714NEED_SHA256=y
715endif
716
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700717ifdef CONFIG_EAP_EKE
718# EAP-EKE
719ifeq ($(CONFIG_EAP_EKE), dyn)
720CFLAGS += -DEAP_EKE_DYNAMIC
721EAPDYN += ../src/eap_peer/eap_eke.so
722else
723CFLAGS += -DEAP_EKE
724OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700725endif
726CONFIG_IEEE8021X_EAPOL=y
727NEED_DH_GROUPS=y
728NEED_DH_GROUPS_ALL=y
729NEED_SHA256=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800730NEED_AES_CBC=y
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700731endif
732
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700733ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700734# EAP-WSC
735CFLAGS += -DCONFIG_WPS -DEAP_WSC
736OBJS += wps_supplicant.o
737OBJS += ../src/utils/uuid.o
738OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
739OBJS += ../src/wps/wps.o
740OBJS += ../src/wps/wps_common.o
741OBJS += ../src/wps/wps_attr_parse.o
742OBJS += ../src/wps/wps_attr_build.o
743OBJS += ../src/wps/wps_attr_process.o
744OBJS += ../src/wps/wps_dev_attr.o
745OBJS += ../src/wps/wps_enrollee.o
746OBJS += ../src/wps/wps_registrar.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700747CONFIG_IEEE8021X_EAPOL=y
748NEED_DH_GROUPS=y
749NEED_SHA256=y
750NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700751NEED_AES_CBC=y
752NEED_MODEXP=y
753
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700754ifdef CONFIG_WPS_NFC
755CFLAGS += -DCONFIG_WPS_NFC
756OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700757NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700758endif
759
760ifdef NEED_WPS_OOB
761CFLAGS += -DCONFIG_WPS_OOB
762endif
763
764ifdef CONFIG_WPS_ER
765CONFIG_WPS_UPNP=y
766CFLAGS += -DCONFIG_WPS_ER
767OBJS += ../src/wps/wps_er.o
768OBJS += ../src/wps/wps_er_ssdp.o
769endif
770
771ifdef CONFIG_WPS_UPNP
772CFLAGS += -DCONFIG_WPS_UPNP
773OBJS += ../src/wps/wps_upnp.o
774OBJS += ../src/wps/wps_upnp_ssdp.o
775OBJS += ../src/wps/wps_upnp_web.o
776OBJS += ../src/wps/wps_upnp_event.o
777OBJS += ../src/wps/wps_upnp_ap.o
778OBJS += ../src/wps/upnp_xml.o
779OBJS += ../src/wps/httpread.o
780OBJS += ../src/wps/http_client.o
781OBJS += ../src/wps/http_server.o
782endif
783
784ifdef CONFIG_WPS_STRICT
785CFLAGS += -DCONFIG_WPS_STRICT
786OBJS += ../src/wps/wps_validate.o
787endif
788
789ifdef CONFIG_WPS_TESTING
790CFLAGS += -DCONFIG_WPS_TESTING
791endif
792
793ifdef CONFIG_WPS_REG_DISABLE_OPEN
794CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
795endif
796
797endif
798
799ifdef CONFIG_EAP_IKEV2
800# EAP-IKEv2
801ifeq ($(CONFIG_EAP_IKEV2), dyn)
802CFLAGS += -DEAP_IKEV2_DYNAMIC
803EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
804EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
805else
806CFLAGS += -DEAP_IKEV2
807OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
808OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700809endif
810CONFIG_IEEE8021X_EAPOL=y
811NEED_DH_GROUPS=y
812NEED_DH_GROUPS_ALL=y
813NEED_MODEXP=y
814NEED_CIPHER=y
815endif
816
817ifdef CONFIG_EAP_VENDOR_TEST
818ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
819CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
820EAPDYN += ../src/eap_peer/eap_vendor_test.so
821else
822CFLAGS += -DEAP_VENDOR_TEST
823OBJS += ../src/eap_peer/eap_vendor_test.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700824endif
825CONFIG_IEEE8021X_EAPOL=y
826endif
827
828ifdef CONFIG_EAP_TNC
829# EAP-TNC
830CFLAGS += -DEAP_TNC
831OBJS += ../src/eap_peer/eap_tnc.o
832OBJS += ../src/eap_peer/tncc.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700833NEED_BASE64=y
834ifndef CONFIG_NATIVE_WINDOWS
835ifndef CONFIG_DRIVER_BSD
836LIBS += -ldl
837endif
838endif
839endif
840
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700841ifdef CONFIG_MACSEC
842CFLAGS += -DCONFIG_MACSEC
843CONFIG_IEEE8021X_EAPOL=y
844NEED_AES_ENCBLOCK=y
845NEED_AES_UNWRAP=y
846NEED_AES_WRAP=y
847NEED_AES_OMAC1=y
848OBJS += wpas_kay.o
849OBJS += ../src/pae/ieee802_1x_cp.o
850OBJS += ../src/pae/ieee802_1x_kay.o
851OBJS += ../src/pae/ieee802_1x_key.o
852OBJS += ../src/pae/ieee802_1x_secy_ops.o
853endif
854
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700855ifdef CONFIG_IEEE8021X_EAPOL
856# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
857CFLAGS += -DIEEE8021X_EAPOL
858OBJS += ../src/eapol_supp/eapol_supp_sm.o
859OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
860NEED_EAP_COMMON=y
861ifdef CONFIG_DYNAMIC_EAP_METHODS
862CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
863LIBS += -ldl -rdynamic
864endif
865endif
866
867ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700868NEED_EAP_COMMON=y
869NEED_RSN_AUTHENTICATOR=y
870CFLAGS += -DCONFIG_AP
871OBJS += ap.o
872CFLAGS += -DCONFIG_NO_RADIUS
873CFLAGS += -DCONFIG_NO_ACCOUNTING
874CFLAGS += -DCONFIG_NO_VLAN
875OBJS += ../src/ap/hostapd.o
876OBJS += ../src/ap/wpa_auth_glue.o
877OBJS += ../src/ap/utils.o
878OBJS += ../src/ap/authsrv.o
879OBJS += ../src/ap/ap_config.o
880OBJS += ../src/utils/ip_addr.o
881OBJS += ../src/ap/sta_info.o
882OBJS += ../src/ap/tkip_countermeasures.o
883OBJS += ../src/ap/ap_mlme.o
884OBJS += ../src/ap/ieee802_1x.o
885OBJS += ../src/eapol_auth/eapol_auth_sm.o
886OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800887OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700888OBJS += ../src/ap/drv_callbacks.o
889OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800890OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800891OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800892OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700893OBJS += ../src/ap/neighbor_db.o
894OBJS += ../src/ap/rrm.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700895ifdef CONFIG_IEEE80211N
896OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700897ifdef CONFIG_IEEE80211AC
898OBJS += ../src/ap/ieee802_11_vht.o
899endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800900ifdef CONFIG_IEEE80211AX
901OBJS += ../src/ap/ieee802_11_he.o
902endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700903endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700904ifdef CONFIG_WNM_AP
905CFLAGS += -DCONFIG_WNM_AP
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800906OBJS += ../src/ap/wnm_ap.o
907endif
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800908ifdef CONFIG_MBO
909OBJS += ../src/ap/mbo_ap.o
910endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800911ifdef CONFIG_FILS
912OBJS += ../src/ap/fils_hlp.o
913endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700914ifdef CONFIG_CTRL_IFACE
915OBJS += ../src/ap/ctrl_iface_ap.o
916endif
917
918CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
919OBJS += ../src/eap_server/eap_server.o
920OBJS += ../src/eap_server/eap_server_identity.o
921OBJS += ../src/eap_server/eap_server_methods.o
922
923ifdef CONFIG_IEEE80211N
924CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700925ifdef CONFIG_IEEE80211AC
926CFLAGS += -DCONFIG_IEEE80211AC
927endif
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800928ifdef CONFIG_IEEE80211AX
929CFLAGS += -DCONFIG_IEEE80211AX
930endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700931endif
932
933ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700934OBJS += ../src/ap/wmm.o
935OBJS += ../src/ap/ap_list.o
936OBJS += ../src/ap/ieee802_11.o
937OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700938OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700939CFLAGS += -DNEED_AP_MLME
940endif
941ifdef CONFIG_WPS
942CFLAGS += -DEAP_SERVER_WSC
943OBJS += ../src/ap/wps_hostapd.o
944OBJS += ../src/eap_server/eap_server_wsc.o
945endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700946ifdef CONFIG_DPP
947OBJS += ../src/ap/dpp_hostapd.o
948OBJS += ../src/ap/gas_query_ap.o
949endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700950ifdef CONFIG_INTERWORKING
951OBJS += ../src/ap/gas_serv.o
952endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700953ifdef CONFIG_HS20
954OBJS += ../src/ap/hs20.o
955endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700956endif
957
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800958ifdef CONFIG_MBO
959OBJS += mbo.o
960CFLAGS += -DCONFIG_MBO
961endif
962
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700963ifdef NEED_RSN_AUTHENTICATOR
964CFLAGS += -DCONFIG_NO_RADIUS
965NEED_AES_WRAP=y
966OBJS += ../src/ap/wpa_auth.o
967OBJS += ../src/ap/wpa_auth_ie.o
968OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800969ifdef CONFIG_IEEE80211R_AP
970CFLAGS += -DCONFIG_IEEE80211R_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700971OBJS += ../src/ap/wpa_auth_ft.o
972endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700973endif
974
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -0800975ifdef CONFIG_ACS
976CFLAGS += -DCONFIG_ACS
977OBJS += ../src/ap/acs.o
978LIBS += -lm
979endif
980
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700981ifdef CONFIG_PCSC
982# PC/SC interface for smartcards (USIM, GSM SIM)
983CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
984OBJS += ../src/utils/pcsc_funcs.o
985# -lpthread may not be needed depending on how pcsc-lite was configured
986ifdef CONFIG_NATIVE_WINDOWS
987#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
988#dynamic symbol loading that is now used in pcsc_funcs.c
989#LIBS += -lwinscard
990else
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700991ifdef CONFIG_OSX
992LIBS += -framework PCSC
993else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700994LIBS += -lpcsclite -lpthread
995endif
996endif
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -0700997endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700998
999ifdef CONFIG_SIM_SIMULATOR
1000CFLAGS += -DCONFIG_SIM_SIMULATOR
1001NEED_MILENAGE=y
1002endif
1003
1004ifdef CONFIG_USIM_SIMULATOR
1005CFLAGS += -DCONFIG_USIM_SIMULATOR
1006NEED_MILENAGE=y
1007endif
1008
1009ifdef NEED_MILENAGE
1010OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001011NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001012endif
1013
1014ifdef CONFIG_PKCS12
1015CFLAGS += -DPKCS12_FUNCS
1016endif
1017
1018ifdef CONFIG_SMARTCARD
1019CFLAGS += -DCONFIG_SMARTCARD
1020endif
1021
1022ifdef MS_FUNCS
1023OBJS += ../src/crypto/ms_funcs.o
1024NEED_DES=y
1025NEED_MD4=y
1026endif
1027
1028ifdef CHAP
1029OBJS += ../src/eap_common/chap.o
1030endif
1031
1032ifdef TLS_FUNCS
1033NEED_DES=y
1034# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
1035OBJS += ../src/eap_peer/eap_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001036ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001037NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001038NEED_SHA1=y
1039NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001040endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001041endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001042
1043ifndef CONFIG_TLS
1044CONFIG_TLS=openssl
1045endif
1046
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001047ifdef CONFIG_TLSV11
1048CFLAGS += -DCONFIG_TLSV11
1049endif
1050
1051ifdef CONFIG_TLSV12
1052CFLAGS += -DCONFIG_TLSV12
1053NEED_SHA256=y
1054endif
1055
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001056ifeq ($(CONFIG_TLS), openssl)
1057ifdef TLS_FUNCS
1058CFLAGS += -DEAP_TLS_OPENSSL
1059OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001060OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001061LIBS += -lssl
1062endif
1063OBJS += ../src/crypto/crypto_openssl.o
1064OBJS_p += ../src/crypto/crypto_openssl.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001065OBJS_priv += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001066ifdef NEED_FIPS186_2_PRF
1067OBJS += ../src/crypto/fips_prf_openssl.o
1068endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001069NEED_SHA256=y
1070NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001071LIBS += -lcrypto
1072LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001073ifdef CONFIG_TLS_ADD_DL
1074LIBS += -ldl
1075LIBS_p += -ldl
1076endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001077ifndef CONFIG_TLS_DEFAULT_CIPHERS
1078CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
1079endif
1080CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001081endif
1082
1083ifeq ($(CONFIG_TLS), gnutls)
1084ifdef TLS_FUNCS
1085OBJS += ../src/crypto/tls_gnutls.o
1086LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001087endif
1088OBJS += ../src/crypto/crypto_gnutls.o
1089OBJS_p += ../src/crypto/crypto_gnutls.o
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001090OBJS_priv += ../src/crypto/crypto_gnutls.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001091ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001092OBJS += ../src/crypto/fips_prf_internal.o
1093SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001094endif
1095LIBS += -lgcrypt
1096LIBS_p += -lgcrypt
1097CONFIG_INTERNAL_SHA256=y
1098CONFIG_INTERNAL_RC4=y
1099CONFIG_INTERNAL_DH_GROUP5=y
1100endif
1101
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001102ifeq ($(CONFIG_TLS), internal)
1103ifndef CONFIG_CRYPTO
1104CONFIG_CRYPTO=internal
1105endif
1106ifdef TLS_FUNCS
1107OBJS += ../src/crypto/crypto_internal-rsa.o
1108OBJS += ../src/crypto/tls_internal.o
1109OBJS += ../src/tls/tlsv1_common.o
1110OBJS += ../src/tls/tlsv1_record.o
1111OBJS += ../src/tls/tlsv1_cred.o
1112OBJS += ../src/tls/tlsv1_client.o
1113OBJS += ../src/tls/tlsv1_client_write.o
1114OBJS += ../src/tls/tlsv1_client_read.o
Dmitry Shmidt55840ad2015-12-14 12:45:46 -08001115OBJS += ../src/tls/tlsv1_client_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001116OBJS += ../src/tls/asn1.o
1117OBJS += ../src/tls/rsa.o
1118OBJS += ../src/tls/x509v3.o
1119OBJS += ../src/tls/pkcs1.o
1120OBJS += ../src/tls/pkcs5.o
1121OBJS += ../src/tls/pkcs8.o
1122NEED_SHA256=y
1123NEED_BASE64=y
1124NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001125ifdef CONFIG_TLSV12
1126NEED_TLS_PRF_SHA256=y
1127endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001128NEED_MODEXP=y
1129NEED_CIPHER=y
1130CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1131endif
1132ifdef NEED_CIPHER
1133NEED_DES=y
1134OBJS += ../src/crypto/crypto_internal-cipher.o
1135endif
1136ifdef NEED_MODEXP
1137OBJS += ../src/crypto/crypto_internal-modexp.o
1138OBJS += ../src/tls/bignum.o
1139endif
1140ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1141OBJS += ../src/crypto/crypto_libtomcrypt.o
1142OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1143LIBS += -ltomcrypt -ltfm
1144LIBS_p += -ltomcrypt -ltfm
1145CONFIG_INTERNAL_SHA256=y
1146CONFIG_INTERNAL_RC4=y
1147CONFIG_INTERNAL_DH_GROUP5=y
1148endif
1149ifeq ($(CONFIG_CRYPTO), internal)
1150OBJS += ../src/crypto/crypto_internal.o
1151OBJS_p += ../src/crypto/crypto_internal.o
1152NEED_AES_ENC=y
1153CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1154ifdef CONFIG_INTERNAL_LIBTOMMATH
1155CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1156ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1157CFLAGS += -DLTM_FAST
1158endif
1159else
1160LIBS += -ltommath
1161LIBS_p += -ltommath
1162endif
1163CONFIG_INTERNAL_AES=y
1164CONFIG_INTERNAL_DES=y
1165CONFIG_INTERNAL_SHA1=y
1166CONFIG_INTERNAL_MD4=y
1167CONFIG_INTERNAL_MD5=y
1168CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001169CONFIG_INTERNAL_SHA384=y
1170CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001171CONFIG_INTERNAL_RC4=y
1172CONFIG_INTERNAL_DH_GROUP5=y
1173endif
1174ifeq ($(CONFIG_CRYPTO), cryptoapi)
1175OBJS += ../src/crypto/crypto_cryptoapi.o
1176OBJS_p += ../src/crypto/crypto_cryptoapi.o
1177CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1178CONFIG_INTERNAL_SHA256=y
1179CONFIG_INTERNAL_RC4=y
1180endif
1181endif
1182
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001183ifeq ($(CONFIG_TLS), linux)
1184OBJS += ../src/crypto/crypto_linux.o
1185OBJS_p += ../src/crypto/crypto_linux.o
1186ifdef TLS_FUNCS
1187OBJS += ../src/crypto/crypto_internal-rsa.o
1188OBJS += ../src/crypto/tls_internal.o
1189OBJS += ../src/tls/tlsv1_common.o
1190OBJS += ../src/tls/tlsv1_record.o
1191OBJS += ../src/tls/tlsv1_cred.o
1192OBJS += ../src/tls/tlsv1_client.o
1193OBJS += ../src/tls/tlsv1_client_write.o
1194OBJS += ../src/tls/tlsv1_client_read.o
1195OBJS += ../src/tls/tlsv1_client_ocsp.o
1196OBJS += ../src/tls/asn1.o
1197OBJS += ../src/tls/rsa.o
1198OBJS += ../src/tls/x509v3.o
1199OBJS += ../src/tls/pkcs1.o
1200OBJS += ../src/tls/pkcs5.o
1201OBJS += ../src/tls/pkcs8.o
1202NEED_SHA256=y
1203NEED_BASE64=y
1204NEED_TLS_PRF=y
1205ifdef CONFIG_TLSV12
1206NEED_TLS_PRF_SHA256=y
1207endif
1208NEED_MODEXP=y
1209NEED_CIPHER=y
1210CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1211endif
1212ifdef NEED_MODEXP
1213OBJS += ../src/crypto/crypto_internal-modexp.o
1214OBJS += ../src/tls/bignum.o
1215CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1216CFLAGS += -DLTM_FAST
1217endif
1218CONFIG_INTERNAL_DH_GROUP5=y
1219ifdef NEED_FIPS186_2_PRF
1220OBJS += ../src/crypto/fips_prf_internal.o
1221OBJS += ../src/crypto/sha1-internal.o
1222endif
1223endif
1224
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001225ifeq ($(CONFIG_TLS), none)
1226ifdef TLS_FUNCS
1227OBJS += ../src/crypto/tls_none.o
1228CFLAGS += -DEAP_TLS_NONE
1229CONFIG_INTERNAL_AES=y
1230CONFIG_INTERNAL_SHA1=y
1231CONFIG_INTERNAL_MD5=y
1232endif
1233OBJS += ../src/crypto/crypto_none.o
1234OBJS_p += ../src/crypto/crypto_none.o
1235CONFIG_INTERNAL_SHA256=y
1236CONFIG_INTERNAL_RC4=y
1237endif
1238
1239ifdef TLS_FUNCS
1240ifdef CONFIG_SMARTCARD
1241ifndef CONFIG_NATIVE_WINDOWS
1242ifneq ($(CONFIG_L2_PACKET), freebsd)
1243LIBS += -ldl
1244endif
1245endif
1246endif
1247endif
1248
1249ifndef TLS_FUNCS
1250OBJS += ../src/crypto/tls_none.o
1251ifeq ($(CONFIG_TLS), internal)
1252CONFIG_INTERNAL_AES=y
1253CONFIG_INTERNAL_SHA1=y
1254CONFIG_INTERNAL_MD5=y
1255CONFIG_INTERNAL_RC4=y
1256endif
1257endif
1258
1259AESOBJS = # none so far (see below)
1260ifdef CONFIG_INTERNAL_AES
1261AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1262endif
1263
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001264ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001265NEED_INTERNAL_AES_WRAP=y
1266endif
1267ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1268# Seems to be needed at least with BoringSSL
1269NEED_INTERNAL_AES_WRAP=y
1270CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1271endif
1272ifdef CONFIG_FIPS
1273# Have to use internal AES key wrap routines to use OpenSSL EVP since the
1274# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1275NEED_INTERNAL_AES_WRAP=y
1276endif
1277
1278ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001279ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001280AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001281endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001282endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001283ifdef NEED_AES_EAX
1284AESOBJS += ../src/crypto/aes-eax.o
1285NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001286NEED_AES_OMAC1=y
1287endif
1288ifdef NEED_AES_SIV
1289AESOBJS += ../src/crypto/aes-siv.o
1290NEED_AES_CTR=y
1291NEED_AES_OMAC1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001292endif
1293ifdef NEED_AES_CTR
1294AESOBJS += ../src/crypto/aes-ctr.o
1295endif
1296ifdef NEED_AES_ENCBLOCK
1297AESOBJS += ../src/crypto/aes-encblock.o
1298endif
1299ifdef NEED_AES_OMAC1
1300NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001301ifdef CONFIG_OPENSSL_CMAC
1302CFLAGS += -DCONFIG_OPENSSL_CMAC
1303else
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001304ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001305AESOBJS += ../src/crypto/aes-omac1.o
1306endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001307endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001308endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001309ifdef NEED_AES_WRAP
1310NEED_AES_ENC=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001311ifdef NEED_INTERNAL_AES_WRAP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001312AESOBJS += ../src/crypto/aes-wrap.o
1313endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001314endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001315ifdef NEED_AES_CBC
1316NEED_AES_ENC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001317ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001318ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001319AESOBJS += ../src/crypto/aes-cbc.o
1320endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -07001321endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001322endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001323ifdef NEED_AES_ENC
1324ifdef CONFIG_INTERNAL_AES
1325AESOBJS += ../src/crypto/aes-internal-enc.o
1326endif
1327endif
1328ifdef NEED_AES
1329OBJS += $(AESOBJS)
1330endif
1331
1332ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001333ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001334ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001335SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001336endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001337endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001338SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001339ifdef CONFIG_INTERNAL_SHA1
1340SHA1OBJS += ../src/crypto/sha1-internal.o
1341ifdef NEED_FIPS186_2_PRF
1342SHA1OBJS += ../src/crypto/fips_prf_internal.o
1343endif
1344endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001345ifdef CONFIG_NO_WPA_PASSPHRASE
1346CFLAGS += -DCONFIG_NO_PBKDF2
1347else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001348ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001349SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1350endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001351endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001352ifdef NEED_T_PRF
1353SHA1OBJS += ../src/crypto/sha1-tprf.o
1354endif
1355ifdef NEED_TLS_PRF
1356SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1357endif
1358endif
1359
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001360ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001361ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001362ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001363MD5OBJS += ../src/crypto/md5.o
1364endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001365endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001366endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001367ifdef NEED_MD5
1368ifdef CONFIG_INTERNAL_MD5
1369MD5OBJS += ../src/crypto/md5-internal.o
1370endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001371OBJS += $(MD5OBJS)
1372OBJS_p += $(MD5OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001373OBJS_priv += $(MD5OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001374endif
1375
1376ifdef NEED_MD4
1377ifdef CONFIG_INTERNAL_MD4
1378OBJS += ../src/crypto/md4-internal.o
1379endif
1380endif
1381
1382DESOBJS = # none needed when not internal
1383ifdef NEED_DES
1384ifdef CONFIG_INTERNAL_DES
1385DESOBJS += ../src/crypto/des-internal.o
1386endif
1387endif
1388
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001389ifdef CONFIG_NO_RC4
1390CFLAGS += -DCONFIG_NO_RC4
1391endif
1392
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001393ifdef NEED_RC4
1394ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001395ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001396OBJS += ../src/crypto/rc4.o
1397endif
1398endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001399endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001400
1401SHA256OBJS = # none by default
1402ifdef NEED_SHA256
1403CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001404ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001405ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001406SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001407endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001408endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001409SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001410ifdef CONFIG_INTERNAL_SHA256
1411SHA256OBJS += ../src/crypto/sha256-internal.o
1412endif
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001413ifdef CONFIG_INTERNAL_SHA384
1414CFLAGS += -DCONFIG_INTERNAL_SHA384
1415SHA256OBJS += ../src/crypto/sha384-internal.o
1416endif
1417ifdef CONFIG_INTERNAL_SHA512
1418CFLAGS += -DCONFIG_INTERNAL_SHA512
1419SHA256OBJS += ../src/crypto/sha512-internal.o
1420endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001421ifdef NEED_TLS_PRF_SHA256
1422SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1423endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001424ifdef NEED_HMAC_SHA256_KDF
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001425CFLAGS += -DCONFIG_HMAC_SHA256_KDF
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001426OBJS += ../src/crypto/sha256-kdf.o
1427endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001428ifdef NEED_HMAC_SHA384_KDF
1429CFLAGS += -DCONFIG_HMAC_SHA384_KDF
1430OBJS += ../src/crypto/sha384-kdf.o
1431endif
1432ifdef NEED_HMAC_SHA512_KDF
1433CFLAGS += -DCONFIG_HMAC_SHA512_KDF
1434OBJS += ../src/crypto/sha512-kdf.o
1435endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001436OBJS += $(SHA256OBJS)
1437endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001438ifdef NEED_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001439ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001440ifneq ($(CONFIG_TLS), linux)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001441OBJS += ../src/crypto/sha384.o
1442endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001443endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001444CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001445OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001446endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001447ifdef NEED_SHA512
1448ifneq ($(CONFIG_TLS), openssl)
1449ifneq ($(CONFIG_TLS), linux)
1450OBJS += ../src/crypto/sha512.o
1451endif
1452endif
1453CFLAGS += -DCONFIG_SHA512
1454OBJS += ../src/crypto/sha512-prf.o
1455endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001456
1457ifdef NEED_DH_GROUPS
1458OBJS += ../src/crypto/dh_groups.o
1459endif
1460ifdef NEED_DH_GROUPS_ALL
1461CFLAGS += -DALL_DH_GROUPS
1462endif
1463ifdef CONFIG_INTERNAL_DH_GROUP5
1464ifdef NEED_DH_GROUPS
1465OBJS += ../src/crypto/dh_group5.o
1466endif
1467endif
1468
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001469ifdef NEED_ECC
1470CFLAGS += -DCONFIG_ECC
1471endif
1472
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001473ifdef CONFIG_NO_RANDOM_POOL
1474CFLAGS += -DCONFIG_NO_RANDOM_POOL
1475else
1476OBJS += ../src/crypto/random.o
1477endif
1478
1479ifdef CONFIG_CTRL_IFACE
1480ifeq ($(CONFIG_CTRL_IFACE), y)
1481ifdef CONFIG_NATIVE_WINDOWS
1482CONFIG_CTRL_IFACE=named_pipe
1483else
1484CONFIG_CTRL_IFACE=unix
1485endif
1486endif
1487CFLAGS += -DCONFIG_CTRL_IFACE
1488ifeq ($(CONFIG_CTRL_IFACE), unix)
1489CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -08001490OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001491endif
1492ifeq ($(CONFIG_CTRL_IFACE), udp)
1493CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1494endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001495ifeq ($(CONFIG_CTRL_IFACE), udp6)
1496CONFIG_CTRL_IFACE=udp
1497CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1498CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1499endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001500ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1501CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1502endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001503ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1504CONFIG_CTRL_IFACE=udp
1505CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1506CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1507endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001508ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1509CONFIG_CTRL_IFACE=udp
1510CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1511CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1512CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1513endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001514OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1515endif
1516
1517ifdef CONFIG_CTRL_IFACE_DBUS
1518DBUS=y
1519DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1520DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1521ifdef CONFIG_WPS
1522DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1523endif
1524DBUS_OBJS += dbus/dbus_dict_helpers.o
1525ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001526DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001527endif
1528ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001529DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001530endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001531DBUS_CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt849734c2016-05-27 09:59:01 -07001532DBUS_INTERFACE=fi.epitest.hostap.WPASupplicant
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001533endif
1534
1535ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1536DBUS=y
1537DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1538DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1539DBUS_OBJS += dbus/dbus_new_helpers.o
1540DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1541ifdef CONFIG_WPS
1542DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1543endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001544ifdef CONFIG_P2P
1545DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1546endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001547ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001548DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001549endif
1550ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001551DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001552endif
1553ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1554DBUS_OBJS += dbus/dbus_new_introspect.o
1555DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1556endif
1557DBUS_CFLAGS += $(DBUS_INCLUDE)
Dmitry Shmidt849734c2016-05-27 09:59:01 -07001558DBUS_INTERFACE=fi.w1.wpa_supplicant1
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001559endif
1560
1561ifdef DBUS
1562DBUS_CFLAGS += -DCONFIG_DBUS
1563DBUS_OBJS += dbus/dbus_common.o
1564endif
1565
1566OBJS += $(DBUS_OBJS)
1567CFLAGS += $(DBUS_CFLAGS)
1568LIBS += $(DBUS_LIBS)
1569
1570ifdef CONFIG_READLINE
1571OBJS_c += ../src/utils/edit_readline.o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001572LIBS_c += -lreadline -lncurses
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001573else
1574ifdef CONFIG_WPA_CLI_EDIT
1575OBJS_c += ../src/utils/edit.o
1576else
1577OBJS_c += ../src/utils/edit_simple.o
1578endif
1579endif
1580
1581ifdef CONFIG_NATIVE_WINDOWS
1582CFLAGS += -DCONFIG_NATIVE_WINDOWS
1583LIBS += -lws2_32 -lgdi32 -lcrypt32
1584LIBS_c += -lws2_32
1585LIBS_p += -lws2_32 -lgdi32
1586ifeq ($(CONFIG_CRYPTO), cryptoapi)
1587LIBS_p += -lcrypt32
1588endif
1589endif
1590
1591ifdef CONFIG_NO_STDOUT_DEBUG
1592CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1593ifndef CONFIG_CTRL_IFACE
1594CFLAGS += -DCONFIG_NO_WPA_MSG
1595endif
1596endif
1597
1598ifdef CONFIG_IPV6
1599# for eapol_test only
1600CFLAGS += -DCONFIG_IPV6
1601endif
1602
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001603ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1604CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1605endif
1606
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001607ifdef NEED_BASE64
1608OBJS += ../src/utils/base64.o
1609endif
1610
1611ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001612OBJS += sme.o
1613CFLAGS += -DCONFIG_SME
1614endif
1615
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001616OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001617OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001618
1619ifdef NEED_EAP_COMMON
1620OBJS += ../src/eap_common/eap_common.o
1621endif
1622
1623ifndef CONFIG_MAIN
1624CONFIG_MAIN=main
1625endif
1626
1627ifdef CONFIG_DEBUG_SYSLOG
1628CFLAGS += -DCONFIG_DEBUG_SYSLOG
1629ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1630CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1631endif
1632endif
1633
Dmitry Shmidt04949592012-07-19 12:16:46 -07001634ifdef CONFIG_DEBUG_LINUX_TRACING
1635CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1636endif
1637
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001638ifdef CONFIG_DEBUG_FILE
1639CFLAGS += -DCONFIG_DEBUG_FILE
1640endif
1641
1642ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1643CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1644endif
1645
1646ifdef CONFIG_FIPS
1647CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001648ifneq ($(CONFIG_TLS), openssl)
1649$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1650endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001651endif
1652
1653OBJS += $(SHA1OBJS) $(DESOBJS)
1654
1655OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001656OBJS_p += $(SHA256OBJS)
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001657OBJS_priv += $(SHA1OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001658
1659ifdef CONFIG_BGSCAN_SIMPLE
1660CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1661OBJS += bgscan_simple.o
1662NEED_BGSCAN=y
1663endif
1664
1665ifdef CONFIG_BGSCAN_LEARN
1666CFLAGS += -DCONFIG_BGSCAN_LEARN
1667OBJS += bgscan_learn.o
1668NEED_BGSCAN=y
1669endif
1670
1671ifdef NEED_BGSCAN
1672CFLAGS += -DCONFIG_BGSCAN
1673OBJS += bgscan.o
1674endif
1675
Dmitry Shmidt04949592012-07-19 12:16:46 -07001676ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1677CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1678OBJS += autoscan_exponential.o
1679NEED_AUTOSCAN=y
1680endif
1681
1682ifdef CONFIG_AUTOSCAN_PERIODIC
1683CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1684OBJS += autoscan_periodic.o
1685NEED_AUTOSCAN=y
1686endif
1687
1688ifdef NEED_AUTOSCAN
1689CFLAGS += -DCONFIG_AUTOSCAN
1690OBJS += autoscan.o
1691endif
1692
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001693ifdef CONFIG_EXT_PASSWORD_TEST
1694OBJS += ../src/utils/ext_password_test.o
1695CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1696NEED_EXT_PASSWORD=y
1697endif
1698
1699ifdef NEED_EXT_PASSWORD
1700OBJS += ../src/utils/ext_password.o
1701CFLAGS += -DCONFIG_EXT_PASSWORD
1702endif
1703
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001704ifdef NEED_GAS_SERVER
1705OBJS += ../src/common/gas_server.o
1706CFLAGS += -DCONFIG_GAS_SERVER
1707NEED_GAS=y
1708endif
1709
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001710ifdef NEED_GAS
1711OBJS += ../src/common/gas.o
1712OBJS += gas_query.o
1713CFLAGS += -DCONFIG_GAS
1714NEED_OFFCHANNEL=y
1715endif
1716
1717ifdef NEED_OFFCHANNEL
1718OBJS += offchannel.o
1719CFLAGS += -DCONFIG_OFFCHANNEL
1720endif
1721
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001722ifdef NEED_JSON
1723OBJS += ../src/utils/json.o
1724CFLAGS += -DCONFIG_JSON
1725endif
1726
Dmitry Shmidt71757432014-06-02 13:50:35 -07001727ifdef CONFIG_MODULE_TESTS
1728CFLAGS += -DCONFIG_MODULE_TESTS
1729OBJS += wpas_module_tests.o
1730OBJS += ../src/utils/utils_module_tests.o
1731OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001732OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001733ifdef CONFIG_WPS
1734OBJS += ../src/wps/wps_module_tests.o
1735endif
1736endif
1737
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001738OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001739OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001740
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001741OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1742OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1743OBJS_t += ../src/radius/radius_client.o
1744OBJS_t += ../src/radius/radius.o
1745ifndef CONFIG_AP
1746OBJS_t += ../src/utils/ip_addr.o
1747endif
1748OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001749
1750OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1751OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1752
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001753OBJS += $(CONFIG_MAIN).o
1754
1755ifdef CONFIG_PRIVSEP
1756OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1757OBJS_priv += $(OBJS_l2)
1758OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1759OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1760OBJS_priv += ../src/utils/common.o
1761OBJS_priv += ../src/utils/wpa_debug.o
1762OBJS_priv += ../src/utils/wpabuf.o
1763OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001764ifdef CONFIG_DRIVER_NL80211
1765OBJS_priv += ../src/common/ieee802_11_common.o
1766endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001767OBJS += ../src/l2_packet/l2_packet_privsep.o
1768OBJS += ../src/drivers/driver_privsep.o
1769EXTRA_progs += wpa_priv
1770else
1771OBJS += $(OBJS_d) ../src/drivers/drivers.o
1772OBJS += $(OBJS_l2)
1773endif
1774
1775ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1776CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1777OBJS += ../src/drivers/ndis_events.o
1778EXTRALIBS += -loleaut32 -lole32 -luuid
1779ifdef PLATFORMSDKLIB
1780EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1781else
1782EXTRALIBS += WbemUuid.Lib
1783endif
1784endif
1785
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001786ifdef CONFIG_FST
1787CFLAGS += -DCONFIG_FST
1788ifdef CONFIG_FST_TEST
1789CFLAGS += -DCONFIG_FST_TEST
1790endif
1791FST_OBJS += ../src/fst/fst.o
1792FST_OBJS += ../src/fst/fst_session.o
1793FST_OBJS += ../src/fst/fst_iface.o
1794FST_OBJS += ../src/fst/fst_group.o
1795FST_OBJS += ../src/fst/fst_ctrl_aux.o
1796ifdef CONFIG_CTRL_IFACE
1797FST_OBJS += ../src/fst/fst_ctrl_iface.o
1798endif
1799OBJS += $(FST_OBJS)
1800OBJS_t += $(FST_OBJS)
1801OBJS_t2 += $(FST_OBJS)
Dmitry Shmidte4663042016-04-04 10:07:49 -07001802OBJS_nfc += $(FST_OBJS)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001803endif
1804
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001805ifndef LDO
1806LDO=$(CC)
1807endif
1808
1809Q=@
1810E=echo
1811ifeq ($(V), 1)
1812Q=
1813E=true
1814endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001815ifeq ($(QUIET), 1)
1816Q=@
1817E=true
1818endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001819
1820dynamic_eap_methods: $(EAPDYN)
1821
1822../src/drivers/build.wpa_supplicant:
1823 @if [ -f ../src/drivers/build.hostapd ]; then \
1824 $(MAKE) -C ../src/drivers clean; \
1825 fi
1826 @touch ../src/drivers/build.wpa_supplicant
1827
1828BCHECK=../src/drivers/build.wpa_supplicant
1829
1830wpa_priv: $(BCHECK) $(OBJS_priv)
1831 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1832 @$(E) " LD " $@
1833
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001834$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1835
1836wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001837 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1838 @$(E) " LD " $@
1839
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001840eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001841 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1842 @$(E) " LD " $@
1843
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001844preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001845 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1846 @$(E) " LD " $@
1847
1848wpa_passphrase: $(OBJS_p)
1849 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1850 @$(E) " LD " $@
1851
1852wpa_cli: $(OBJS_c)
1853 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1854 @$(E) " LD " $@
1855
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001856LIBCTRL += ../src/common/wpa_ctrl.o
1857LIBCTRL += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001858LIBCTRL += ../src/utils/common.o
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001859LIBCTRL += ../src/utils/wpa_debug.o
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001860LIBCTRLSO += ../src/common/wpa_ctrl.c
1861LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001862LIBCTRLSO += ../src/utils/common.c
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001863LIBCTRLSO += ../src/utils/wpa_debug.c
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001864
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001865libwpa_client.a: $(LIBCTRL)
Dmitry Shmidt7f656022015-02-25 14:36:37 -08001866 $(Q)rm -f $@
1867 $(Q)$(AR) crs $@ $?
1868 @$(E) " AR " $@
1869
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001870libwpa_client.so: $(LIBCTRLSO)
1871 @$(E) " CC $@ ($^)"
1872 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
1873
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001874libwpa_test1: libwpa_test.o libwpa_client.a
1875 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 libwpa_test.o libwpa_client.a $(LIBS_c)
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001876 @$(E) " LD " $@
1877
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001878libwpa_test2: libwpa_test.o libwpa_client.so
1879 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 libwpa_test.o -L. -lwpa_client $(LIBS_c)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001880 @$(E) " LD " $@
1881
Dmitry Shmidt04949592012-07-19 12:16:46 -07001882nfc_pw_token: $(OBJS_nfc)
1883 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1884 @$(E) " LD " $@
1885
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001886win_if_list: win_if_list.c
1887 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1888 @$(E) " LD " $@
1889
1890eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1891 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1892 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1893
1894eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1895 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1896 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1897
1898eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1899 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1900 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1901
1902eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1903 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1904 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1905
1906eap_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
1907 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1908 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1909
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001910eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1911 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1912 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1913
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001914%.so: %.c
1915 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1916 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1917
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001918ifdef CONFIG_CODE_COVERAGE
1919%.o: %.c
1920 @$(E) " CC " $<
1921 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1922else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001923%.o: %.c
1924 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1925 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001926endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001927
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001928%.service: %.service.in
Dmitry Shmidt849734c2016-05-27 09:59:01 -07001929 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \
1930 -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001931 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001932
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001933%@.service: %.service.arg.in
Dmitry Shmidt849734c2016-05-27 09:59:01 -07001934 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \
1935 -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001936 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001937
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001938wpa_supplicant.exe: wpa_supplicant
1939 mv -f $< $@
1940wpa_cli.exe: wpa_cli
1941 mv -f $< $@
1942wpa_passphrase.exe: wpa_passphrase
1943 mv -f $< $@
1944win_if_list.exe: win_if_list
1945 mv -f $< $@
1946eapol_test.exe: eapol_test
1947 mv -f $< $@
1948
1949WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1950
1951windows-bin: $(WINALL)
1952 $(STRIP) $(WINALL)
1953
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001954wpa_gui:
1955 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001956
1957wpa_gui-qt4/Makefile:
Dmitry Shmidt1d755d02015-04-28 10:34:29 -07001958 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001959
1960wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1961 lrelease wpa_gui-qt4/wpa_gui.pro
1962
1963wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1964 $(MAKE) -C wpa_gui-qt4
1965
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001966FIPSDIR=/usr/local/ssl/fips-2.0
1967FIPSLD=$(FIPSDIR)/bin/fipsld
1968fips:
1969 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1970
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001971lcov-html: wpa_supplicant.gcda
1972 lcov -c -d .. > lcov.info
1973 genhtml lcov.info --output-directory lcov-html
1974
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001975clean:
1976 $(MAKE) -C ../src clean
1977 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001978 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1979 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001980 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07001981 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001982 rm -f lcov.info
1983 rm -rf lcov-html
Dmitry Shmidtb1e52102015-05-29 12:36:29 -07001984 rm -f libwpa_client.a
1985 rm -f libwpa_client.so
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001986 rm -f libwpa_test1 libwpa_test2
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001987
1988-include $(OBJS:%.o=%.d)