blob: 9e1ffc890330d23959f8627f9505c9f3b953a9ba [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 Shmidtfb79edc2014-01-10 10:45:54 -080013CFLAGS += -I$(abspath ../src)
14CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070015
Jouni Malinen75ecf522011-06-27 15:19:46 -070016-include .config
17
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080018ifdef CONFIG_TESTING_OPTIONS
19CFLAGS += -DCONFIG_TESTING_OPTIONS
20CONFIG_WPS_TESTING=y
21CONFIG_TDLS_TESTING=y
22endif
23
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080024BINALL=wpa_supplicant wpa_cli
Jouni Malinen75ecf522011-06-27 15:19:46 -070025
26ifndef CONFIG_NO_WPA_PASSPHRASE
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080027BINALL += wpa_passphrase
Jouni Malinen75ecf522011-06-27 15:19:46 -070028endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070029
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080030ALL = $(BINALL)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080031ALL += systemd/wpa_supplicant.service
32ALL += systemd/wpa_supplicant@.service
33ALL += systemd/wpa_supplicant-nl80211@.service
34ALL += systemd/wpa_supplicant-wired@.service
35ALL += dbus/fi.epitest.hostap.WPASupplicant.service
36ALL += dbus/fi.w1.wpa_supplicant1.service
37
38
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070039all: verify_config $(ALL) dynamic_eap_methods
40
41verify_config:
42 @if [ ! -r .config ]; then \
43 echo 'Building wpa_supplicant requires a configuration file'; \
44 echo '(.config). See README for more instructions. You can'; \
45 echo 'run "cp defconfig .config" to create an example'; \
46 echo 'configuration.'; \
47 exit 1; \
48 fi
49
50mkconfig:
51 @if [ -f .config ]; then \
52 echo '.config exists - did not replace it'; \
53 exit 1; \
54 fi
55 echo CONFIG_DRIVER_HOSTAP=y >> .config
56 echo CONFIG_DRIVER_WEXT=y >> .config
57
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080058$(DESTDIR)$(BINDIR)/%: %
59 install -D $(<) $(@)
60
61install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070062 $(MAKE) -C ../src install
63
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070064ifdef CONFIG_FIPS
65CONFIG_NO_RANDOM_POOL=
66CONFIG_OPENSSL_CMAC=y
67endif
68
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070069OBJS = config.o
70OBJS += notify.o
71OBJS += bss.o
72OBJS += eap_register.o
73OBJS += ../src/utils/common.o
74OBJS += ../src/utils/wpa_debug.o
75OBJS += ../src/utils/wpabuf.o
76OBJS_p = wpa_passphrase.o
77OBJS_p += ../src/utils/common.o
78OBJS_p += ../src/utils/wpa_debug.o
79OBJS_p += ../src/utils/wpabuf.o
80OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
81OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080082OBJS_c += ../src/utils/common.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080083OBJS += wmm_ac.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070084
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070085ifndef CONFIG_OS
86ifdef CONFIG_NATIVE_WINDOWS
87CONFIG_OS=win32
88else
89CONFIG_OS=unix
90endif
91endif
92
93ifeq ($(CONFIG_OS), internal)
94CFLAGS += -DOS_NO_C_LIB_DEFINES
95endif
96
97OBJS += ../src/utils/os_$(CONFIG_OS).o
98OBJS_p += ../src/utils/os_$(CONFIG_OS).o
99OBJS_c += ../src/utils/os_$(CONFIG_OS).o
100
101ifdef CONFIG_WPA_TRACE
102CFLAGS += -DWPA_TRACE
103OBJS += ../src/utils/trace.o
104OBJS_p += ../src/utils/trace.o
105OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800106OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700107LDFLAGS += -rdynamic
108CFLAGS += -funwind-tables
109ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800110CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800111LIBS += -lbfd -ldl -liberty -lz
112LIBS_p += -lbfd -ldl -liberty -lz
113LIBS_c += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700114endif
115endif
116
117ifndef CONFIG_ELOOP
118CONFIG_ELOOP=eloop
119endif
120OBJS += ../src/utils/$(CONFIG_ELOOP).o
121OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
122
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800123ifeq ($(CONFIG_ELOOP), eloop)
124# Using glibc < 2.17 requires -lrt for clock_gettime()
125LIBS += -lrt
126LIBS_c += -lrt
127LIBS_p += -lrt
128endif
129
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800130ifdef CONFIG_ELOOP_POLL
131CFLAGS += -DCONFIG_ELOOP_POLL
132endif
133
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700134ifdef CONFIG_ELOOP_EPOLL
135CFLAGS += -DCONFIG_ELOOP_EPOLL
136endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700137
138ifdef CONFIG_EAPOL_TEST
139CFLAGS += -Werror -DEAPOL_TEST
140endif
141
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800142ifdef CONFIG_CODE_COVERAGE
143CFLAGS += -O0 -fprofile-arcs -ftest-coverage
144LIBS += -lgcov
145LIBS_c += -lgcov
146LIBS_p += -lgcov
147endif
148
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800149ifdef CONFIG_HT_OVERRIDES
150CFLAGS += -DCONFIG_HT_OVERRIDES
151endif
152
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700153ifdef CONFIG_VHT_OVERRIDES
154CFLAGS += -DCONFIG_VHT_OVERRIDES
155endif
156
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700157ifndef CONFIG_BACKEND
158CONFIG_BACKEND=file
159endif
160
161ifeq ($(CONFIG_BACKEND), file)
162OBJS += config_file.o
163ifndef CONFIG_NO_CONFIG_BLOBS
164NEED_BASE64=y
165endif
166CFLAGS += -DCONFIG_BACKEND_FILE
167endif
168
169ifeq ($(CONFIG_BACKEND), winreg)
170OBJS += config_winreg.o
171endif
172
173ifeq ($(CONFIG_BACKEND), none)
174OBJS += config_none.o
175endif
176
177ifdef CONFIG_NO_CONFIG_WRITE
178CFLAGS += -DCONFIG_NO_CONFIG_WRITE
179endif
180
181ifdef CONFIG_NO_CONFIG_BLOBS
182CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
183endif
184
185ifdef CONFIG_NO_SCAN_PROCESSING
186CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
187endif
188
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800189ifdef CONFIG_SUITEB
190CFLAGS += -DCONFIG_SUITEB
191NEED_SHA256=y
192NEED_AES_OMAC1=y
193endif
194
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700195ifdef CONFIG_IEEE80211W
196CFLAGS += -DCONFIG_IEEE80211W
197NEED_SHA256=y
198NEED_AES_OMAC1=y
199endif
200
201ifdef CONFIG_IEEE80211R
202CFLAGS += -DCONFIG_IEEE80211R
203OBJS += ../src/rsn_supp/wpa_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700204NEED_SHA256=y
205NEED_AES_OMAC1=y
206endif
207
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800208ifdef CONFIG_MESH
209NEED_80211_COMMON=y
210NEED_SHA256=y
211NEED_AES_SIV=y
212NEED_AES_OMAC1=y
213NEED_AES_CTR=y
214CONFIG_SAE=y
215CONFIG_AP=y
216CFLAGS += -DCONFIG_MESH
217OBJS += mesh.o
218OBJS += mesh_mpm.o
219OBJS += mesh_rsn.o
220endif
221
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800222ifdef CONFIG_SAE
223CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800224OBJS += ../src/common/sae.o
225NEED_ECC=y
226NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800227endif
228
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800229ifdef CONFIG_WNM
230CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700231OBJS += wnm_sta.o
232endif
233
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700234ifdef CONFIG_TDLS
235CFLAGS += -DCONFIG_TDLS
236OBJS += ../src/rsn_supp/tdls.o
237NEED_SHA256=y
238NEED_AES_OMAC1=y
239endif
240
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800241ifdef CONFIG_TDLS_TESTING
242CFLAGS += -DCONFIG_TDLS_TESTING
243endif
244
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700245ifdef CONFIG_PEERKEY
246CFLAGS += -DCONFIG_PEERKEY
247endif
248
249ifndef CONFIG_NO_WPA
250OBJS += ../src/rsn_supp/wpa.o
251OBJS += ../src/rsn_supp/preauth.o
252OBJS += ../src/rsn_supp/pmksa_cache.o
253OBJS += ../src/rsn_supp/peerkey.o
254OBJS += ../src/rsn_supp/wpa_ie.o
255OBJS += ../src/common/wpa_common.o
256NEED_AES=y
257NEED_SHA1=y
258NEED_MD5=y
259NEED_RC4=y
260else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700261CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700262endif
263
264ifdef CONFIG_IBSS_RSN
265NEED_RSN_AUTHENTICATOR=y
266CFLAGS += -DCONFIG_IBSS_RSN
267OBJS += ibss_rsn.o
268endif
269
270ifdef CONFIG_P2P
271OBJS += p2p_supplicant.o
272OBJS += ../src/p2p/p2p.o
273OBJS += ../src/p2p/p2p_utils.o
274OBJS += ../src/p2p/p2p_parse.o
275OBJS += ../src/p2p/p2p_build.o
276OBJS += ../src/p2p/p2p_go_neg.o
277OBJS += ../src/p2p/p2p_sd.o
278OBJS += ../src/p2p/p2p_pd.o
279OBJS += ../src/p2p/p2p_invitation.o
280OBJS += ../src/p2p/p2p_dev_disc.o
281OBJS += ../src/p2p/p2p_group.o
282OBJS += ../src/ap/p2p_hostapd.o
Dmitry Shmidtcf32e602014-01-28 10:57:39 -0800283OBJS += ../src/utils/bitfield.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700284CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800285NEED_GAS=y
286NEED_OFFCHANNEL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800287CONFIG_WPS=y
288CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700289ifdef CONFIG_P2P_STRICT
290CFLAGS += -DCONFIG_P2P_STRICT
291endif
292endif
293
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700294ifdef CONFIG_WIFI_DISPLAY
295CFLAGS += -DCONFIG_WIFI_DISPLAY
296OBJS += wifi_display.o
297endif
298
Dmitry Shmidt04949592012-07-19 12:16:46 -0700299ifdef CONFIG_HS20
300OBJS += hs20_supplicant.o
301CFLAGS += -DCONFIG_HS20
302CONFIG_INTERWORKING=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800303NEED_AES_OMAC1=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700304endif
305
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800306ifdef CONFIG_INTERWORKING
307OBJS += interworking.o
308CFLAGS += -DCONFIG_INTERWORKING
309NEED_GAS=y
310endif
311
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700312include ../src/drivers/drivers.mak
313ifdef CONFIG_AP
314OBJS_d += $(DRV_BOTH_OBJS)
315CFLAGS += $(DRV_BOTH_CFLAGS)
316LDFLAGS += $(DRV_BOTH_LDFLAGS)
317LIBS += $(DRV_BOTH_LIBS)
318else
319NEED_AP_MLME=
320OBJS_d += $(DRV_WPA_OBJS)
321CFLAGS += $(DRV_WPA_CFLAGS)
322LDFLAGS += $(DRV_WPA_LDFLAGS)
323LIBS += $(DRV_WPA_LIBS)
324endif
325
326ifndef CONFIG_L2_PACKET
327CONFIG_L2_PACKET=linux
328endif
329
330OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
331
332ifeq ($(CONFIG_L2_PACKET), pcap)
333ifdef CONFIG_WINPCAP
334CFLAGS += -DCONFIG_WINPCAP
335LIBS += -lwpcap -lpacket
336LIBS_w += -lwpcap
337else
338LIBS += -ldnet -lpcap
339endif
340endif
341
342ifeq ($(CONFIG_L2_PACKET), winpcap)
343LIBS += -lwpcap -lpacket
344LIBS_w += -lwpcap
345endif
346
347ifeq ($(CONFIG_L2_PACKET), freebsd)
348LIBS += -lpcap
349endif
350
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800351ifdef CONFIG_ERP
352CFLAGS += -DCONFIG_ERP
353NEED_SHA256=y
354NEED_HMAC_SHA256_KDF=y
355endif
356
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700357ifdef CONFIG_EAP_TLS
358# EAP-TLS
359ifeq ($(CONFIG_EAP_TLS), dyn)
360CFLAGS += -DEAP_TLS_DYNAMIC
361EAPDYN += ../src/eap_peer/eap_tls.so
362else
363CFLAGS += -DEAP_TLS
364OBJS += ../src/eap_peer/eap_tls.o
365OBJS_h += ../src/eap_server/eap_server_tls.o
366endif
367TLS_FUNCS=y
368CONFIG_IEEE8021X_EAPOL=y
369endif
370
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700371ifdef CONFIG_EAP_UNAUTH_TLS
372# EAP-UNAUTH-TLS
373CFLAGS += -DEAP_UNAUTH_TLS
374ifndef CONFIG_EAP_UNAUTH_TLS
375OBJS += ../src/eap_peer/eap_tls.o
376OBJS_h += ../src/eap_server/eap_server_tls.o
377TLS_FUNCS=y
378endif
379CONFIG_IEEE8021X_EAPOL=y
380endif
381
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700382ifdef CONFIG_EAP_PEAP
383# EAP-PEAP
384ifeq ($(CONFIG_EAP_PEAP), dyn)
385CFLAGS += -DEAP_PEAP_DYNAMIC
386EAPDYN += ../src/eap_peer/eap_peap.so
387else
388CFLAGS += -DEAP_PEAP
389OBJS += ../src/eap_peer/eap_peap.o
390OBJS += ../src/eap_common/eap_peap_common.o
391OBJS_h += ../src/eap_server/eap_server_peap.o
392endif
393TLS_FUNCS=y
394CONFIG_IEEE8021X_EAPOL=y
395endif
396
397ifdef CONFIG_EAP_TTLS
398# EAP-TTLS
399ifeq ($(CONFIG_EAP_TTLS), dyn)
400CFLAGS += -DEAP_TTLS_DYNAMIC
401EAPDYN += ../src/eap_peer/eap_ttls.so
402else
403CFLAGS += -DEAP_TTLS
404OBJS += ../src/eap_peer/eap_ttls.o
405OBJS_h += ../src/eap_server/eap_server_ttls.o
406endif
407MS_FUNCS=y
408TLS_FUNCS=y
409CHAP=y
410CONFIG_IEEE8021X_EAPOL=y
411endif
412
413ifdef CONFIG_EAP_MD5
414# EAP-MD5
415ifeq ($(CONFIG_EAP_MD5), dyn)
416CFLAGS += -DEAP_MD5_DYNAMIC
417EAPDYN += ../src/eap_peer/eap_md5.so
418else
419CFLAGS += -DEAP_MD5
420OBJS += ../src/eap_peer/eap_md5.o
421OBJS_h += ../src/eap_server/eap_server_md5.o
422endif
423CHAP=y
424CONFIG_IEEE8021X_EAPOL=y
425endif
426
427# backwards compatibility for old spelling
428ifdef CONFIG_MSCHAPV2
429ifndef CONFIG_EAP_MSCHAPV2
430CONFIG_EAP_MSCHAPV2=y
431endif
432endif
433
434ifdef CONFIG_EAP_MSCHAPV2
435# EAP-MSCHAPv2
436ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
437CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
438EAPDYN += ../src/eap_peer/eap_mschapv2.so
439EAPDYN += ../src/eap_peer/mschapv2.so
440else
441CFLAGS += -DEAP_MSCHAPv2
442OBJS += ../src/eap_peer/eap_mschapv2.o
443OBJS += ../src/eap_peer/mschapv2.o
444OBJS_h += ../src/eap_server/eap_server_mschapv2.o
445endif
446MS_FUNCS=y
447CONFIG_IEEE8021X_EAPOL=y
448endif
449
450ifdef CONFIG_EAP_GTC
451# EAP-GTC
452ifeq ($(CONFIG_EAP_GTC), dyn)
453CFLAGS += -DEAP_GTC_DYNAMIC
454EAPDYN += ../src/eap_peer/eap_gtc.so
455else
456CFLAGS += -DEAP_GTC
457OBJS += ../src/eap_peer/eap_gtc.o
458OBJS_h += ../src/eap_server/eap_server_gtc.o
459endif
460CONFIG_IEEE8021X_EAPOL=y
461endif
462
463ifdef CONFIG_EAP_OTP
464# EAP-OTP
465ifeq ($(CONFIG_EAP_OTP), dyn)
466CFLAGS += -DEAP_OTP_DYNAMIC
467EAPDYN += ../src/eap_peer/eap_otp.so
468else
469CFLAGS += -DEAP_OTP
470OBJS += ../src/eap_peer/eap_otp.o
471endif
472CONFIG_IEEE8021X_EAPOL=y
473endif
474
475ifdef CONFIG_EAP_SIM
476# EAP-SIM
477ifeq ($(CONFIG_EAP_SIM), dyn)
478CFLAGS += -DEAP_SIM_DYNAMIC
479EAPDYN += ../src/eap_peer/eap_sim.so
480else
481CFLAGS += -DEAP_SIM
482OBJS += ../src/eap_peer/eap_sim.o
483OBJS_h += ../src/eap_server/eap_server_sim.o
484endif
485CONFIG_IEEE8021X_EAPOL=y
486CONFIG_EAP_SIM_COMMON=y
487NEED_AES_CBC=y
488endif
489
490ifdef CONFIG_EAP_LEAP
491# EAP-LEAP
492ifeq ($(CONFIG_EAP_LEAP), dyn)
493CFLAGS += -DEAP_LEAP_DYNAMIC
494EAPDYN += ../src/eap_peer/eap_leap.so
495else
496CFLAGS += -DEAP_LEAP
497OBJS += ../src/eap_peer/eap_leap.o
498endif
499MS_FUNCS=y
500CONFIG_IEEE8021X_EAPOL=y
501endif
502
503ifdef CONFIG_EAP_PSK
504# EAP-PSK
505ifeq ($(CONFIG_EAP_PSK), dyn)
506CFLAGS += -DEAP_PSK_DYNAMIC
507EAPDYN += ../src/eap_peer/eap_psk.so
508else
509CFLAGS += -DEAP_PSK
510OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
511OBJS_h += ../src/eap_server/eap_server_psk.o
512endif
513CONFIG_IEEE8021X_EAPOL=y
514NEED_AES=y
515NEED_AES_OMAC1=y
516NEED_AES_ENCBLOCK=y
517NEED_AES_EAX=y
518endif
519
520ifdef CONFIG_EAP_AKA
521# EAP-AKA
522ifeq ($(CONFIG_EAP_AKA), dyn)
523CFLAGS += -DEAP_AKA_DYNAMIC
524EAPDYN += ../src/eap_peer/eap_aka.so
525else
526CFLAGS += -DEAP_AKA
527OBJS += ../src/eap_peer/eap_aka.o
528OBJS_h += ../src/eap_server/eap_server_aka.o
529endif
530CONFIG_IEEE8021X_EAPOL=y
531CONFIG_EAP_SIM_COMMON=y
532NEED_AES_CBC=y
533endif
534
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800535ifdef CONFIG_EAP_PROXY
536CFLAGS += -DCONFIG_EAP_PROXY
537OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
Dmitry Shmidt61593f02014-04-21 16:27:35 -0700538include eap_proxy_$(CONFIG_EAP_PROXY).mak
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800539CONFIG_IEEE8021X_EAPOL=y
540endif
541
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700542ifdef CONFIG_EAP_AKA_PRIME
543# EAP-AKA'
544ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
545CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
546else
547CFLAGS += -DEAP_AKA_PRIME
548endif
549NEED_SHA256=y
550endif
551
552ifdef CONFIG_EAP_SIM_COMMON
553OBJS += ../src/eap_common/eap_sim_common.o
554OBJS_h += ../src/eap_server/eap_sim_db.o
555NEED_AES=y
556NEED_FIPS186_2_PRF=y
557endif
558
559ifdef CONFIG_EAP_FAST
560# EAP-FAST
561ifeq ($(CONFIG_EAP_FAST), dyn)
562CFLAGS += -DEAP_FAST_DYNAMIC
563EAPDYN += ../src/eap_peer/eap_fast.so
564EAPDYN += ../src/eap_common/eap_fast_common.o
565else
566CFLAGS += -DEAP_FAST
567OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
568OBJS += ../src/eap_common/eap_fast_common.o
569OBJS_h += ../src/eap_server/eap_server_fast.o
570endif
571TLS_FUNCS=y
572CONFIG_IEEE8021X_EAPOL=y
573NEED_T_PRF=y
574endif
575
576ifdef CONFIG_EAP_PAX
577# EAP-PAX
578ifeq ($(CONFIG_EAP_PAX), dyn)
579CFLAGS += -DEAP_PAX_DYNAMIC
580EAPDYN += ../src/eap_peer/eap_pax.so
581else
582CFLAGS += -DEAP_PAX
583OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
584OBJS_h += ../src/eap_server/eap_server_pax.o
585endif
586CONFIG_IEEE8021X_EAPOL=y
587endif
588
589ifdef CONFIG_EAP_SAKE
590# EAP-SAKE
591ifeq ($(CONFIG_EAP_SAKE), dyn)
592CFLAGS += -DEAP_SAKE_DYNAMIC
593EAPDYN += ../src/eap_peer/eap_sake.so
594else
595CFLAGS += -DEAP_SAKE
596OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
597OBJS_h += ../src/eap_server/eap_server_sake.o
598endif
599CONFIG_IEEE8021X_EAPOL=y
600endif
601
602ifdef CONFIG_EAP_GPSK
603# EAP-GPSK
604ifeq ($(CONFIG_EAP_GPSK), dyn)
605CFLAGS += -DEAP_GPSK_DYNAMIC
606EAPDYN += ../src/eap_peer/eap_gpsk.so
607else
608CFLAGS += -DEAP_GPSK
609OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
610OBJS_h += ../src/eap_server/eap_server_gpsk.o
611endif
612CONFIG_IEEE8021X_EAPOL=y
613ifdef CONFIG_EAP_GPSK_SHA256
614CFLAGS += -DEAP_GPSK_SHA256
615endif
616NEED_SHA256=y
617NEED_AES_OMAC1=y
618endif
619
620ifdef CONFIG_EAP_PWD
621CFLAGS += -DEAP_PWD
622OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800623OBJS_h += ../src/eap_server/eap_server_pwd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700624CONFIG_IEEE8021X_EAPOL=y
625NEED_SHA256=y
626endif
627
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700628ifdef CONFIG_EAP_EKE
629# EAP-EKE
630ifeq ($(CONFIG_EAP_EKE), dyn)
631CFLAGS += -DEAP_EKE_DYNAMIC
632EAPDYN += ../src/eap_peer/eap_eke.so
633else
634CFLAGS += -DEAP_EKE
635OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
636OBJS_h += ../src/eap_server/eap_server_eke.o
637endif
638CONFIG_IEEE8021X_EAPOL=y
639NEED_DH_GROUPS=y
640NEED_DH_GROUPS_ALL=y
641NEED_SHA256=y
642endif
643
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700644ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700645# EAP-WSC
646CFLAGS += -DCONFIG_WPS -DEAP_WSC
647OBJS += wps_supplicant.o
648OBJS += ../src/utils/uuid.o
649OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
650OBJS += ../src/wps/wps.o
651OBJS += ../src/wps/wps_common.o
652OBJS += ../src/wps/wps_attr_parse.o
653OBJS += ../src/wps/wps_attr_build.o
654OBJS += ../src/wps/wps_attr_process.o
655OBJS += ../src/wps/wps_dev_attr.o
656OBJS += ../src/wps/wps_enrollee.o
657OBJS += ../src/wps/wps_registrar.o
658OBJS_h += ../src/eap_server/eap_server_wsc.o
659CONFIG_IEEE8021X_EAPOL=y
660NEED_DH_GROUPS=y
661NEED_SHA256=y
662NEED_BASE64=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700663NEED_AES_CBC=y
664NEED_MODEXP=y
665
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700666ifdef CONFIG_WPS_NFC
667CFLAGS += -DCONFIG_WPS_NFC
668OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700669NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700670endif
671
672ifdef NEED_WPS_OOB
673CFLAGS += -DCONFIG_WPS_OOB
674endif
675
676ifdef CONFIG_WPS_ER
677CONFIG_WPS_UPNP=y
678CFLAGS += -DCONFIG_WPS_ER
679OBJS += ../src/wps/wps_er.o
680OBJS += ../src/wps/wps_er_ssdp.o
681endif
682
683ifdef CONFIG_WPS_UPNP
684CFLAGS += -DCONFIG_WPS_UPNP
685OBJS += ../src/wps/wps_upnp.o
686OBJS += ../src/wps/wps_upnp_ssdp.o
687OBJS += ../src/wps/wps_upnp_web.o
688OBJS += ../src/wps/wps_upnp_event.o
689OBJS += ../src/wps/wps_upnp_ap.o
690OBJS += ../src/wps/upnp_xml.o
691OBJS += ../src/wps/httpread.o
692OBJS += ../src/wps/http_client.o
693OBJS += ../src/wps/http_server.o
694endif
695
696ifdef CONFIG_WPS_STRICT
697CFLAGS += -DCONFIG_WPS_STRICT
698OBJS += ../src/wps/wps_validate.o
699endif
700
701ifdef CONFIG_WPS_TESTING
702CFLAGS += -DCONFIG_WPS_TESTING
703endif
704
705ifdef CONFIG_WPS_REG_DISABLE_OPEN
706CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
707endif
708
709endif
710
711ifdef CONFIG_EAP_IKEV2
712# EAP-IKEv2
713ifeq ($(CONFIG_EAP_IKEV2), dyn)
714CFLAGS += -DEAP_IKEV2_DYNAMIC
715EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
716EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
717else
718CFLAGS += -DEAP_IKEV2
719OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
720OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
721OBJS_h += ../src/eap_server/eap_server_ikev2.o
722OBJS_h += ../src/eap_server/ikev2.o
723endif
724CONFIG_IEEE8021X_EAPOL=y
725NEED_DH_GROUPS=y
726NEED_DH_GROUPS_ALL=y
727NEED_MODEXP=y
728NEED_CIPHER=y
729endif
730
731ifdef CONFIG_EAP_VENDOR_TEST
732ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
733CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
734EAPDYN += ../src/eap_peer/eap_vendor_test.so
735else
736CFLAGS += -DEAP_VENDOR_TEST
737OBJS += ../src/eap_peer/eap_vendor_test.o
738OBJS_h += ../src/eap_server/eap_server_vendor_test.o
739endif
740CONFIG_IEEE8021X_EAPOL=y
741endif
742
743ifdef CONFIG_EAP_TNC
744# EAP-TNC
745CFLAGS += -DEAP_TNC
746OBJS += ../src/eap_peer/eap_tnc.o
747OBJS += ../src/eap_peer/tncc.o
748OBJS_h += ../src/eap_server/eap_server_tnc.o
749OBJS_h += ../src/eap_server/tncs.o
750NEED_BASE64=y
751ifndef CONFIG_NATIVE_WINDOWS
752ifndef CONFIG_DRIVER_BSD
753LIBS += -ldl
754endif
755endif
756endif
757
758ifdef CONFIG_IEEE8021X_EAPOL
759# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
760CFLAGS += -DIEEE8021X_EAPOL
761OBJS += ../src/eapol_supp/eapol_supp_sm.o
762OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
763NEED_EAP_COMMON=y
764ifdef CONFIG_DYNAMIC_EAP_METHODS
765CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
766LIBS += -ldl -rdynamic
767endif
768endif
769
Dmitry Shmidt5a1480c2014-05-12 09:46:02 -0700770ifdef CONFIG_MACSEC
771CFLAGS += -DCONFIG_MACSEC
772NEED_AES_ENCBLOCK=y
773NEED_AES_UNWRAP=y
774NEED_AES_WRAP=y
775NEED_AES_OMAC1=y
776OBJS += wpas_kay.o
777OBJS += ../src/pae/ieee802_1x_cp.o
778OBJS += ../src/pae/ieee802_1x_kay.o
779OBJS += ../src/pae/ieee802_1x_key.o
780OBJS += ../src/pae/ieee802_1x_secy_ops.o
781endif
782
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700783ifdef CONFIG_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700784NEED_EAP_COMMON=y
785NEED_RSN_AUTHENTICATOR=y
786CFLAGS += -DCONFIG_AP
787OBJS += ap.o
788CFLAGS += -DCONFIG_NO_RADIUS
789CFLAGS += -DCONFIG_NO_ACCOUNTING
790CFLAGS += -DCONFIG_NO_VLAN
791OBJS += ../src/ap/hostapd.o
792OBJS += ../src/ap/wpa_auth_glue.o
793OBJS += ../src/ap/utils.o
794OBJS += ../src/ap/authsrv.o
795OBJS += ../src/ap/ap_config.o
796OBJS += ../src/utils/ip_addr.o
797OBJS += ../src/ap/sta_info.o
798OBJS += ../src/ap/tkip_countermeasures.o
799OBJS += ../src/ap/ap_mlme.o
800OBJS += ../src/ap/ieee802_1x.o
801OBJS += ../src/eapol_auth/eapol_auth_sm.o
802OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800803OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700804OBJS += ../src/ap/drv_callbacks.o
805OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800806OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800807OBJS += ../src/ap/bss_load.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800808OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700809ifdef CONFIG_IEEE80211N
810OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700811ifdef CONFIG_IEEE80211AC
812OBJS += ../src/ap/ieee802_11_vht.o
813endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700814endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800815ifdef CONFIG_WNM
816OBJS += ../src/ap/wnm_ap.o
817endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700818ifdef CONFIG_CTRL_IFACE
819OBJS += ../src/ap/ctrl_iface_ap.o
820endif
821
822CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
823OBJS += ../src/eap_server/eap_server.o
824OBJS += ../src/eap_server/eap_server_identity.o
825OBJS += ../src/eap_server/eap_server_methods.o
826
827ifdef CONFIG_IEEE80211N
828CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700829ifdef CONFIG_IEEE80211AC
830CFLAGS += -DCONFIG_IEEE80211AC
831endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700832endif
833
834ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700835OBJS += ../src/ap/wmm.o
836OBJS += ../src/ap/ap_list.o
837OBJS += ../src/ap/ieee802_11.o
838OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700839OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700840CFLAGS += -DNEED_AP_MLME
841endif
842ifdef CONFIG_WPS
843CFLAGS += -DEAP_SERVER_WSC
844OBJS += ../src/ap/wps_hostapd.o
845OBJS += ../src/eap_server/eap_server_wsc.o
846endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700847ifdef CONFIG_INTERWORKING
848OBJS += ../src/ap/gas_serv.o
849endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700850ifdef CONFIG_HS20
851OBJS += ../src/ap/hs20.o
852endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700853endif
854
855ifdef NEED_RSN_AUTHENTICATOR
856CFLAGS += -DCONFIG_NO_RADIUS
857NEED_AES_WRAP=y
858OBJS += ../src/ap/wpa_auth.o
859OBJS += ../src/ap/wpa_auth_ie.o
860OBJS += ../src/ap/pmksa_cache_auth.o
861ifdef CONFIG_IEEE80211R
862OBJS += ../src/ap/wpa_auth_ft.o
863endif
864ifdef CONFIG_PEERKEY
865OBJS += ../src/ap/peerkey_auth.o
866endif
867endif
868
869ifdef CONFIG_EAP_SERVER
870CFLAGS += -DEAP_SERVER
871OBJS_h += ../src/eap_server/eap_server.o
872OBJS_h += ../src/eap_server/eap_server_identity.o
873OBJS_h += ../src/eap_server/eap_server_methods.o
874endif
875
876ifdef CONFIG_RADIUS_CLIENT
877OBJS_h += ../src/utils/ip_addr.o
878OBJS_h += ../src/radius/radius.o
879OBJS_h += ../src/radius/radius_client.o
880endif
881
882ifdef CONFIG_AUTHENTICATOR
883OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
884OBJS_h += ../src/ap/ieee802_1x.o
885endif
886
887ifdef CONFIG_WPA_AUTHENTICATOR
888OBJS_h += ../src/ap/wpa_auth.o
889OBJS_h += ../src/ap/wpa_auth_ie.o
890OBJS_h += ../src/ap/pmksa_cache_auth.o
891ifdef CONFIG_IEEE80211R
892OBJS_h += ../src/ap/wpa_auth_ft.o
893endif
894ifdef CONFIG_PEERKEY
895OBJS_h += ../src/ap/peerkey_auth.o
896endif
897endif
898
899ifdef CONFIG_PCSC
900# PC/SC interface for smartcards (USIM, GSM SIM)
901CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
902OBJS += ../src/utils/pcsc_funcs.o
903# -lpthread may not be needed depending on how pcsc-lite was configured
904ifdef CONFIG_NATIVE_WINDOWS
905#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
906#dynamic symbol loading that is now used in pcsc_funcs.c
907#LIBS += -lwinscard
908else
909LIBS += -lpcsclite -lpthread
910endif
911endif
912
913ifdef CONFIG_SIM_SIMULATOR
914CFLAGS += -DCONFIG_SIM_SIMULATOR
915NEED_MILENAGE=y
916endif
917
918ifdef CONFIG_USIM_SIMULATOR
919CFLAGS += -DCONFIG_USIM_SIMULATOR
920NEED_MILENAGE=y
921endif
922
923ifdef NEED_MILENAGE
924OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800925NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700926endif
927
928ifdef CONFIG_PKCS12
929CFLAGS += -DPKCS12_FUNCS
930endif
931
932ifdef CONFIG_SMARTCARD
933CFLAGS += -DCONFIG_SMARTCARD
934endif
935
936ifdef MS_FUNCS
937OBJS += ../src/crypto/ms_funcs.o
938NEED_DES=y
939NEED_MD4=y
940endif
941
942ifdef CHAP
943OBJS += ../src/eap_common/chap.o
944endif
945
946ifdef TLS_FUNCS
947NEED_DES=y
948# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
949OBJS += ../src/eap_peer/eap_tls_common.o
950OBJS_h += ../src/eap_server/eap_server_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700951ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700952NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800953NEED_SHA1=y
954NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700955endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700956endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700957
958ifndef CONFIG_TLS
959CONFIG_TLS=openssl
960endif
961
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800962ifdef CONFIG_TLSV11
963CFLAGS += -DCONFIG_TLSV11
964endif
965
966ifdef CONFIG_TLSV12
967CFLAGS += -DCONFIG_TLSV12
968NEED_SHA256=y
969endif
970
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700971ifeq ($(CONFIG_TLS), openssl)
972ifdef TLS_FUNCS
973CFLAGS += -DEAP_TLS_OPENSSL
974OBJS += ../src/crypto/tls_openssl.o
975LIBS += -lssl
976endif
977OBJS += ../src/crypto/crypto_openssl.o
978OBJS_p += ../src/crypto/crypto_openssl.o
979ifdef NEED_FIPS186_2_PRF
980OBJS += ../src/crypto/fips_prf_openssl.o
981endif
982LIBS += -lcrypto
983LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700984ifdef CONFIG_TLS_ADD_DL
985LIBS += -ldl
986LIBS_p += -ldl
987endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700988endif
989
990ifeq ($(CONFIG_TLS), gnutls)
991ifdef TLS_FUNCS
992OBJS += ../src/crypto/tls_gnutls.o
993LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700994endif
995OBJS += ../src/crypto/crypto_gnutls.o
996OBJS_p += ../src/crypto/crypto_gnutls.o
997ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -0700998OBJS += ../src/crypto/fips_prf_internal.o
999SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001000endif
1001LIBS += -lgcrypt
1002LIBS_p += -lgcrypt
1003CONFIG_INTERNAL_SHA256=y
1004CONFIG_INTERNAL_RC4=y
1005CONFIG_INTERNAL_DH_GROUP5=y
1006endif
1007
1008ifeq ($(CONFIG_TLS), schannel)
1009ifdef TLS_FUNCS
1010OBJS += ../src/crypto/tls_schannel.o
1011endif
1012OBJS += ../src/crypto/crypto_cryptoapi.o
1013OBJS_p += ../src/crypto/crypto_cryptoapi.o
1014ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -07001015OBJS += ../src/crypto/fips_prf_internal.o
1016SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001017endif
1018CONFIG_INTERNAL_SHA256=y
1019CONFIG_INTERNAL_RC4=y
1020CONFIG_INTERNAL_DH_GROUP5=y
1021endif
1022
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001023ifeq ($(CONFIG_TLS), internal)
1024ifndef CONFIG_CRYPTO
1025CONFIG_CRYPTO=internal
1026endif
1027ifdef TLS_FUNCS
1028OBJS += ../src/crypto/crypto_internal-rsa.o
1029OBJS += ../src/crypto/tls_internal.o
1030OBJS += ../src/tls/tlsv1_common.o
1031OBJS += ../src/tls/tlsv1_record.o
1032OBJS += ../src/tls/tlsv1_cred.o
1033OBJS += ../src/tls/tlsv1_client.o
1034OBJS += ../src/tls/tlsv1_client_write.o
1035OBJS += ../src/tls/tlsv1_client_read.o
1036OBJS += ../src/tls/asn1.o
1037OBJS += ../src/tls/rsa.o
1038OBJS += ../src/tls/x509v3.o
1039OBJS += ../src/tls/pkcs1.o
1040OBJS += ../src/tls/pkcs5.o
1041OBJS += ../src/tls/pkcs8.o
1042NEED_SHA256=y
1043NEED_BASE64=y
1044NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001045ifdef CONFIG_TLSV12
1046NEED_TLS_PRF_SHA256=y
1047endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001048NEED_MODEXP=y
1049NEED_CIPHER=y
1050CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1051endif
1052ifdef NEED_CIPHER
1053NEED_DES=y
1054OBJS += ../src/crypto/crypto_internal-cipher.o
1055endif
1056ifdef NEED_MODEXP
1057OBJS += ../src/crypto/crypto_internal-modexp.o
1058OBJS += ../src/tls/bignum.o
1059endif
1060ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1061OBJS += ../src/crypto/crypto_libtomcrypt.o
1062OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1063LIBS += -ltomcrypt -ltfm
1064LIBS_p += -ltomcrypt -ltfm
1065CONFIG_INTERNAL_SHA256=y
1066CONFIG_INTERNAL_RC4=y
1067CONFIG_INTERNAL_DH_GROUP5=y
1068endif
1069ifeq ($(CONFIG_CRYPTO), internal)
1070OBJS += ../src/crypto/crypto_internal.o
1071OBJS_p += ../src/crypto/crypto_internal.o
1072NEED_AES_ENC=y
1073CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1074ifdef CONFIG_INTERNAL_LIBTOMMATH
1075CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1076ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1077CFLAGS += -DLTM_FAST
1078endif
1079else
1080LIBS += -ltommath
1081LIBS_p += -ltommath
1082endif
1083CONFIG_INTERNAL_AES=y
1084CONFIG_INTERNAL_DES=y
1085CONFIG_INTERNAL_SHA1=y
1086CONFIG_INTERNAL_MD4=y
1087CONFIG_INTERNAL_MD5=y
1088CONFIG_INTERNAL_SHA256=y
1089CONFIG_INTERNAL_RC4=y
1090CONFIG_INTERNAL_DH_GROUP5=y
1091endif
1092ifeq ($(CONFIG_CRYPTO), cryptoapi)
1093OBJS += ../src/crypto/crypto_cryptoapi.o
1094OBJS_p += ../src/crypto/crypto_cryptoapi.o
1095CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1096CONFIG_INTERNAL_SHA256=y
1097CONFIG_INTERNAL_RC4=y
1098endif
1099endif
1100
1101ifeq ($(CONFIG_TLS), none)
1102ifdef TLS_FUNCS
1103OBJS += ../src/crypto/tls_none.o
1104CFLAGS += -DEAP_TLS_NONE
1105CONFIG_INTERNAL_AES=y
1106CONFIG_INTERNAL_SHA1=y
1107CONFIG_INTERNAL_MD5=y
1108endif
1109OBJS += ../src/crypto/crypto_none.o
1110OBJS_p += ../src/crypto/crypto_none.o
1111CONFIG_INTERNAL_SHA256=y
1112CONFIG_INTERNAL_RC4=y
1113endif
1114
1115ifdef TLS_FUNCS
1116ifdef CONFIG_SMARTCARD
1117ifndef CONFIG_NATIVE_WINDOWS
1118ifneq ($(CONFIG_L2_PACKET), freebsd)
1119LIBS += -ldl
1120endif
1121endif
1122endif
1123endif
1124
1125ifndef TLS_FUNCS
1126OBJS += ../src/crypto/tls_none.o
1127ifeq ($(CONFIG_TLS), internal)
1128CONFIG_INTERNAL_AES=y
1129CONFIG_INTERNAL_SHA1=y
1130CONFIG_INTERNAL_MD5=y
1131CONFIG_INTERNAL_RC4=y
1132endif
1133endif
1134
1135AESOBJS = # none so far (see below)
1136ifdef CONFIG_INTERNAL_AES
1137AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1138endif
1139
1140AESOBJS += ../src/crypto/aes-unwrap.o
1141ifdef NEED_AES_EAX
1142AESOBJS += ../src/crypto/aes-eax.o
1143NEED_AES_CTR=y
1144endif
1145ifdef NEED_AES_CTR
1146AESOBJS += ../src/crypto/aes-ctr.o
1147endif
1148ifdef NEED_AES_ENCBLOCK
1149AESOBJS += ../src/crypto/aes-encblock.o
1150endif
1151ifdef NEED_AES_OMAC1
1152NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001153ifdef CONFIG_OPENSSL_CMAC
1154CFLAGS += -DCONFIG_OPENSSL_CMAC
1155else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001156AESOBJS += ../src/crypto/aes-omac1.o
1157endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001158endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001159ifdef NEED_AES_SIV
1160AESOBJS += ../src/crypto/aes-siv.o
1161endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001162ifdef NEED_AES_WRAP
1163NEED_AES_ENC=y
1164AESOBJS += ../src/crypto/aes-wrap.o
1165endif
1166ifdef NEED_AES_CBC
1167NEED_AES_ENC=y
1168AESOBJS += ../src/crypto/aes-cbc.o
1169endif
1170ifdef NEED_AES_ENC
1171ifdef CONFIG_INTERNAL_AES
1172AESOBJS += ../src/crypto/aes-internal-enc.o
1173endif
1174endif
1175ifdef NEED_AES
1176OBJS += $(AESOBJS)
1177endif
1178
1179ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001180ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001181SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001182endif
1183SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001184ifdef CONFIG_INTERNAL_SHA1
1185SHA1OBJS += ../src/crypto/sha1-internal.o
1186ifdef NEED_FIPS186_2_PRF
1187SHA1OBJS += ../src/crypto/fips_prf_internal.o
1188endif
1189endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001190ifdef CONFIG_NO_WPA_PASSPHRASE
1191CFLAGS += -DCONFIG_NO_PBKDF2
1192else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001193ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001194SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1195endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001196endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001197ifdef NEED_T_PRF
1198SHA1OBJS += ../src/crypto/sha1-tprf.o
1199endif
1200ifdef NEED_TLS_PRF
1201SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1202endif
1203endif
1204
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001205ifndef CONFIG_FIPS
1206MD5OBJS += ../src/crypto/md5.o
1207endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001208ifdef NEED_MD5
1209ifdef CONFIG_INTERNAL_MD5
1210MD5OBJS += ../src/crypto/md5-internal.o
1211endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001212OBJS += $(MD5OBJS)
1213OBJS_p += $(MD5OBJS)
1214endif
1215
1216ifdef NEED_MD4
1217ifdef CONFIG_INTERNAL_MD4
1218OBJS += ../src/crypto/md4-internal.o
1219endif
1220endif
1221
1222DESOBJS = # none needed when not internal
1223ifdef NEED_DES
1224ifdef CONFIG_INTERNAL_DES
1225DESOBJS += ../src/crypto/des-internal.o
1226endif
1227endif
1228
1229ifdef NEED_RC4
1230ifdef CONFIG_INTERNAL_RC4
1231OBJS += ../src/crypto/rc4.o
1232endif
1233endif
1234
1235SHA256OBJS = # none by default
1236ifdef NEED_SHA256
1237CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001238ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001239SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001240endif
1241SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001242ifdef CONFIG_INTERNAL_SHA256
1243SHA256OBJS += ../src/crypto/sha256-internal.o
1244endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001245ifdef NEED_TLS_PRF_SHA256
1246SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1247endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001248ifdef NEED_HMAC_SHA256_KDF
1249OBJS += ../src/crypto/sha256-kdf.o
1250endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001251OBJS += $(SHA256OBJS)
1252endif
1253
1254ifdef NEED_DH_GROUPS
1255OBJS += ../src/crypto/dh_groups.o
1256endif
1257ifdef NEED_DH_GROUPS_ALL
1258CFLAGS += -DALL_DH_GROUPS
1259endif
1260ifdef CONFIG_INTERNAL_DH_GROUP5
1261ifdef NEED_DH_GROUPS
1262OBJS += ../src/crypto/dh_group5.o
1263endif
1264endif
1265
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001266ifdef NEED_ECC
1267CFLAGS += -DCONFIG_ECC
1268endif
1269
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001270ifdef CONFIG_NO_RANDOM_POOL
1271CFLAGS += -DCONFIG_NO_RANDOM_POOL
1272else
1273OBJS += ../src/crypto/random.o
1274endif
1275
1276ifdef CONFIG_CTRL_IFACE
1277ifeq ($(CONFIG_CTRL_IFACE), y)
1278ifdef CONFIG_NATIVE_WINDOWS
1279CONFIG_CTRL_IFACE=named_pipe
1280else
1281CONFIG_CTRL_IFACE=unix
1282endif
1283endif
1284CFLAGS += -DCONFIG_CTRL_IFACE
1285ifeq ($(CONFIG_CTRL_IFACE), unix)
1286CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1287endif
1288ifeq ($(CONFIG_CTRL_IFACE), udp)
1289CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1290endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001291ifeq ($(CONFIG_CTRL_IFACE), udp6)
1292CONFIG_CTRL_IFACE=udp
1293CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1294CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1295endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001296ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1297CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1298endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001299ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1300CONFIG_CTRL_IFACE=udp
1301CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1302CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1303endif
Dmitry Shmidtf21452a2014-02-26 10:55:25 -08001304ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
1305CONFIG_CTRL_IFACE=udp
1306CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1307CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1308CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
1309endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001310OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1311endif
1312
1313ifdef CONFIG_CTRL_IFACE_DBUS
1314DBUS=y
1315DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1316DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1317ifdef CONFIG_WPS
1318DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1319endif
1320DBUS_OBJS += dbus/dbus_dict_helpers.o
1321ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001322DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001323endif
1324ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001325DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001326endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001327DBUS_CFLAGS += $(DBUS_INCLUDE)
1328endif
1329
1330ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1331DBUS=y
1332DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1333DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1334DBUS_OBJS += dbus/dbus_new_helpers.o
1335DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1336ifdef CONFIG_WPS
1337DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1338endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001339ifdef CONFIG_P2P
1340DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1341endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001342ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001343DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001344endif
1345ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001346DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001347endif
1348ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1349DBUS_OBJS += dbus/dbus_new_introspect.o
1350DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1351endif
1352DBUS_CFLAGS += $(DBUS_INCLUDE)
1353endif
1354
1355ifdef DBUS
1356DBUS_CFLAGS += -DCONFIG_DBUS
1357DBUS_OBJS += dbus/dbus_common.o
1358endif
1359
1360OBJS += $(DBUS_OBJS)
1361CFLAGS += $(DBUS_CFLAGS)
1362LIBS += $(DBUS_LIBS)
1363
1364ifdef CONFIG_READLINE
1365OBJS_c += ../src/utils/edit_readline.o
1366LIBS_c += -lncurses -lreadline
1367else
1368ifdef CONFIG_WPA_CLI_EDIT
1369OBJS_c += ../src/utils/edit.o
1370else
1371OBJS_c += ../src/utils/edit_simple.o
1372endif
1373endif
1374
1375ifdef CONFIG_NATIVE_WINDOWS
1376CFLAGS += -DCONFIG_NATIVE_WINDOWS
1377LIBS += -lws2_32 -lgdi32 -lcrypt32
1378LIBS_c += -lws2_32
1379LIBS_p += -lws2_32 -lgdi32
1380ifeq ($(CONFIG_CRYPTO), cryptoapi)
1381LIBS_p += -lcrypt32
1382endif
1383endif
1384
1385ifdef CONFIG_NO_STDOUT_DEBUG
1386CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1387ifndef CONFIG_CTRL_IFACE
1388CFLAGS += -DCONFIG_NO_WPA_MSG
1389endif
1390endif
1391
1392ifdef CONFIG_IPV6
1393# for eapol_test only
1394CFLAGS += -DCONFIG_IPV6
1395endif
1396
1397ifdef NEED_BASE64
1398OBJS += ../src/utils/base64.o
1399endif
1400
1401ifdef NEED_SME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001402OBJS += sme.o
1403CFLAGS += -DCONFIG_SME
1404endif
1405
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001406OBJS += ../src/common/ieee802_11_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001407OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001408
1409ifdef NEED_EAP_COMMON
1410OBJS += ../src/eap_common/eap_common.o
1411endif
1412
1413ifndef CONFIG_MAIN
1414CONFIG_MAIN=main
1415endif
1416
1417ifdef CONFIG_DEBUG_SYSLOG
1418CFLAGS += -DCONFIG_DEBUG_SYSLOG
1419ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1420CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1421endif
1422endif
1423
Dmitry Shmidt04949592012-07-19 12:16:46 -07001424ifdef CONFIG_DEBUG_LINUX_TRACING
1425CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1426endif
1427
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001428ifdef CONFIG_DEBUG_FILE
1429CFLAGS += -DCONFIG_DEBUG_FILE
1430endif
1431
1432ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1433CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1434endif
1435
1436ifdef CONFIG_FIPS
1437CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001438ifneq ($(CONFIG_TLS), openssl)
1439$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1440endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001441endif
1442
1443OBJS += $(SHA1OBJS) $(DESOBJS)
1444
1445OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001446OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001447
1448ifdef CONFIG_BGSCAN_SIMPLE
1449CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1450OBJS += bgscan_simple.o
1451NEED_BGSCAN=y
1452endif
1453
1454ifdef CONFIG_BGSCAN_LEARN
1455CFLAGS += -DCONFIG_BGSCAN_LEARN
1456OBJS += bgscan_learn.o
1457NEED_BGSCAN=y
1458endif
1459
1460ifdef NEED_BGSCAN
1461CFLAGS += -DCONFIG_BGSCAN
1462OBJS += bgscan.o
1463endif
1464
Dmitry Shmidt04949592012-07-19 12:16:46 -07001465ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1466CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1467OBJS += autoscan_exponential.o
1468NEED_AUTOSCAN=y
1469endif
1470
1471ifdef CONFIG_AUTOSCAN_PERIODIC
1472CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1473OBJS += autoscan_periodic.o
1474NEED_AUTOSCAN=y
1475endif
1476
1477ifdef NEED_AUTOSCAN
1478CFLAGS += -DCONFIG_AUTOSCAN
1479OBJS += autoscan.o
1480endif
1481
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001482ifdef CONFIG_EXT_PASSWORD_TEST
1483OBJS += ../src/utils/ext_password_test.o
1484CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1485NEED_EXT_PASSWORD=y
1486endif
1487
1488ifdef NEED_EXT_PASSWORD
1489OBJS += ../src/utils/ext_password.o
1490CFLAGS += -DCONFIG_EXT_PASSWORD
1491endif
1492
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001493ifdef NEED_GAS
1494OBJS += ../src/common/gas.o
1495OBJS += gas_query.o
1496CFLAGS += -DCONFIG_GAS
1497NEED_OFFCHANNEL=y
1498endif
1499
1500ifdef NEED_OFFCHANNEL
1501OBJS += offchannel.o
1502CFLAGS += -DCONFIG_OFFCHANNEL
1503endif
1504
Dmitry Shmidt71757432014-06-02 13:50:35 -07001505ifdef CONFIG_MODULE_TESTS
1506CFLAGS += -DCONFIG_MODULE_TESTS
1507OBJS += wpas_module_tests.o
1508OBJS += ../src/utils/utils_module_tests.o
1509OBJS += ../src/common/common_module_tests.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001510OBJS += ../src/crypto/crypto_module_tests.o
Dmitry Shmidt71757432014-06-02 13:50:35 -07001511ifdef CONFIG_WPS
1512OBJS += ../src/wps/wps_module_tests.o
1513endif
Dmitry Shmidt43cb5782014-06-16 16:23:22 -07001514ifndef CONFIG_P2P
1515OBJS += ../src/utils/bitfield.o
1516endif
Dmitry Shmidt71757432014-06-02 13:50:35 -07001517endif
1518
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001519OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001520OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001521
1522OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001523OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1524ifdef CONFIG_AUTHENTICATOR
1525OBJS_wpa += tests/link_test.o
1526endif
1527OBJS_wpa += $(OBJS_l2)
1528OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1529OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1530OBJS_t += ../src/radius/radius_client.o
1531OBJS_t += ../src/radius/radius.o
1532ifndef CONFIG_AP
1533OBJS_t += ../src/utils/ip_addr.o
1534endif
1535OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001536
1537OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1538OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1539
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001540OBJS += $(CONFIG_MAIN).o
1541
1542ifdef CONFIG_PRIVSEP
1543OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1544OBJS_priv += $(OBJS_l2)
1545OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1546OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1547OBJS_priv += ../src/utils/common.o
1548OBJS_priv += ../src/utils/wpa_debug.o
1549OBJS_priv += ../src/utils/wpabuf.o
1550OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001551ifdef CONFIG_DRIVER_NL80211
1552OBJS_priv += ../src/common/ieee802_11_common.o
1553endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001554OBJS += ../src/l2_packet/l2_packet_privsep.o
1555OBJS += ../src/drivers/driver_privsep.o
1556EXTRA_progs += wpa_priv
1557else
1558OBJS += $(OBJS_d) ../src/drivers/drivers.o
1559OBJS += $(OBJS_l2)
1560endif
1561
1562ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1563CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1564OBJS += ../src/drivers/ndis_events.o
1565EXTRALIBS += -loleaut32 -lole32 -luuid
1566ifdef PLATFORMSDKLIB
1567EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1568else
1569EXTRALIBS += WbemUuid.Lib
1570endif
1571endif
1572
1573ifndef LDO
1574LDO=$(CC)
1575endif
1576
1577Q=@
1578E=echo
1579ifeq ($(V), 1)
1580Q=
1581E=true
1582endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001583ifeq ($(QUIET), 1)
1584Q=@
1585E=true
1586endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001587
1588dynamic_eap_methods: $(EAPDYN)
1589
1590../src/drivers/build.wpa_supplicant:
1591 @if [ -f ../src/drivers/build.hostapd ]; then \
1592 $(MAKE) -C ../src/drivers clean; \
1593 fi
1594 @touch ../src/drivers/build.wpa_supplicant
1595
1596BCHECK=../src/drivers/build.wpa_supplicant
1597
1598wpa_priv: $(BCHECK) $(OBJS_priv)
1599 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1600 @$(E) " LD " $@
1601
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001602$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1603
1604wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001605 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1606 @$(E) " LD " $@
1607
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001608eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001609 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1610 @$(E) " LD " $@
1611
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001612preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001613 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1614 @$(E) " LD " $@
1615
1616wpa_passphrase: $(OBJS_p)
1617 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1618 @$(E) " LD " $@
1619
1620wpa_cli: $(OBJS_c)
1621 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1622 @$(E) " LD " $@
1623
1624link_test: $(OBJS) $(OBJS_h) tests/link_test.o
1625 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1626 @$(E) " LD " $@
1627
1628test_wpa: $(OBJS_wpa) $(OBJS_h)
1629 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1630 @$(E) " LD " $@
1631
Dmitry Shmidt04949592012-07-19 12:16:46 -07001632nfc_pw_token: $(OBJS_nfc)
1633 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1634 @$(E) " LD " $@
1635
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001636win_if_list: win_if_list.c
1637 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1638 @$(E) " LD " $@
1639
1640eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1641 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1642 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1643
1644eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1645 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1646 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1647
1648eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1649 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1650 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1651
1652eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1653 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1654 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1655
1656eap_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
1657 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1658 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1659
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001660eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1661 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1662 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1663
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001664%.so: %.c
1665 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1666 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1667
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001668ifdef CONFIG_CODE_COVERAGE
1669%.o: %.c
1670 @$(E) " CC " $<
1671 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1672else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001673%.o: %.c
1674 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1675 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001676endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001677
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001678%.service: %.service.in
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001679 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1680 @$(E) " sed" $<
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001681
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001682%@.service: %.service.arg.in
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001683 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1684 @$(E) " sed" $<
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001685
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001686wpa_supplicant.exe: wpa_supplicant
1687 mv -f $< $@
1688wpa_cli.exe: wpa_cli
1689 mv -f $< $@
1690wpa_passphrase.exe: wpa_passphrase
1691 mv -f $< $@
1692win_if_list.exe: win_if_list
1693 mv -f $< $@
1694eapol_test.exe: eapol_test
1695 mv -f $< $@
1696
1697WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1698
1699windows-bin: $(WINALL)
1700 $(STRIP) $(WINALL)
1701
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001702wpa_gui:
1703 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001704
1705wpa_gui-qt4/Makefile:
1706 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1707
1708wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1709 lrelease wpa_gui-qt4/wpa_gui.pro
1710
1711wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1712 $(MAKE) -C wpa_gui-qt4
1713
1714TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
1715 ../src/utils/common.o ../src/utils/os_unix.o \
1716 ../src/utils/wpa_debug.o $(AESOBJS) \
1717 tests/test_eap_sim_common.o
1718test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1719 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
1720 ./test-eap_sim_common
1721 rm test-eap_sim_common
1722
1723tests: test-eap_sim_common
1724
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001725FIPSDIR=/usr/local/ssl/fips-2.0
1726FIPSLD=$(FIPSDIR)/bin/fipsld
1727fips:
1728 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1729
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001730lcov-html: wpa_supplicant.gcda
1731 lcov -c -d .. > lcov.info
1732 genhtml lcov.info --output-directory lcov-html
1733
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001734clean:
1735 $(MAKE) -C ../src clean
1736 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001737 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1738 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001739 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07001740 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001741 rm -f lcov.info
1742 rm -rf lcov-html
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001743
1744-include $(OBJS:%.o=%.d)