blob: 95fbe789beac223c49fc122e6bf4412a394f1580 [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
9export LIBDIR ?= /usr/local/lib/
10export BINDIR ?= /usr/local/sbin/
Dmitry Shmidtc55524a2011-07-07 11:18:38 -070011PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070012
Dmitry Shmidt216983b2015-02-06 10:50:36 -080013CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080014CFLAGS += -I$(abspath ../src)
15CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070016
Jouni Malinen75ecf522011-06-27 15:19:46 -070017-include .config
18
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080019ifdef CONFIG_TESTING_OPTIONS
20CFLAGS += -DCONFIG_TESTING_OPTIONS
21CONFIG_WPS_TESTING=y
22CONFIG_TDLS_TESTING=y
23endif
24
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080025BINALL=wpa_supplicant wpa_cli
Jouni Malinen75ecf522011-06-27 15:19:46 -070026
27ifndef CONFIG_NO_WPA_PASSPHRASE
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080028BINALL += wpa_passphrase
Jouni Malinen75ecf522011-06-27 15:19:46 -070029endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070030
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080031ALL = $(BINALL)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080032ALL += systemd/wpa_supplicant.service
33ALL += systemd/wpa_supplicant@.service
34ALL += systemd/wpa_supplicant-nl80211@.service
35ALL += systemd/wpa_supplicant-wired@.service
36ALL += dbus/fi.epitest.hostap.WPASupplicant.service
37ALL += dbus/fi.w1.wpa_supplicant1.service
38
39
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070040all: verify_config $(ALL) dynamic_eap_methods
41
42verify_config:
43 @if [ ! -r .config ]; then \
44 echo 'Building wpa_supplicant requires a configuration file'; \
45 echo '(.config). See README for more instructions. You can'; \
46 echo 'run "cp defconfig .config" to create an example'; \
47 echo 'configuration.'; \
48 exit 1; \
49 fi
50
51mkconfig:
52 @if [ -f .config ]; then \
53 echo '.config exists - did not replace it'; \
54 exit 1; \
55 fi
56 echo CONFIG_DRIVER_HOSTAP=y >> .config
57 echo CONFIG_DRIVER_WEXT=y >> .config
58
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080059$(DESTDIR)$(BINDIR)/%: %
60 install -D $(<) $(@)
61
62install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070063 $(MAKE) -C ../src install
64
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070065ifdef CONFIG_FIPS
66CONFIG_NO_RANDOM_POOL=
67CONFIG_OPENSSL_CMAC=y
68endif
69
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070070OBJS = config.o
71OBJS += notify.o
72OBJS += bss.o
73OBJS += eap_register.o
74OBJS += ../src/utils/common.o
75OBJS += ../src/utils/wpa_debug.o
76OBJS += ../src/utils/wpabuf.o
77OBJS_p = wpa_passphrase.o
78OBJS_p += ../src/utils/common.o
79OBJS_p += ../src/utils/wpa_debug.o
80OBJS_p += ../src/utils/wpabuf.o
81OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
82OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080083OBJS_c += ../src/utils/common.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080084OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070085
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070086ifndef CONFIG_OS
87ifdef CONFIG_NATIVE_WINDOWS
88CONFIG_OS=win32
89else
90CONFIG_OS=unix
91endif
92endif
93
94ifeq ($(CONFIG_OS), internal)
95CFLAGS += -DOS_NO_C_LIB_DEFINES
96endif
97
98OBJS += ../src/utils/os_$(CONFIG_OS).o
99OBJS_p += ../src/utils/os_$(CONFIG_OS).o
100OBJS_c += ../src/utils/os_$(CONFIG_OS).o
101
102ifdef CONFIG_WPA_TRACE
103CFLAGS += -DWPA_TRACE
104OBJS += ../src/utils/trace.o
105OBJS_p += ../src/utils/trace.o
106OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800107OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700108LDFLAGS += -rdynamic
109CFLAGS += -funwind-tables
110ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800111CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800112LIBS += -lbfd -ldl -liberty -lz
113LIBS_p += -lbfd -ldl -liberty -lz
114LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700115endif
116endif
117
118ifndef CONFIG_ELOOP
119CONFIG_ELOOP=eloop
120endif
121OBJS += ../src/utils/$(CONFIG_ELOOP).o
122OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
123
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800124ifeq ($(CONFIG_ELOOP), eloop)
125# Using glibc < 2.17 requires -lrt for clock_gettime()
126LIBS += -lrt
127LIBS_c += -lrt
128LIBS_p += -lrt
129endif
130
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800131ifdef CONFIG_ELOOP_POLL
132CFLAGS += -DCONFIG_ELOOP_POLL
133endif
134
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700135ifdef CONFIG_ELOOP_EPOLL
136CFLAGS += -DCONFIG_ELOOP_EPOLL
137endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700138
139ifdef CONFIG_EAPOL_TEST
140CFLAGS += -Werror -DEAPOL_TEST
141endif
142
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800143ifdef CONFIG_CODE_COVERAGE
144CFLAGS += -O0 -fprofile-arcs -ftest-coverage
145LIBS += -lgcov
146LIBS_c += -lgcov
147LIBS_p += -lgcov
148endif
149
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800150ifdef CONFIG_HT_OVERRIDES
151CFLAGS += -DCONFIG_HT_OVERRIDES
152endif
153
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700154ifdef CONFIG_VHT_OVERRIDES
155CFLAGS += -DCONFIG_VHT_OVERRIDES
156endif
157
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700158ifndef CONFIG_BACKEND
159CONFIG_BACKEND=file
160endif
161
162ifeq ($(CONFIG_BACKEND), file)
163OBJS += config_file.o
164ifndef CONFIG_NO_CONFIG_BLOBS
165NEED_BASE64=y
166endif
167CFLAGS += -DCONFIG_BACKEND_FILE
168endif
169
170ifeq ($(CONFIG_BACKEND), winreg)
171OBJS += config_winreg.o
172endif
173
174ifeq ($(CONFIG_BACKEND), none)
175OBJS += config_none.o
176endif
177
178ifdef CONFIG_NO_CONFIG_WRITE
179CFLAGS += -DCONFIG_NO_CONFIG_WRITE
180endif
181
182ifdef CONFIG_NO_CONFIG_BLOBS
183CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
184endif
185
186ifdef CONFIG_NO_SCAN_PROCESSING
187CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
188endif
189
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800190ifdef CONFIG_SUITEB
191CFLAGS += -DCONFIG_SUITEB
192NEED_SHA256=y
193NEED_AES_OMAC1=y
194endif
195
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800196ifdef CONFIG_SUITEB192
197CFLAGS += -DCONFIG_SUITEB192
198NEED_SHA384=y
199endif
200
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700201ifdef CONFIG_IEEE80211W
202CFLAGS += -DCONFIG_IEEE80211W
203NEED_SHA256=y
204NEED_AES_OMAC1=y
205endif
206
207ifdef CONFIG_IEEE80211R
208CFLAGS += -DCONFIG_IEEE80211R
209OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700210NEED_SHA256=y
211NEED_AES_OMAC1=y
212endif
213
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800214ifdef CONFIG_MESH
215NEED_80211_COMMON=y
216NEED_SHA256=y
217NEED_AES_SIV=y
218NEED_AES_OMAC1=y
219NEED_AES_CTR=y
220CONFIG_SAE=y
221CONFIG_AP=y
222CFLAGS += -DCONFIG_MESH
223OBJS += mesh.o
224OBJS += mesh_mpm.o
225OBJS += mesh_rsn.o
226endif
227
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800228ifdef CONFIG_SAE
229CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800230OBJS += ../src/common/sae.o
231NEED_ECC=y
232NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800233endif
234
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800235ifdef CONFIG_WNM
236CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700237OBJS += wnm_sta.o
238endif
239
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700240ifdef CONFIG_TDLS
241CFLAGS += -DCONFIG_TDLS
242OBJS += ../src/rsn_supp/tdls.o
243NEED_SHA256=y
244NEED_AES_OMAC1=y
245endif
246
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800247ifdef CONFIG_TDLS_TESTING
248CFLAGS += -DCONFIG_TDLS_TESTING
249endif
250
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700251ifdef CONFIG_PEERKEY
252CFLAGS += -DCONFIG_PEERKEY
253endif
254
255ifndef CONFIG_NO_WPA
256OBJS += ../src/rsn_supp/wpa.o
257OBJS += ../src/rsn_supp/preauth.o
258OBJS += ../src/rsn_supp/pmksa_cache.o
259OBJS += ../src/rsn_supp/peerkey.o
260OBJS += ../src/rsn_supp/wpa_ie.o
261OBJS += ../src/common/wpa_common.o
262NEED_AES=y
263NEED_SHA1=y
264NEED_MD5=y
265NEED_RC4=y
266else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700267CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700268endif
269
270ifdef CONFIG_IBSS_RSN
271NEED_RSN_AUTHENTICATOR=y
272CFLAGS += -DCONFIG_IBSS_RSN
273OBJS += ibss_rsn.o
274endif
275
276ifdef CONFIG_P2P
277OBJS += p2p_supplicant.o
278OBJS += ../src/p2p/p2p.o
279OBJS += ../src/p2p/p2p_utils.o
280OBJS += ../src/p2p/p2p_parse.o
281OBJS += ../src/p2p/p2p_build.o
282OBJS += ../src/p2p/p2p_go_neg.o
283OBJS += ../src/p2p/p2p_sd.o
284OBJS += ../src/p2p/p2p_pd.o
285OBJS += ../src/p2p/p2p_invitation.o
286OBJS += ../src/p2p/p2p_dev_disc.o
287OBJS += ../src/p2p/p2p_group.o
288OBJS += ../src/ap/p2p_hostapd.o
Dmitry Shmidtcf32e602014-01-28 10:57:39 -0800289OBJS += ../src/utils/bitfield.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700290CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800291NEED_GAS=y
292NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800293CONFIG_WPS=y
294CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700295ifdef CONFIG_P2P_STRICT
296CFLAGS += -DCONFIG_P2P_STRICT
297endif
298endif
299
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700300ifdef CONFIG_WIFI_DISPLAY
301CFLAGS += -DCONFIG_WIFI_DISPLAY
302OBJS += wifi_display.o
303endif
304
Dmitry Shmidt04949592012-07-19 12:16:46 -0700305ifdef CONFIG_HS20
306OBJS += hs20_supplicant.o
307CFLAGS += -DCONFIG_HS20
308CONFIG_INTERWORKING=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800309NEED_AES_OMAC1=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700310endif
311
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800312ifdef CONFIG_INTERWORKING
313OBJS += interworking.o
314CFLAGS += -DCONFIG_INTERWORKING
315NEED_GAS=y
316endif
317
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700318include ../src/drivers/drivers.mak
319ifdef CONFIG_AP
320OBJS_d += $(DRV_BOTH_OBJS)
321CFLAGS += $(DRV_BOTH_CFLAGS)
322LDFLAGS += $(DRV_BOTH_LDFLAGS)
323LIBS += $(DRV_BOTH_LIBS)
324else
325NEED_AP_MLME=
326OBJS_d += $(DRV_WPA_OBJS)
327CFLAGS += $(DRV_WPA_CFLAGS)
328LDFLAGS += $(DRV_WPA_LDFLAGS)
329LIBS += $(DRV_WPA_LIBS)
330endif
331
332ifndef CONFIG_L2_PACKET
333CONFIG_L2_PACKET=linux
334endif
335
336OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
337
338ifeq ($(CONFIG_L2_PACKET), pcap)
339ifdef CONFIG_WINPCAP
340CFLAGS += -DCONFIG_WINPCAP
341LIBS += -lwpcap -lpacket
342LIBS_w += -lwpcap
343else
344LIBS += -ldnet -lpcap
345endif
346endif
347
348ifeq ($(CONFIG_L2_PACKET), winpcap)
349LIBS += -lwpcap -lpacket
350LIBS_w += -lwpcap
351endif
352
353ifeq ($(CONFIG_L2_PACKET), freebsd)
354LIBS += -lpcap
355endif
356
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800357ifdef CONFIG_ERP
358CFLAGS += -DCONFIG_ERP
359NEED_SHA256=y
360NEED_HMAC_SHA256_KDF=y
361endif
362
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700363ifdef CONFIG_EAP_TLS
364# EAP-TLS
365ifeq ($(CONFIG_EAP_TLS), dyn)
366CFLAGS += -DEAP_TLS_DYNAMIC
367EAPDYN += ../src/eap_peer/eap_tls.so
368else
369CFLAGS += -DEAP_TLS
370OBJS += ../src/eap_peer/eap_tls.o
371OBJS_h += ../src/eap_server/eap_server_tls.o
372endif
373TLS_FUNCS=y
374CONFIG_IEEE8021X_EAPOL=y
375endif
376
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700377ifdef CONFIG_EAP_UNAUTH_TLS
378# EAP-UNAUTH-TLS
379CFLAGS += -DEAP_UNAUTH_TLS
380ifndef CONFIG_EAP_UNAUTH_TLS
381OBJS += ../src/eap_peer/eap_tls.o
382OBJS_h += ../src/eap_server/eap_server_tls.o
383TLS_FUNCS=y
384endif
385CONFIG_IEEE8021X_EAPOL=y
386endif
387
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700388ifdef CONFIG_EAP_PEAP
389# EAP-PEAP
390ifeq ($(CONFIG_EAP_PEAP), dyn)
391CFLAGS += -DEAP_PEAP_DYNAMIC
392EAPDYN += ../src/eap_peer/eap_peap.so
393else
394CFLAGS += -DEAP_PEAP
395OBJS += ../src/eap_peer/eap_peap.o
396OBJS += ../src/eap_common/eap_peap_common.o
397OBJS_h += ../src/eap_server/eap_server_peap.o
398endif
399TLS_FUNCS=y
400CONFIG_IEEE8021X_EAPOL=y
401endif
402
403ifdef CONFIG_EAP_TTLS
404# EAP-TTLS
405ifeq ($(CONFIG_EAP_TTLS), dyn)
406CFLAGS += -DEAP_TTLS_DYNAMIC
407EAPDYN += ../src/eap_peer/eap_ttls.so
408else
409CFLAGS += -DEAP_TTLS
410OBJS += ../src/eap_peer/eap_ttls.o
411OBJS_h += ../src/eap_server/eap_server_ttls.o
412endif
413MS_FUNCS=y
414TLS_FUNCS=y
415CHAP=y
416CONFIG_IEEE8021X_EAPOL=y
417endif
418
419ifdef CONFIG_EAP_MD5
420# EAP-MD5
421ifeq ($(CONFIG_EAP_MD5), dyn)
422CFLAGS += -DEAP_MD5_DYNAMIC
423EAPDYN += ../src/eap_peer/eap_md5.so
424else
425CFLAGS += -DEAP_MD5
426OBJS += ../src/eap_peer/eap_md5.o
427OBJS_h += ../src/eap_server/eap_server_md5.o
428endif
429CHAP=y
430CONFIG_IEEE8021X_EAPOL=y
431endif
432
433# backwards compatibility for old spelling
434ifdef CONFIG_MSCHAPV2
435ifndef CONFIG_EAP_MSCHAPV2
436CONFIG_EAP_MSCHAPV2=y
437endif
438endif
439
440ifdef CONFIG_EAP_MSCHAPV2
441# EAP-MSCHAPv2
442ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
443CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
444EAPDYN += ../src/eap_peer/eap_mschapv2.so
445EAPDYN += ../src/eap_peer/mschapv2.so
446else
447CFLAGS += -DEAP_MSCHAPv2
448OBJS += ../src/eap_peer/eap_mschapv2.o
449OBJS += ../src/eap_peer/mschapv2.o
450OBJS_h += ../src/eap_server/eap_server_mschapv2.o
451endif
452MS_FUNCS=y
453CONFIG_IEEE8021X_EAPOL=y
454endif
455
456ifdef CONFIG_EAP_GTC
457# EAP-GTC
458ifeq ($(CONFIG_EAP_GTC), dyn)
459CFLAGS += -DEAP_GTC_DYNAMIC
460EAPDYN += ../src/eap_peer/eap_gtc.so
461else
462CFLAGS += -DEAP_GTC
463OBJS += ../src/eap_peer/eap_gtc.o
464OBJS_h += ../src/eap_server/eap_server_gtc.o
465endif
466CONFIG_IEEE8021X_EAPOL=y
467endif
468
469ifdef CONFIG_EAP_OTP
470# EAP-OTP
471ifeq ($(CONFIG_EAP_OTP), dyn)
472CFLAGS += -DEAP_OTP_DYNAMIC
473EAPDYN += ../src/eap_peer/eap_otp.so
474else
475CFLAGS += -DEAP_OTP
476OBJS += ../src/eap_peer/eap_otp.o
477endif
478CONFIG_IEEE8021X_EAPOL=y
479endif
480
481ifdef CONFIG_EAP_SIM
482# EAP-SIM
483ifeq ($(CONFIG_EAP_SIM), dyn)
484CFLAGS += -DEAP_SIM_DYNAMIC
485EAPDYN += ../src/eap_peer/eap_sim.so
486else
487CFLAGS += -DEAP_SIM
488OBJS += ../src/eap_peer/eap_sim.o
489OBJS_h += ../src/eap_server/eap_server_sim.o
490endif
491CONFIG_IEEE8021X_EAPOL=y
492CONFIG_EAP_SIM_COMMON=y
493NEED_AES_CBC=y
494endif
495
496ifdef CONFIG_EAP_LEAP
497# EAP-LEAP
498ifeq ($(CONFIG_EAP_LEAP), dyn)
499CFLAGS += -DEAP_LEAP_DYNAMIC
500EAPDYN += ../src/eap_peer/eap_leap.so
501else
502CFLAGS += -DEAP_LEAP
503OBJS += ../src/eap_peer/eap_leap.o
504endif
505MS_FUNCS=y
506CONFIG_IEEE8021X_EAPOL=y
507endif
508
509ifdef CONFIG_EAP_PSK
510# EAP-PSK
511ifeq ($(CONFIG_EAP_PSK), dyn)
512CFLAGS += -DEAP_PSK_DYNAMIC
513EAPDYN += ../src/eap_peer/eap_psk.so
514else
515CFLAGS += -DEAP_PSK
516OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
517OBJS_h += ../src/eap_server/eap_server_psk.o
518endif
519CONFIG_IEEE8021X_EAPOL=y
520NEED_AES=y
521NEED_AES_OMAC1=y
522NEED_AES_ENCBLOCK=y
523NEED_AES_EAX=y
524endif
525
526ifdef CONFIG_EAP_AKA
527# EAP-AKA
528ifeq ($(CONFIG_EAP_AKA), dyn)
529CFLAGS += -DEAP_AKA_DYNAMIC
530EAPDYN += ../src/eap_peer/eap_aka.so
531else
532CFLAGS += -DEAP_AKA
533OBJS += ../src/eap_peer/eap_aka.o
534OBJS_h += ../src/eap_server/eap_server_aka.o
535endif
536CONFIG_IEEE8021X_EAPOL=y
537CONFIG_EAP_SIM_COMMON=y
538NEED_AES_CBC=y
539endif
540
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800541ifdef CONFIG_EAP_PROXY
542CFLAGS += -DCONFIG_EAP_PROXY
543OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700544include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800545CONFIG_IEEE8021X_EAPOL=y
546endif
547
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700548ifdef CONFIG_EAP_AKA_PRIME
549# EAP-AKA'
550ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
551CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
552else
553CFLAGS += -DEAP_AKA_PRIME
554endif
555NEED_SHA256=y
556endif
557
558ifdef CONFIG_EAP_SIM_COMMON
559OBJS += ../src/eap_common/eap_sim_common.o
560OBJS_h += ../src/eap_server/eap_sim_db.o
561NEED_AES=y
562NEED_FIPS186_2_PRF=y
563endif
564
565ifdef CONFIG_EAP_FAST
566# EAP-FAST
567ifeq ($(CONFIG_EAP_FAST), dyn)
568CFLAGS += -DEAP_FAST_DYNAMIC
569EAPDYN += ../src/eap_peer/eap_fast.so
570EAPDYN += ../src/eap_common/eap_fast_common.o
571else
572CFLAGS += -DEAP_FAST
573OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
574OBJS += ../src/eap_common/eap_fast_common.o
575OBJS_h += ../src/eap_server/eap_server_fast.o
576endif
577TLS_FUNCS=y
578CONFIG_IEEE8021X_EAPOL=y
579NEED_T_PRF=y
580endif
581
582ifdef CONFIG_EAP_PAX
583# EAP-PAX
584ifeq ($(CONFIG_EAP_PAX), dyn)
585CFLAGS += -DEAP_PAX_DYNAMIC
586EAPDYN += ../src/eap_peer/eap_pax.so
587else
588CFLAGS += -DEAP_PAX
589OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
590OBJS_h += ../src/eap_server/eap_server_pax.o
591endif
592CONFIG_IEEE8021X_EAPOL=y
593endif
594
595ifdef CONFIG_EAP_SAKE
596# EAP-SAKE
597ifeq ($(CONFIG_EAP_SAKE), dyn)
598CFLAGS += -DEAP_SAKE_DYNAMIC
599EAPDYN += ../src/eap_peer/eap_sake.so
600else
601CFLAGS += -DEAP_SAKE
602OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
603OBJS_h += ../src/eap_server/eap_server_sake.o
604endif
605CONFIG_IEEE8021X_EAPOL=y
606endif
607
608ifdef CONFIG_EAP_GPSK
609# EAP-GPSK
610ifeq ($(CONFIG_EAP_GPSK), dyn)
611CFLAGS += -DEAP_GPSK_DYNAMIC
612EAPDYN += ../src/eap_peer/eap_gpsk.so
613else
614CFLAGS += -DEAP_GPSK
615OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
616OBJS_h += ../src/eap_server/eap_server_gpsk.o
617endif
618CONFIG_IEEE8021X_EAPOL=y
619ifdef CONFIG_EAP_GPSK_SHA256
620CFLAGS += -DEAP_GPSK_SHA256
621endif
622NEED_SHA256=y
623NEED_AES_OMAC1=y
624endif
625
626ifdef CONFIG_EAP_PWD
627CFLAGS += -DEAP_PWD
628OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800629OBJS_h += ../src/eap_server/eap_server_pwd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700630CONFIG_IEEE8021X_EAPOL=y
631NEED_SHA256=y
632endif
633
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700634ifdef CONFIG_EAP_EKE
635# EAP-EKE
636ifeq ($(CONFIG_EAP_EKE), dyn)
637CFLAGS += -DEAP_EKE_DYNAMIC
638EAPDYN += ../src/eap_peer/eap_eke.so
639else
640CFLAGS += -DEAP_EKE
641OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
642OBJS_h += ../src/eap_server/eap_server_eke.o
643endif
644CONFIG_IEEE8021X_EAPOL=y
645NEED_DH_GROUPS=y
646NEED_DH_GROUPS_ALL=y
647NEED_SHA256=y
648endif
649
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700650ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700651# EAP-WSC
652CFLAGS += -DCONFIG_WPS -DEAP_WSC
653OBJS += wps_supplicant.o
654OBJS += ../src/utils/uuid.o
655OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
656OBJS += ../src/wps/wps.o
657OBJS += ../src/wps/wps_common.o
658OBJS += ../src/wps/wps_attr_parse.o
659OBJS += ../src/wps/wps_attr_build.o
660OBJS += ../src/wps/wps_attr_process.o
661OBJS += ../src/wps/wps_dev_attr.o
662OBJS += ../src/wps/wps_enrollee.o
663OBJS += ../src/wps/wps_registrar.o
664OBJS_h += ../src/eap_server/eap_server_wsc.o
665CONFIG_IEEE8021X_EAPOL=y
666NEED_DH_GROUPS=y
667NEED_SHA256=y
668NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700669NEED_AES_CBC=y
670NEED_MODEXP=y
671
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700672ifdef CONFIG_WPS_NFC
673CFLAGS += -DCONFIG_WPS_NFC
674OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700675NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700676endif
677
678ifdef NEED_WPS_OOB
679CFLAGS += -DCONFIG_WPS_OOB
680endif
681
682ifdef CONFIG_WPS_ER
683CONFIG_WPS_UPNP=y
684CFLAGS += -DCONFIG_WPS_ER
685OBJS += ../src/wps/wps_er.o
686OBJS += ../src/wps/wps_er_ssdp.o
687endif
688
689ifdef CONFIG_WPS_UPNP
690CFLAGS += -DCONFIG_WPS_UPNP
691OBJS += ../src/wps/wps_upnp.o
692OBJS += ../src/wps/wps_upnp_ssdp.o
693OBJS += ../src/wps/wps_upnp_web.o
694OBJS += ../src/wps/wps_upnp_event.o
695OBJS += ../src/wps/wps_upnp_ap.o
696OBJS += ../src/wps/upnp_xml.o
697OBJS += ../src/wps/httpread.o
698OBJS += ../src/wps/http_client.o
699OBJS += ../src/wps/http_server.o
700endif
701
702ifdef CONFIG_WPS_STRICT
703CFLAGS += -DCONFIG_WPS_STRICT
704OBJS += ../src/wps/wps_validate.o
705endif
706
707ifdef CONFIG_WPS_TESTING
708CFLAGS += -DCONFIG_WPS_TESTING
709endif
710
711ifdef CONFIG_WPS_REG_DISABLE_OPEN
712CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
713endif
714
715endif
716
717ifdef CONFIG_EAP_IKEV2
718# EAP-IKEv2
719ifeq ($(CONFIG_EAP_IKEV2), dyn)
720CFLAGS += -DEAP_IKEV2_DYNAMIC
721EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
722EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
723else
724CFLAGS += -DEAP_IKEV2
725OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
726OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
727OBJS_h += ../src/eap_server/eap_server_ikev2.o
728OBJS_h += ../src/eap_server/ikev2.o
729endif
730CONFIG_IEEE8021X_EAPOL=y
731NEED_DH_GROUPS=y
732NEED_DH_GROUPS_ALL=y
733NEED_MODEXP=y
734NEED_CIPHER=y
735endif
736
737ifdef CONFIG_EAP_VENDOR_TEST
738ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
739CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
740EAPDYN += ../src/eap_peer/eap_vendor_test.so
741else
742CFLAGS += -DEAP_VENDOR_TEST
743OBJS += ../src/eap_peer/eap_vendor_test.o
744OBJS_h += ../src/eap_server/eap_server_vendor_test.o
745endif
746CONFIG_IEEE8021X_EAPOL=y
747endif
748
749ifdef CONFIG_EAP_TNC
750# EAP-TNC
751CFLAGS += -DEAP_TNC
752OBJS += ../src/eap_peer/eap_tnc.o
753OBJS += ../src/eap_peer/tncc.o
754OBJS_h += ../src/eap_server/eap_server_tnc.o
755OBJS_h += ../src/eap_server/tncs.o
756NEED_BASE64=y
757ifndef CONFIG_NATIVE_WINDOWS
758ifndef CONFIG_DRIVER_BSD
759LIBS += -ldl
760endif
761endif
762endif
763
764ifdef CONFIG_IEEE8021X_EAPOL
765# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
766CFLAGS += -DIEEE8021X_EAPOL
767OBJS += ../src/eapol_supp/eapol_supp_sm.o
768OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
769NEED_EAP_COMMON=y
770ifdef CONFIG_DYNAMIC_EAP_METHODS
771CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
772LIBS += -ldl -rdynamic
773endif
774endif
775
Dmitry Shmidt5a1480c2014-05-12 09:46:02 -0700776ifdef CONFIG_MACSEC
777CFLAGS += -DCONFIG_MACSEC
778NEED_AES_ENCBLOCK=y
779NEED_AES_UNWRAP=y
780NEED_AES_WRAP=y
781NEED_AES_OMAC1=y
782OBJS += wpas_kay.o
783OBJS += ../src/pae/ieee802_1x_cp.o
784OBJS += ../src/pae/ieee802_1x_kay.o
785OBJS += ../src/pae/ieee802_1x_key.o
786OBJS += ../src/pae/ieee802_1x_secy_ops.o
787endif
788
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700789ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700790NEED_EAP_COMMON=y
791NEED_RSN_AUTHENTICATOR=y
792CFLAGS += -DCONFIG_AP
793OBJS += ap.o
794CFLAGS += -DCONFIG_NO_RADIUS
795CFLAGS += -DCONFIG_NO_ACCOUNTING
796CFLAGS += -DCONFIG_NO_VLAN
797OBJS += ../src/ap/hostapd.o
798OBJS += ../src/ap/wpa_auth_glue.o
799OBJS += ../src/ap/utils.o
800OBJS += ../src/ap/authsrv.o
801OBJS += ../src/ap/ap_config.o
802OBJS += ../src/utils/ip_addr.o
803OBJS += ../src/ap/sta_info.o
804OBJS += ../src/ap/tkip_countermeasures.o
805OBJS += ../src/ap/ap_mlme.o
806OBJS += ../src/ap/ieee802_1x.o
807OBJS += ../src/eapol_auth/eapol_auth_sm.o
808OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800809OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700810OBJS += ../src/ap/drv_callbacks.o
811OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800812OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800813OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800814OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700815ifdef CONFIG_IEEE80211N
816OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700817ifdef CONFIG_IEEE80211AC
818OBJS += ../src/ap/ieee802_11_vht.o
819endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700820endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800821ifdef CONFIG_WNM
822OBJS += ../src/ap/wnm_ap.o
823endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700824ifdef CONFIG_CTRL_IFACE
825OBJS += ../src/ap/ctrl_iface_ap.o
826endif
827
828CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
829OBJS += ../src/eap_server/eap_server.o
830OBJS += ../src/eap_server/eap_server_identity.o
831OBJS += ../src/eap_server/eap_server_methods.o
832
833ifdef CONFIG_IEEE80211N
834CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700835ifdef CONFIG_IEEE80211AC
836CFLAGS += -DCONFIG_IEEE80211AC
837endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700838endif
839
840ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700841OBJS += ../src/ap/wmm.o
842OBJS += ../src/ap/ap_list.o
843OBJS += ../src/ap/ieee802_11.o
844OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700845OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700846CFLAGS += -DNEED_AP_MLME
847endif
848ifdef CONFIG_WPS
849CFLAGS += -DEAP_SERVER_WSC
850OBJS += ../src/ap/wps_hostapd.o
851OBJS += ../src/eap_server/eap_server_wsc.o
852endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700853ifdef CONFIG_INTERWORKING
854OBJS += ../src/ap/gas_serv.o
855endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700856ifdef CONFIG_HS20
857OBJS += ../src/ap/hs20.o
858endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700859endif
860
861ifdef NEED_RSN_AUTHENTICATOR
862CFLAGS += -DCONFIG_NO_RADIUS
863NEED_AES_WRAP=y
864OBJS += ../src/ap/wpa_auth.o
865OBJS += ../src/ap/wpa_auth_ie.o
866OBJS += ../src/ap/pmksa_cache_auth.o
867ifdef CONFIG_IEEE80211R
868OBJS += ../src/ap/wpa_auth_ft.o
869endif
870ifdef CONFIG_PEERKEY
871OBJS += ../src/ap/peerkey_auth.o
872endif
873endif
874
875ifdef CONFIG_EAP_SERVER
876CFLAGS += -DEAP_SERVER
877OBJS_h += ../src/eap_server/eap_server.o
878OBJS_h += ../src/eap_server/eap_server_identity.o
879OBJS_h += ../src/eap_server/eap_server_methods.o
880endif
881
882ifdef CONFIG_RADIUS_CLIENT
883OBJS_h += ../src/utils/ip_addr.o
884OBJS_h += ../src/radius/radius.o
885OBJS_h += ../src/radius/radius_client.o
886endif
887
888ifdef CONFIG_AUTHENTICATOR
889OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
890OBJS_h += ../src/ap/ieee802_1x.o
891endif
892
893ifdef CONFIG_WPA_AUTHENTICATOR
894OBJS_h += ../src/ap/wpa_auth.o
895OBJS_h += ../src/ap/wpa_auth_ie.o
896OBJS_h += ../src/ap/pmksa_cache_auth.o
897ifdef CONFIG_IEEE80211R
898OBJS_h += ../src/ap/wpa_auth_ft.o
899endif
900ifdef CONFIG_PEERKEY
901OBJS_h += ../src/ap/peerkey_auth.o
902endif
903endif
904
905ifdef CONFIG_PCSC
906# PC/SC interface for smartcards (USIM, GSM SIM)
907CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
908OBJS += ../src/utils/pcsc_funcs.o
909# -lpthread may not be needed depending on how pcsc-lite was configured
910ifdef CONFIG_NATIVE_WINDOWS
911#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
912#dynamic symbol loading that is now used in pcsc_funcs.c
913#LIBS += -lwinscard
914else
915LIBS += -lpcsclite -lpthread
916endif
917endif
918
919ifdef CONFIG_SIM_SIMULATOR
920CFLAGS += -DCONFIG_SIM_SIMULATOR
921NEED_MILENAGE=y
922endif
923
924ifdef CONFIG_USIM_SIMULATOR
925CFLAGS += -DCONFIG_USIM_SIMULATOR
926NEED_MILENAGE=y
927endif
928
929ifdef NEED_MILENAGE
930OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800931NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700932endif
933
934ifdef CONFIG_PKCS12
935CFLAGS += -DPKCS12_FUNCS
936endif
937
938ifdef CONFIG_SMARTCARD
939CFLAGS += -DCONFIG_SMARTCARD
940endif
941
942ifdef MS_FUNCS
943OBJS += ../src/crypto/ms_funcs.o
944NEED_DES=y
945NEED_MD4=y
946endif
947
948ifdef CHAP
949OBJS += ../src/eap_common/chap.o
950endif
951
952ifdef TLS_FUNCS
953NEED_DES=y
954# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
955OBJS += ../src/eap_peer/eap_tls_common.o
956OBJS_h += ../src/eap_server/eap_server_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700957ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700958NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800959NEED_SHA1=y
960NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700961endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700962endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700963
964ifndef CONFIG_TLS
965CONFIG_TLS=openssl
966endif
967
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800968ifdef CONFIG_TLSV11
969CFLAGS += -DCONFIG_TLSV11
970endif
971
972ifdef CONFIG_TLSV12
973CFLAGS += -DCONFIG_TLSV12
974NEED_SHA256=y
975endif
976
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700977ifeq ($(CONFIG_TLS), openssl)
978ifdef TLS_FUNCS
979CFLAGS += -DEAP_TLS_OPENSSL
980OBJS += ../src/crypto/tls_openssl.o
981LIBS += -lssl
982endif
983OBJS += ../src/crypto/crypto_openssl.o
984OBJS_p += ../src/crypto/crypto_openssl.o
985ifdef NEED_FIPS186_2_PRF
986OBJS += ../src/crypto/fips_prf_openssl.o
987endif
988LIBS += -lcrypto
989LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700990ifdef CONFIG_TLS_ADD_DL
991LIBS += -ldl
992LIBS_p += -ldl
993endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700994endif
995
996ifeq ($(CONFIG_TLS), gnutls)
997ifdef TLS_FUNCS
998OBJS += ../src/crypto/tls_gnutls.o
999LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001000endif
1001OBJS += ../src/crypto/crypto_gnutls.o
1002OBJS_p += ../src/crypto/crypto_gnutls.o
1003ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001004OBJS += ../src/crypto/fips_prf_internal.o
1005SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001006endif
1007LIBS += -lgcrypt
1008LIBS_p += -lgcrypt
1009CONFIG_INTERNAL_SHA256=y
1010CONFIG_INTERNAL_RC4=y
1011CONFIG_INTERNAL_DH_GROUP5=y
1012endif
1013
1014ifeq ($(CONFIG_TLS), schannel)
1015ifdef TLS_FUNCS
1016OBJS += ../src/crypto/tls_schannel.o
1017endif
1018OBJS += ../src/crypto/crypto_cryptoapi.o
1019OBJS_p += ../src/crypto/crypto_cryptoapi.o
1020ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001021OBJS += ../src/crypto/fips_prf_internal.o
1022SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001023endif
1024CONFIG_INTERNAL_SHA256=y
1025CONFIG_INTERNAL_RC4=y
1026CONFIG_INTERNAL_DH_GROUP5=y
1027endif
1028
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001029ifeq ($(CONFIG_TLS), internal)
1030ifndef CONFIG_CRYPTO
1031CONFIG_CRYPTO=internal
1032endif
1033ifdef TLS_FUNCS
1034OBJS += ../src/crypto/crypto_internal-rsa.o
1035OBJS += ../src/crypto/tls_internal.o
1036OBJS += ../src/tls/tlsv1_common.o
1037OBJS += ../src/tls/tlsv1_record.o
1038OBJS += ../src/tls/tlsv1_cred.o
1039OBJS += ../src/tls/tlsv1_client.o
1040OBJS += ../src/tls/tlsv1_client_write.o
1041OBJS += ../src/tls/tlsv1_client_read.o
1042OBJS += ../src/tls/asn1.o
1043OBJS += ../src/tls/rsa.o
1044OBJS += ../src/tls/x509v3.o
1045OBJS += ../src/tls/pkcs1.o
1046OBJS += ../src/tls/pkcs5.o
1047OBJS += ../src/tls/pkcs8.o
1048NEED_SHA256=y
1049NEED_BASE64=y
1050NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001051ifdef CONFIG_TLSV12
1052NEED_TLS_PRF_SHA256=y
1053endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001054NEED_MODEXP=y
1055NEED_CIPHER=y
1056CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1057endif
1058ifdef NEED_CIPHER
1059NEED_DES=y
1060OBJS += ../src/crypto/crypto_internal-cipher.o
1061endif
1062ifdef NEED_MODEXP
1063OBJS += ../src/crypto/crypto_internal-modexp.o
1064OBJS += ../src/tls/bignum.o
1065endif
1066ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1067OBJS += ../src/crypto/crypto_libtomcrypt.o
1068OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1069LIBS += -ltomcrypt -ltfm
1070LIBS_p += -ltomcrypt -ltfm
1071CONFIG_INTERNAL_SHA256=y
1072CONFIG_INTERNAL_RC4=y
1073CONFIG_INTERNAL_DH_GROUP5=y
1074endif
1075ifeq ($(CONFIG_CRYPTO), internal)
1076OBJS += ../src/crypto/crypto_internal.o
1077OBJS_p += ../src/crypto/crypto_internal.o
1078NEED_AES_ENC=y
1079CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1080ifdef CONFIG_INTERNAL_LIBTOMMATH
1081CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1082ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1083CFLAGS += -DLTM_FAST
1084endif
1085else
1086LIBS += -ltommath
1087LIBS_p += -ltommath
1088endif
1089CONFIG_INTERNAL_AES=y
1090CONFIG_INTERNAL_DES=y
1091CONFIG_INTERNAL_SHA1=y
1092CONFIG_INTERNAL_MD4=y
1093CONFIG_INTERNAL_MD5=y
1094CONFIG_INTERNAL_SHA256=y
1095CONFIG_INTERNAL_RC4=y
1096CONFIG_INTERNAL_DH_GROUP5=y
1097endif
1098ifeq ($(CONFIG_CRYPTO), cryptoapi)
1099OBJS += ../src/crypto/crypto_cryptoapi.o
1100OBJS_p += ../src/crypto/crypto_cryptoapi.o
1101CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1102CONFIG_INTERNAL_SHA256=y
1103CONFIG_INTERNAL_RC4=y
1104endif
1105endif
1106
1107ifeq ($(CONFIG_TLS), none)
1108ifdef TLS_FUNCS
1109OBJS += ../src/crypto/tls_none.o
1110CFLAGS += -DEAP_TLS_NONE
1111CONFIG_INTERNAL_AES=y
1112CONFIG_INTERNAL_SHA1=y
1113CONFIG_INTERNAL_MD5=y
1114endif
1115OBJS += ../src/crypto/crypto_none.o
1116OBJS_p += ../src/crypto/crypto_none.o
1117CONFIG_INTERNAL_SHA256=y
1118CONFIG_INTERNAL_RC4=y
1119endif
1120
1121ifdef TLS_FUNCS
1122ifdef CONFIG_SMARTCARD
1123ifndef CONFIG_NATIVE_WINDOWS
1124ifneq ($(CONFIG_L2_PACKET), freebsd)
1125LIBS += -ldl
1126endif
1127endif
1128endif
1129endif
1130
1131ifndef TLS_FUNCS
1132OBJS += ../src/crypto/tls_none.o
1133ifeq ($(CONFIG_TLS), internal)
1134CONFIG_INTERNAL_AES=y
1135CONFIG_INTERNAL_SHA1=y
1136CONFIG_INTERNAL_MD5=y
1137CONFIG_INTERNAL_RC4=y
1138endif
1139endif
1140
1141AESOBJS = # none so far (see below)
1142ifdef CONFIG_INTERNAL_AES
1143AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1144endif
1145
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001146ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001147AESOBJS += ../src/crypto/aes-unwrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001148endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001149ifdef NEED_AES_EAX
1150AESOBJS += ../src/crypto/aes-eax.o
1151NEED_AES_CTR=y
1152endif
1153ifdef NEED_AES_CTR
1154AESOBJS += ../src/crypto/aes-ctr.o
1155endif
1156ifdef NEED_AES_ENCBLOCK
1157AESOBJS += ../src/crypto/aes-encblock.o
1158endif
1159ifdef NEED_AES_OMAC1
1160NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001161ifdef CONFIG_OPENSSL_CMAC
1162CFLAGS += -DCONFIG_OPENSSL_CMAC
1163else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001164AESOBJS += ../src/crypto/aes-omac1.o
1165endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001166endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001167ifdef NEED_AES_SIV
1168AESOBJS += ../src/crypto/aes-siv.o
1169endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001170ifdef NEED_AES_WRAP
1171NEED_AES_ENC=y
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001172ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001173AESOBJS += ../src/crypto/aes-wrap.o
1174endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001175endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001176ifdef NEED_AES_CBC
1177NEED_AES_ENC=y
1178AESOBJS += ../src/crypto/aes-cbc.o
1179endif
1180ifdef NEED_AES_ENC
1181ifdef CONFIG_INTERNAL_AES
1182AESOBJS += ../src/crypto/aes-internal-enc.o
1183endif
1184endif
1185ifdef NEED_AES
1186OBJS += $(AESOBJS)
1187endif
1188
1189ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001190ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001191SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001192endif
1193SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001194ifdef CONFIG_INTERNAL_SHA1
1195SHA1OBJS += ../src/crypto/sha1-internal.o
1196ifdef NEED_FIPS186_2_PRF
1197SHA1OBJS += ../src/crypto/fips_prf_internal.o
1198endif
1199endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001200ifdef CONFIG_NO_WPA_PASSPHRASE
1201CFLAGS += -DCONFIG_NO_PBKDF2
1202else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001203ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001204SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1205endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001206endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001207ifdef NEED_T_PRF
1208SHA1OBJS += ../src/crypto/sha1-tprf.o
1209endif
1210ifdef NEED_TLS_PRF
1211SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1212endif
1213endif
1214
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001215ifndef CONFIG_FIPS
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001216ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001217MD5OBJS += ../src/crypto/md5.o
1218endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001219endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001220ifdef NEED_MD5
1221ifdef CONFIG_INTERNAL_MD5
1222MD5OBJS += ../src/crypto/md5-internal.o
1223endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001224OBJS += $(MD5OBJS)
1225OBJS_p += $(MD5OBJS)
1226endif
1227
1228ifdef NEED_MD4
1229ifdef CONFIG_INTERNAL_MD4
1230OBJS += ../src/crypto/md4-internal.o
1231endif
1232endif
1233
1234DESOBJS = # none needed when not internal
1235ifdef NEED_DES
1236ifdef CONFIG_INTERNAL_DES
1237DESOBJS += ../src/crypto/des-internal.o
1238endif
1239endif
1240
1241ifdef NEED_RC4
1242ifdef CONFIG_INTERNAL_RC4
1243OBJS += ../src/crypto/rc4.o
1244endif
1245endif
1246
1247SHA256OBJS = # none by default
1248ifdef NEED_SHA256
1249CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001250ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001251SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001252endif
1253SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001254ifdef CONFIG_INTERNAL_SHA256
1255SHA256OBJS += ../src/crypto/sha256-internal.o
1256endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001257ifdef NEED_TLS_PRF_SHA256
1258SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1259endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001260ifdef NEED_HMAC_SHA256_KDF
1261OBJS += ../src/crypto/sha256-kdf.o
1262endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001263OBJS += $(SHA256OBJS)
1264endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001265ifdef NEED_SHA384
1266CFLAGS += -DCONFIG_SHA384
1267endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001268
1269ifdef NEED_DH_GROUPS
1270OBJS += ../src/crypto/dh_groups.o
1271endif
1272ifdef NEED_DH_GROUPS_ALL
1273CFLAGS += -DALL_DH_GROUPS
1274endif
1275ifdef CONFIG_INTERNAL_DH_GROUP5
1276ifdef NEED_DH_GROUPS
1277OBJS += ../src/crypto/dh_group5.o
1278endif
1279endif
1280
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001281ifdef NEED_ECC
1282CFLAGS += -DCONFIG_ECC
1283endif
1284
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001285ifdef CONFIG_NO_RANDOM_POOL
1286CFLAGS += -DCONFIG_NO_RANDOM_POOL
1287else
1288OBJS += ../src/crypto/random.o
1289endif
1290
1291ifdef CONFIG_CTRL_IFACE
1292ifeq ($(CONFIG_CTRL_IFACE), y)
1293ifdef CONFIG_NATIVE_WINDOWS
1294CONFIG_CTRL_IFACE=named_pipe
1295else
1296CONFIG_CTRL_IFACE=unix
1297endif
1298endif
1299CFLAGS += -DCONFIG_CTRL_IFACE
1300ifeq ($(CONFIG_CTRL_IFACE), unix)
1301CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1302endif
1303ifeq ($(CONFIG_CTRL_IFACE), udp)
1304CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1305endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001306ifeq ($(CONFIG_CTRL_IFACE), udp6)
1307CONFIG_CTRL_IFACE=udp
1308CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1309CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1310endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001311ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1312CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1313endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001314ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1315CONFIG_CTRL_IFACE=udp
1316CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1317CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1318endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001319ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1320CONFIG_CTRL_IFACE=udp
1321CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1322CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1323CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1324endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001325OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1326endif
1327
1328ifdef CONFIG_CTRL_IFACE_DBUS
1329DBUS=y
1330DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1331DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1332ifdef CONFIG_WPS
1333DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1334endif
1335DBUS_OBJS += dbus/dbus_dict_helpers.o
1336ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001337DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001338endif
1339ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001340DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001341endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001342DBUS_CFLAGS += $(DBUS_INCLUDE)
1343endif
1344
1345ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1346DBUS=y
1347DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1348DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1349DBUS_OBJS += dbus/dbus_new_helpers.o
1350DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1351ifdef CONFIG_WPS
1352DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1353endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001354ifdef CONFIG_P2P
1355DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1356endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001357ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001358DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001359endif
1360ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001361DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001362endif
1363ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1364DBUS_OBJS += dbus/dbus_new_introspect.o
1365DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1366endif
1367DBUS_CFLAGS += $(DBUS_INCLUDE)
1368endif
1369
1370ifdef DBUS
1371DBUS_CFLAGS += -DCONFIG_DBUS
1372DBUS_OBJS += dbus/dbus_common.o
1373endif
1374
1375OBJS += $(DBUS_OBJS)
1376CFLAGS += $(DBUS_CFLAGS)
1377LIBS += $(DBUS_LIBS)
1378
1379ifdef CONFIG_READLINE
1380OBJS_c += ../src/utils/edit_readline.o
1381LIBS_c += -lncurses -lreadline
1382else
1383ifdef CONFIG_WPA_CLI_EDIT
1384OBJS_c += ../src/utils/edit.o
1385else
1386OBJS_c += ../src/utils/edit_simple.o
1387endif
1388endif
1389
1390ifdef CONFIG_NATIVE_WINDOWS
1391CFLAGS += -DCONFIG_NATIVE_WINDOWS
1392LIBS += -lws2_32 -lgdi32 -lcrypt32
1393LIBS_c += -lws2_32
1394LIBS_p += -lws2_32 -lgdi32
1395ifeq ($(CONFIG_CRYPTO), cryptoapi)
1396LIBS_p += -lcrypt32
1397endif
1398endif
1399
1400ifdef CONFIG_NO_STDOUT_DEBUG
1401CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1402ifndef CONFIG_CTRL_IFACE
1403CFLAGS += -DCONFIG_NO_WPA_MSG
1404endif
1405endif
1406
1407ifdef CONFIG_IPV6
1408# for eapol_test only
1409CFLAGS += -DCONFIG_IPV6
1410endif
1411
1412ifdef NEED_BASE64
1413OBJS += ../src/utils/base64.o
1414endif
1415
1416ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001417OBJS += sme.o
1418CFLAGS += -DCONFIG_SME
1419endif
1420
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001421OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001422OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001423
1424ifdef NEED_EAP_COMMON
1425OBJS += ../src/eap_common/eap_common.o
1426endif
1427
1428ifndef CONFIG_MAIN
1429CONFIG_MAIN=main
1430endif
1431
1432ifdef CONFIG_DEBUG_SYSLOG
1433CFLAGS += -DCONFIG_DEBUG_SYSLOG
1434ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1435CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1436endif
1437endif
1438
Dmitry Shmidt04949592012-07-19 12:16:46 -07001439ifdef CONFIG_DEBUG_LINUX_TRACING
1440CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1441endif
1442
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001443ifdef CONFIG_DEBUG_FILE
1444CFLAGS += -DCONFIG_DEBUG_FILE
1445endif
1446
1447ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1448CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1449endif
1450
1451ifdef CONFIG_FIPS
1452CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001453ifneq ($(CONFIG_TLS), openssl)
1454$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1455endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001456endif
1457
1458OBJS += $(SHA1OBJS) $(DESOBJS)
1459
1460OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001461OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001462
1463ifdef CONFIG_BGSCAN_SIMPLE
1464CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1465OBJS += bgscan_simple.o
1466NEED_BGSCAN=y
1467endif
1468
1469ifdef CONFIG_BGSCAN_LEARN
1470CFLAGS += -DCONFIG_BGSCAN_LEARN
1471OBJS += bgscan_learn.o
1472NEED_BGSCAN=y
1473endif
1474
1475ifdef NEED_BGSCAN
1476CFLAGS += -DCONFIG_BGSCAN
1477OBJS += bgscan.o
1478endif
1479
Dmitry Shmidt04949592012-07-19 12:16:46 -07001480ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1481CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1482OBJS += autoscan_exponential.o
1483NEED_AUTOSCAN=y
1484endif
1485
1486ifdef CONFIG_AUTOSCAN_PERIODIC
1487CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1488OBJS += autoscan_periodic.o
1489NEED_AUTOSCAN=y
1490endif
1491
1492ifdef NEED_AUTOSCAN
1493CFLAGS += -DCONFIG_AUTOSCAN
1494OBJS += autoscan.o
1495endif
1496
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001497ifdef CONFIG_EXT_PASSWORD_TEST
1498OBJS += ../src/utils/ext_password_test.o
1499CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1500NEED_EXT_PASSWORD=y
1501endif
1502
1503ifdef NEED_EXT_PASSWORD
1504OBJS += ../src/utils/ext_password.o
1505CFLAGS += -DCONFIG_EXT_PASSWORD
1506endif
1507
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001508ifdef NEED_GAS
1509OBJS += ../src/common/gas.o
1510OBJS += gas_query.o
1511CFLAGS += -DCONFIG_GAS
1512NEED_OFFCHANNEL=y
1513endif
1514
1515ifdef NEED_OFFCHANNEL
1516OBJS += offchannel.o
1517CFLAGS += -DCONFIG_OFFCHANNEL
1518endif
1519
Dmitry Shmidt71757432014-06-02 13:50:35 -07001520ifdef CONFIG_MODULE_TESTS
1521CFLAGS += -DCONFIG_MODULE_TESTS
1522OBJS += wpas_module_tests.o
1523OBJS += ../src/utils/utils_module_tests.o
1524OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001525OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001526ifdef CONFIG_WPS
1527OBJS += ../src/wps/wps_module_tests.o
1528endif
Dmitry Shmidt43cb5782014-06-16 16:23:22 -07001529ifndef CONFIG_P2P
1530OBJS += ../src/utils/bitfield.o
1531endif
Dmitry Shmidt71757432014-06-02 13:50:35 -07001532endif
1533
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001534OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001535OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001536
1537OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001538OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1539ifdef CONFIG_AUTHENTICATOR
1540OBJS_wpa += tests/link_test.o
1541endif
1542OBJS_wpa += $(OBJS_l2)
1543OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1544OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1545OBJS_t += ../src/radius/radius_client.o
1546OBJS_t += ../src/radius/radius.o
1547ifndef CONFIG_AP
1548OBJS_t += ../src/utils/ip_addr.o
1549endif
1550OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001551
1552OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1553OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1554
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001555OBJS += $(CONFIG_MAIN).o
1556
1557ifdef CONFIG_PRIVSEP
1558OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1559OBJS_priv += $(OBJS_l2)
1560OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1561OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1562OBJS_priv += ../src/utils/common.o
1563OBJS_priv += ../src/utils/wpa_debug.o
1564OBJS_priv += ../src/utils/wpabuf.o
1565OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001566ifdef CONFIG_DRIVER_NL80211
1567OBJS_priv += ../src/common/ieee802_11_common.o
1568endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001569OBJS += ../src/l2_packet/l2_packet_privsep.o
1570OBJS += ../src/drivers/driver_privsep.o
1571EXTRA_progs += wpa_priv
1572else
1573OBJS += $(OBJS_d) ../src/drivers/drivers.o
1574OBJS += $(OBJS_l2)
1575endif
1576
1577ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1578CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1579OBJS += ../src/drivers/ndis_events.o
1580EXTRALIBS += -loleaut32 -lole32 -luuid
1581ifdef PLATFORMSDKLIB
1582EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1583else
1584EXTRALIBS += WbemUuid.Lib
1585endif
1586endif
1587
1588ifndef LDO
1589LDO=$(CC)
1590endif
1591
1592Q=@
1593E=echo
1594ifeq ($(V), 1)
1595Q=
1596E=true
1597endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001598ifeq ($(QUIET), 1)
1599Q=@
1600E=true
1601endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001602
1603dynamic_eap_methods: $(EAPDYN)
1604
1605../src/drivers/build.wpa_supplicant:
1606 @if [ -f ../src/drivers/build.hostapd ]; then \
1607 $(MAKE) -C ../src/drivers clean; \
1608 fi
1609 @touch ../src/drivers/build.wpa_supplicant
1610
1611BCHECK=../src/drivers/build.wpa_supplicant
1612
1613wpa_priv: $(BCHECK) $(OBJS_priv)
1614 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1615 @$(E) " LD " $@
1616
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001617$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1618
1619wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001620 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1621 @$(E) " LD " $@
1622
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001623eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001624 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1625 @$(E) " LD " $@
1626
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001627preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001628 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1629 @$(E) " LD " $@
1630
1631wpa_passphrase: $(OBJS_p)
1632 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1633 @$(E) " LD " $@
1634
1635wpa_cli: $(OBJS_c)
1636 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1637 @$(E) " LD " $@
1638
1639link_test: $(OBJS) $(OBJS_h) tests/link_test.o
1640 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1641 @$(E) " LD " $@
1642
1643test_wpa: $(OBJS_wpa) $(OBJS_h)
1644 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1645 @$(E) " LD " $@
1646
Dmitry Shmidt04949592012-07-19 12:16:46 -07001647nfc_pw_token: $(OBJS_nfc)
1648 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1649 @$(E) " LD " $@
1650
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001651win_if_list: win_if_list.c
1652 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1653 @$(E) " LD " $@
1654
1655eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1656 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1657 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1658
1659eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1660 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1661 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1662
1663eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1664 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1665 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1666
1667eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1668 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1669 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1670
1671eap_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
1672 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1673 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1674
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001675eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1676 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1677 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1678
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001679%.so: %.c
1680 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1681 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1682
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001683ifdef CONFIG_CODE_COVERAGE
1684%.o: %.c
1685 @$(E) " CC " $<
1686 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1687else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001688%.o: %.c
1689 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1690 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001691endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001692
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001693%.service: %.service.in
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001694 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1695 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001696
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001697%@.service: %.service.arg.in
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001698 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1699 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001700
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001701wpa_supplicant.exe: wpa_supplicant
1702 mv -f $< $@
1703wpa_cli.exe: wpa_cli
1704 mv -f $< $@
1705wpa_passphrase.exe: wpa_passphrase
1706 mv -f $< $@
1707win_if_list.exe: win_if_list
1708 mv -f $< $@
1709eapol_test.exe: eapol_test
1710 mv -f $< $@
1711
1712WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1713
1714windows-bin: $(WINALL)
1715 $(STRIP) $(WINALL)
1716
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001717wpa_gui:
1718 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001719
1720wpa_gui-qt4/Makefile:
1721 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1722
1723wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1724 lrelease wpa_gui-qt4/wpa_gui.pro
1725
1726wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1727 $(MAKE) -C wpa_gui-qt4
1728
1729TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
1730 ../src/utils/common.o ../src/utils/os_unix.o \
1731 ../src/utils/wpa_debug.o $(AESOBJS) \
1732 tests/test_eap_sim_common.o
1733test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1734 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
1735 ./test-eap_sim_common
1736 rm test-eap_sim_common
1737
1738tests: test-eap_sim_common
1739
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001740FIPSDIR=/usr/local/ssl/fips-2.0
1741FIPSLD=$(FIPSDIR)/bin/fipsld
1742fips:
1743 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1744
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001745lcov-html: wpa_supplicant.gcda
1746 lcov -c -d .. > lcov.info
1747 genhtml lcov.info --output-directory lcov-html
1748
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001749clean:
1750 $(MAKE) -C ../src clean
1751 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001752 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1753 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001754 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07001755 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001756 rm -f lcov.info
1757 rm -rf lcov-html
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001758
1759-include $(OBJS:%.o=%.d)