6 CFLAGS
= -MMD
-O2
-Wall
-g
10 CFLAGS
+= -I..
/src
/crypto
11 CFLAGS
+= -I..
/src
/utils
12 CFLAGS
+= -I..
/src
/common
13 CFLAGS
+= -I..
/src
/rsn_supp
15 ALL
=wpa_supplicant wpa_passphrase wpa_cli
17 all: verify_config
$(ALL
) dynamic_eap_methods
20 @if
[ ! -r .config
]; then \
21 echo
'Building wpa_supplicant requires a configuration file'; \
22 echo
'(.config). See README for more instructions. You can'; \
23 echo
'run "cp defconfig .config" to create an example'; \
24 echo
'configuration.'; \
29 @if
[ -e .config
]; then \
30 echo
'.config exists - did not replace it'; \
33 echo CONFIG_DRIVER_HOSTAP
=y
>> .config
34 echo CONFIG_DRIVER_WEXT
=y
>> .config
35 echo CONFIG_WIRELESS_EXTENSION
=y
>> .config
38 mkdir
-p
$(DESTDIR
)/usr
/local
/sbin
/
39 for i in
$(ALL
); do cp
$$i $(DESTDIR
)/usr
/local
/sbin
/$$i; done
42 OBJS
+= ..
/src
/utils
/common.o
43 OBJS
+= ..
/src
/utils
/wpa_debug.o
44 OBJS
+= ..
/src
/utils
/wpabuf.o
45 OBJS
+= ..
/src
/crypto
/md5.o
46 OBJS
+= ..
/src
/crypto
/rc4.o
47 OBJS
+= ..
/src
/crypto
/md4.o
48 OBJS
+= ..
/src
/crypto
/sha1.o
49 OBJS
+= ..
/src
/crypto
/des.o
50 OBJS_p
= wpa_passphrase.o
51 OBJS_p
+= ..
/src
/utils
/common.o
52 OBJS_p
+= ..
/src
/utils
/wpa_debug.o
53 OBJS_p
+= ..
/src
/crypto
/md5.o
54 OBJS_p
+= ..
/src
/crypto
/md4.o
55 OBJS_p
+= ..
/src
/crypto
/sha1.o
56 OBJS_p
+= ..
/src
/crypto
/des.o
57 OBJS_c
= wpa_cli.o ..
/src
/common
/wpa_ctrl.o
62 ifdef CONFIG_NATIVE_WINDOWS
69 ifeq ($(CONFIG_OS
), internal
)
70 CFLAGS
+= -DOS_NO_C_LIB_DEFINES
73 OBJS
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
74 OBJS_p
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
75 OBJS_c
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
80 OBJS
+= ..
/src
/utils
/$(CONFIG_ELOOP
).o
83 ifdef CONFIG_EAPOL_TEST
84 CFLAGS
+= -Werror
-DEAPOL_TEST
91 ifeq ($(CONFIG_BACKEND
), file
)
93 ifndef CONFIG_NO_CONFIG_BLOBS
96 CFLAGS
+= -DCONFIG_BACKEND_FILE
99 ifeq ($(CONFIG_BACKEND
), winreg
)
100 OBJS
+= config_winreg.o
103 ifeq ($(CONFIG_BACKEND
), none
)
104 OBJS
+= config_none.o
107 ifdef CONFIG_NO_CONFIG_WRITE
108 CFLAGS
+= -DCONFIG_NO_CONFIG_WRITE
111 ifdef CONFIG_NO_CONFIG_BLOBS
112 CFLAGS
+= -DCONFIG_NO_CONFIG_BLOBS
115 ifdef CONFIG_NO_SCAN_PROCESSING
116 CFLAGS
+= -DCONFIG_NO_SCAN_PROCESSING
119 ifdef CONFIG_DRIVER_HOSTAP
120 CFLAGS
+= -DCONFIG_DRIVER_HOSTAP
121 OBJS_d
+= ..
/src
/drivers
/driver_hostap.o
122 CONFIG_WIRELESS_EXTENSION
=y
125 ifdef CONFIG_DRIVER_WEXT
126 CFLAGS
+= -DCONFIG_DRIVER_WEXT
127 CONFIG_WIRELESS_EXTENSION
=y
130 ifdef CONFIG_DRIVER_NL80211
131 CFLAGS
+= -DCONFIG_DRIVER_NL80211
132 OBJS_d
+= ..
/src
/drivers
/driver_nl80211.o
134 ifdef CONFIG_CLIENT_MLME
135 OBJS_d
+= ..
/src
/drivers
/radiotap.o
139 ifdef CONFIG_DRIVER_PRISM54
140 CFLAGS
+= -DCONFIG_DRIVER_PRISM54
141 OBJS_d
+= ..
/src
/drivers
/driver_prism54.o
142 CONFIG_WIRELESS_EXTENSION
=y
145 ifdef CONFIG_DRIVER_HERMES
146 CFLAGS
+= -DCONFIG_DRIVER_HERMES
147 OBJS_d
+= ..
/src
/drivers
/driver_hermes.o
148 CONFIG_WIRELESS_EXTENSION
=y
151 ifdef CONFIG_DRIVER_MADWIFI
152 CFLAGS
+= -DCONFIG_DRIVER_MADWIFI
153 OBJS_d
+= ..
/src
/drivers
/driver_madwifi.o
154 CONFIG_WIRELESS_EXTENSION
=y
157 ifdef CONFIG_DRIVER_ATMEL
158 CFLAGS
+= -DCONFIG_DRIVER_ATMEL
159 OBJS_d
+= ..
/src
/drivers
/driver_atmel.o
160 CONFIG_WIRELESS_EXTENSION
=y
163 ifdef CONFIG_DRIVER_NDISWRAPPER
164 CFLAGS
+= -DCONFIG_DRIVER_NDISWRAPPER
165 OBJS_d
+= ..
/src
/drivers
/driver_ndiswrapper.o
166 CONFIG_WIRELESS_EXTENSION
=y
169 ifdef CONFIG_DRIVER_RALINK
170 CFLAGS
+= -DCONFIG_DRIVER_RALINK
171 OBJS_d
+= ..
/src
/drivers
/driver_ralink.o
174 ifdef CONFIG_DRIVER_BROADCOM
175 CFLAGS
+= -DCONFIG_DRIVER_BROADCOM
176 OBJS_d
+= ..
/src
/drivers
/driver_broadcom.o
179 ifdef CONFIG_DRIVER_IPW
180 CFLAGS
+= -DCONFIG_DRIVER_IPW
181 OBJS_d
+= ..
/src
/drivers
/driver_ipw.o
182 CONFIG_WIRELESS_EXTENSION
=y
185 ifdef CONFIG_DRIVER_BSD
186 CFLAGS
+= -DCONFIG_DRIVER_BSD
187 OBJS_d
+= ..
/src
/drivers
/driver_bsd.o
188 ifndef CONFIG_L2_PACKET
189 CONFIG_L2_PACKET
=freebsd
193 ifdef CONFIG_DRIVER_NDIS
194 CFLAGS
+= -DCONFIG_DRIVER_NDIS
195 OBJS_d
+= ..
/src
/drivers
/driver_ndis.o
196 ifdef CONFIG_NDIS_EVENTS_INTEGRATED
197 OBJS_d
+= ..
/src
/drivers
/driver_ndis_.o
199 ifndef CONFIG_L2_PACKET
200 CONFIG_L2_PACKET
=pcap
203 ifdef CONFIG_USE_NDISUIO
204 CFLAGS
+= -DCONFIG_USE_NDISUIO
208 ifdef CONFIG_DRIVER_WIRED
209 CFLAGS
+= -DCONFIG_DRIVER_WIRED
210 OBJS_d
+= ..
/src
/drivers
/driver_wired.o
213 ifdef CONFIG_DRIVER_TEST
214 CFLAGS
+= -DCONFIG_DRIVER_TEST
215 OBJS_d
+= ..
/src
/drivers
/driver_test.o
218 ifdef CONFIG_DRIVER_OSX
219 CFLAGS
+= -DCONFIG_DRIVER_OSX
220 OBJS_d
+= ..
/src
/drivers
/driver_osx.o
221 LDFLAGS
+= -framework CoreFoundation
222 LDFLAGS
+= -F
/System
/Library
/PrivateFrameworks
-framework Apple80211
225 ifdef CONFIG_DRIVER_PS3
226 CFLAGS
+= -DCONFIG_DRIVER_PS3
-m64
227 OBJS_d
+= ..
/src
/drivers
/driver_ps3.o
231 ifdef CONFIG_DRIVER_IPHONE
232 CFLAGS
+= -DCONFIG_DRIVER_IPHONE
233 OBJS_d
+= ..
/src
/drivers
/driver_iphone.o
234 OBJS_d
+= ..
/src
/drivers
/MobileApple80211.o
235 LIBS
+= -framework CoreFoundation
238 ifndef CONFIG_L2_PACKET
239 CONFIG_L2_PACKET
=linux
242 OBJS_l2
+= ..
/src
/l2_packet
/l2_packet_
$(CONFIG_L2_PACKET
).o
244 ifeq ($(CONFIG_L2_PACKET
), pcap
)
246 CFLAGS
+= -DCONFIG_WINPCAP
247 LIBS
+= -lwpcap
-lpacket
250 LIBS
+= -ldnet
-lpcap
254 ifeq ($(CONFIG_L2_PACKET
), winpcap
)
255 LIBS
+= -lwpcap
-lpacket
259 ifeq ($(CONFIG_L2_PACKET
), freebsd
)
265 ifeq ($(CONFIG_EAP_TLS
), dyn
)
266 CFLAGS
+= -DEAP_TLS_DYNAMIC
267 EAPDYN
+= ..
/src
/eap_peer
/eap_tls.so
270 OBJS
+= ..
/src
/eap_peer
/eap_tls.o
271 OBJS_h
+= ..
/src
/eap_server
/eap_tls.o
274 CONFIG_IEEE8021X_EAPOL
=y
277 ifdef CONFIG_EAP_PEAP
279 ifeq ($(CONFIG_EAP_PEAP
), dyn
)
280 CFLAGS
+= -DEAP_PEAP_DYNAMIC
281 EAPDYN
+= ..
/src
/eap_peer
/eap_peap.so
284 OBJS
+= ..
/src
/eap_peer
/eap_peap.o
285 OBJS
+= ..
/src
/eap_common
/eap_peap_common.o
286 OBJS_h
+= ..
/src
/eap_server
/eap_peap.o
289 CONFIG_IEEE8021X_EAPOL
=y
292 ifdef CONFIG_EAP_TTLS
294 ifeq ($(CONFIG_EAP_TTLS
), dyn
)
295 CFLAGS
+= -DEAP_TTLS_DYNAMIC
296 EAPDYN
+= ..
/src
/eap_peer
/eap_ttls.so
299 OBJS
+= ..
/src
/eap_peer
/eap_ttls.o
300 OBJS_h
+= ..
/src
/eap_server
/eap_ttls.o
305 CONFIG_IEEE8021X_EAPOL
=y
310 ifeq ($(CONFIG_EAP_MD5
), dyn
)
311 CFLAGS
+= -DEAP_MD5_DYNAMIC
312 EAPDYN
+= ..
/src
/eap_peer
/eap_md5.so
315 OBJS
+= ..
/src
/eap_peer
/eap_md5.o
316 OBJS_h
+= ..
/src
/eap_server
/eap_md5.o
319 CONFIG_IEEE8021X_EAPOL
=y
322 # backwards compatibility for old spelling
323 ifdef CONFIG_MSCHAPV2
324 ifndef CONFIG_EAP_MSCHAPV2
325 CONFIG_EAP_MSCHAPV2
=y
329 ifdef CONFIG_EAP_MSCHAPV2
331 ifeq ($(CONFIG_EAP_MSCHAPV2
), dyn
)
332 CFLAGS
+= -DEAP_MSCHAPv2_DYNAMIC
333 EAPDYN
+= ..
/src
/eap_peer
/eap_mschapv2.so
334 EAPDYN
+= ..
/src
/eap_peer
/mschapv2.so
336 CFLAGS
+= -DEAP_MSCHAPv2
337 OBJS
+= ..
/src
/eap_peer
/eap_mschapv2.o
338 OBJS
+= ..
/src
/eap_peer
/mschapv2.o
339 OBJS_h
+= ..
/src
/eap_server
/eap_mschapv2.o
342 CONFIG_IEEE8021X_EAPOL
=y
347 ifeq ($(CONFIG_EAP_GTC
), dyn
)
348 CFLAGS
+= -DEAP_GTC_DYNAMIC
349 EAPDYN
+= ..
/src
/eap_peer
/eap_gtc.so
352 OBJS
+= ..
/src
/eap_peer
/eap_gtc.o
353 OBJS_h
+= ..
/src
/eap_server
/eap_gtc.o
355 CONFIG_IEEE8021X_EAPOL
=y
360 ifeq ($(CONFIG_EAP_OTP
), dyn
)
361 CFLAGS
+= -DEAP_OTP_DYNAMIC
362 EAPDYN
+= ..
/src
/eap_peer
/eap_otp.so
365 OBJS
+= ..
/src
/eap_peer
/eap_otp.o
367 CONFIG_IEEE8021X_EAPOL
=y
372 ifeq ($(CONFIG_EAP_SIM
), dyn
)
373 CFLAGS
+= -DEAP_SIM_DYNAMIC
374 EAPDYN
+= ..
/src
/eap_peer
/eap_sim.so
377 OBJS
+= ..
/src
/eap_peer
/eap_sim.o
378 OBJS_h
+= ..
/src
/eap_server
/eap_sim.o
380 CONFIG_IEEE8021X_EAPOL
=y
381 CONFIG_EAP_SIM_COMMON
=y
384 ifdef CONFIG_EAP_LEAP
386 ifeq ($(CONFIG_EAP_LEAP
), dyn
)
387 CFLAGS
+= -DEAP_LEAP_DYNAMIC
388 EAPDYN
+= ..
/src
/eap_peer
/eap_leap.so
391 OBJS
+= ..
/src
/eap_peer
/eap_leap.o
394 CONFIG_IEEE8021X_EAPOL
=y
399 ifeq ($(CONFIG_EAP_PSK
), dyn
)
400 CFLAGS
+= -DEAP_PSK_DYNAMIC
401 EAPDYN
+= ..
/src
/eap_peer
/eap_psk.so
404 OBJS
+= ..
/src
/eap_peer
/eap_psk.o ..
/src
/eap_common
/eap_psk_common.o
405 OBJS_h
+= ..
/src
/eap_server
/eap_psk.o
407 CONFIG_IEEE8021X_EAPOL
=y
413 ifeq ($(CONFIG_EAP_AKA
), dyn
)
414 CFLAGS
+= -DEAP_AKA_DYNAMIC
415 EAPDYN
+= ..
/src
/eap_peer
/eap_aka.so
418 OBJS
+= ..
/src
/eap_peer
/eap_aka.o
419 OBJS_h
+= ..
/src
/eap_server
/eap_aka.o
421 CONFIG_IEEE8021X_EAPOL
=y
422 CONFIG_EAP_SIM_COMMON
=y
425 ifdef CONFIG_EAP_SIM_COMMON
426 OBJS
+= ..
/src
/eap_common
/eap_sim_common.o
427 OBJS_h
+= ..
/src
/eap_server
/eap_sim_db.o
432 ifdef CONFIG_EAP_FAST
434 ifeq ($(CONFIG_EAP_FAST
), dyn
)
435 CFLAGS
+= -DEAP_FAST_DYNAMIC
436 EAPDYN
+= ..
/src
/eap_peer
/eap_fast.so
437 EAPDYN
+= ..
/src
/eap_common
/eap_fast_common.o
440 OBJS
+= ..
/src
/eap_peer
/eap_fast.o ..
/src
/eap_peer
/eap_fast_pac.o
441 OBJS
+= ..
/src
/eap_common
/eap_fast_common.o
442 OBJS_h
+= ..
/src
/eap_server
/eap_fast.o
450 ifeq ($(CONFIG_EAP_PAX
), dyn
)
451 CFLAGS
+= -DEAP_PAX_DYNAMIC
452 EAPDYN
+= ..
/src
/eap_peer
/eap_pax.so
455 OBJS
+= ..
/src
/eap_peer
/eap_pax.o ..
/src
/eap_common
/eap_pax_common.o
456 OBJS_h
+= ..
/src
/eap_server
/eap_pax.o
458 CONFIG_IEEE8021X_EAPOL
=y
461 ifdef CONFIG_EAP_SAKE
463 ifeq ($(CONFIG_EAP_SAKE
), dyn
)
464 CFLAGS
+= -DEAP_SAKE_DYNAMIC
465 EAPDYN
+= ..
/src
/eap_peer
/eap_sake.so
468 OBJS
+= ..
/src
/eap_peer
/eap_sake.o ..
/src
/eap_common
/eap_sake_common.o
469 OBJS_h
+= ..
/src
/eap_server
/eap_sake.o
471 CONFIG_IEEE8021X_EAPOL
=y
474 ifdef CONFIG_EAP_GPSK
476 ifeq ($(CONFIG_EAP_GPSK
), dyn
)
477 CFLAGS
+= -DEAP_GPSK_DYNAMIC
478 EAPDYN
+= ..
/src
/eap_peer
/eap_gpsk.so
481 OBJS
+= ..
/src
/eap_peer
/eap_gpsk.o ..
/src
/eap_common
/eap_gpsk_common.o
482 OBJS_h
+= ..
/src
/eap_server
/eap_gpsk.o
484 CONFIG_IEEE8021X_EAPOL
=y
485 ifdef CONFIG_EAP_GPSK_SHA256
486 CFLAGS
+= -DEAP_GPSK_SHA256
491 ifdef CONFIG_EAP_IKEV2
493 ifeq ($(CONFIG_EAP_IKEV2
), dyn
)
494 CFLAGS
+= -DEAP_IKEV2_DYNAMIC
495 EAPDYN
+= ..
/src
/eap_peer
/eap_ikev2.so ..
/src
/eap_peer
/ikev2.o
496 EAPDYN
+= ..
/src
/eap_common
/eap_ikev2_common.o ..
/src
/eap_common
/ikev2_common.o
498 CFLAGS
+= -DEAP_IKEV2
499 OBJS
+= ..
/src
/eap_peer
/eap_ikev2.o ..
/src
/eap_peer
/ikev2.o
500 OBJS
+= ..
/src
/eap_common
/eap_ikev2_common.o ..
/src
/eap_common
/ikev2_common.o
501 OBJS_h
+= ..
/src
/eap_server
/eap_ikev2.o
502 OBJS_h
+= ..
/src
/eap_server
/ikev2.o
504 CONFIG_IEEE8021X_EAPOL
=y
508 ifdef CONFIG_EAP_VENDOR_TEST
509 ifeq ($(CONFIG_EAP_VENDOR_TEST
), dyn
)
510 CFLAGS
+= -DEAP_VENDOR_TEST_DYNAMIC
511 EAPDYN
+= ..
/src
/eap_peer
/eap_vendor_test.so
513 CFLAGS
+= -DEAP_VENDOR_TEST
514 OBJS
+= ..
/src
/eap_peer
/eap_vendor_test.o
515 OBJS_h
+= ..
/src
/eap_server
/eap_vendor_test.o
517 CONFIG_IEEE8021X_EAPOL
=y
523 OBJS
+= ..
/src
/eap_peer
/eap_tnc.o
524 OBJS
+= ..
/src
/eap_peer
/tncc.o
528 ifdef CONFIG_IEEE8021X_EAPOL
529 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
530 CFLAGS
+= -DIEEE8021X_EAPOL
531 OBJS
+= ..
/src
/eapol_supp
/eapol_supp_sm.o ..
/src
/eap_peer
/eap.o ..
/src
/eap_common
/eap_common.o ..
/src
/eap_peer
/eap_methods.o
532 ifdef CONFIG_DYNAMIC_EAP_METHODS
533 CFLAGS
+= -DCONFIG_DYNAMIC_EAP_METHODS
534 LIBS
+= -ldl
-rdynamic
538 ifdef CONFIG_EAP_SERVER
539 CFLAGS
+= -DEAP_SERVER
540 OBJS_h
+= ..
/src
/eap_server
/eap.o
541 OBJS_h
+= ..
/src
/eap_server
/eap_identity.o
542 OBJS_h
+= ..
/src
/eap_server
/eap_methods.o
545 ifdef CONFIG_RADIUS_CLIENT
546 OBJS_h
+= ..
/src
/utils
/ip_addr.o
547 OBJS_h
+= ..
/src
/radius
/radius.o
548 OBJS_h
+= ..
/src
/radius
/radius_client.o
551 ifdef CONFIG_AUTHENTICATOR
552 OBJS_h
+= ..
/hostapd
/eapol_sm.o
553 OBJS_h
+= ..
/hostapd
/ieee802_1x.o
556 ifdef CONFIG_WPA_AUTHENTICATOR
557 OBJS_h
+= ..
/hostapd
/wpa.o
558 OBJS_h
+= ..
/hostapd
/wpa_auth_ie.o
559 ifdef CONFIG_IEEE80211R
560 OBJS_h
+= ..
/hostapd
/wpa_ft.o
563 OBJS_h
+= ..
/hostapd
/peerkey.o
568 # PC/SC interface for smartcards (USIM, GSM SIM)
569 CFLAGS
+= -DPCSC_FUNCS
-I
/usr
/include/PCSC
570 OBJS
+= ..
/src
/utils
/pcsc_funcs.o
571 # -lpthread may not be needed depending on how pcsc-lite was configured
572 ifdef CONFIG_NATIVE_WINDOWS
573 #Once MinGW gets support for WinScard, -lwinscard could be used instead of the
574 #dynamic symbol loading that is now used in pcsc_funcs.c
577 LIBS
+= -lpcsclite
-lpthread
585 ifeq ($(CONFIG_TLS
), internal
)
587 CONFIG_CRYPTO
=internal
590 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
591 CFLAGS
+= -DCONFIG_INTERNAL_X509
593 ifeq ($(CONFIG_CRYPTO
), internal
)
594 CFLAGS
+= -DCONFIG_INTERNAL_X509
599 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
600 CFLAGS
+= -DEAP_TLS_FUNCS
601 OBJS
+= ..
/src
/eap_peer
/eap_tls_common.o
602 OBJS_h
+= ..
/src
/eap_server
/eap_tls_common.o
604 ifeq ($(CONFIG_TLS
), openssl
)
605 CFLAGS
+= -DEAP_TLS_OPENSSL
606 OBJS
+= ..
/src
/crypto
/tls_openssl.o
607 LIBS
+= -lssl
-lcrypto
610 ifeq ($(CONFIG_TLS
), gnutls
)
611 OBJS
+= ..
/src
/crypto
/tls_gnutls.o
612 LIBS
+= -lgnutls
-lgcrypt
-lgpg-error
614 ifdef CONFIG_GNUTLS_EXTRA
615 CFLAGS
+= -DCONFIG_GNUTLS_EXTRA
616 LIBS
+= -lgnutls-extra
619 ifeq ($(CONFIG_TLS
), schannel
)
620 OBJS
+= ..
/src
/crypto
/tls_schannel.o
622 ifeq ($(CONFIG_TLS
), internal
)
623 OBJS
+= ..
/src
/crypto
/tls_internal.o
624 OBJS
+= ..
/src
/tls
/tlsv1_common.o ..
/src
/tls
/tlsv1_record.o
625 OBJS
+= ..
/src
/tls
/tlsv1_cred.o ..
/src
/tls
/tlsv1_client.o
626 OBJS
+= ..
/src
/tls
/tlsv1_client_write.o ..
/src
/tls
/tlsv1_client_read.o
627 OBJS
+= ..
/src
/tls
/asn1.o ..
/src
/tls
/x509v3.o
628 OBJS_p
+= ..
/src
/tls
/asn1.o
629 OBJS_p
+= ..
/src
/crypto
/rc4.o ..
/src
/crypto
/aes_wrap.o ..
/src
/crypto
/aes.o
632 CFLAGS
+= -DCONFIG_TLS_INTERNAL
633 CFLAGS
+= -DCONFIG_TLS_INTERNAL_CLIENT
634 ifeq ($(CONFIG_CRYPTO
), internal
)
635 ifdef CONFIG_INTERNAL_LIBTOMMATH
636 CFLAGS
+= -DCONFIG_INTERNAL_LIBTOMMATH
637 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
645 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
646 LIBS
+= -ltomcrypt
-ltfm
647 LIBS_p
+= -ltomcrypt
-ltfm
650 ifeq ($(CONFIG_TLS
), none
)
651 OBJS
+= ..
/src
/crypto
/tls_none.o
652 CFLAGS
+= -DEAP_TLS_NONE
653 CONFIG_INTERNAL_AES
=y
654 CONFIG_INTERNAL_SHA1
=y
655 CONFIG_INTERNAL_MD5
=y
656 CONFIG_INTERNAL_SHA256
=y
658 ifdef CONFIG_SMARTCARD
659 ifndef CONFIG_NATIVE_WINDOWS
660 ifneq ($(CONFIG_L2_PACKET
), freebsd
)
667 OBJS
+= ..
/src
/crypto
/tls_none.o
671 CFLAGS
+= -DPKCS12_FUNCS
674 ifdef CONFIG_SMARTCARD
675 CFLAGS
+= -DCONFIG_SMARTCARD
679 OBJS
+= ..
/src
/crypto
/ms_funcs.o
684 OBJS
+= ..
/src
/eap_common
/chap.o
689 ifeq ($(CONFIG_TLS
), openssl
)
693 ifeq ($(CONFIG_TLS
), gnutls
)
697 ifeq ($(CONFIG_TLS
), schannel
)
699 ifeq ($(CONFIG_TLS
), internal
)
700 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
701 LIBS
+= -ltomcrypt
-ltfm
702 LIBS_p
+= -ltomcrypt
-ltfm
706 ifeq ($(CONFIG_TLS
), openssl
)
707 OBJS
+= ..
/src
/crypto
/crypto_openssl.o
708 OBJS_p
+= ..
/src
/crypto
/crypto_openssl.o
709 CONFIG_INTERNAL_SHA256
=y
711 ifeq ($(CONFIG_TLS
), gnutls
)
712 OBJS
+= ..
/src
/crypto
/crypto_gnutls.o
713 OBJS_p
+= ..
/src
/crypto
/crypto_gnutls.o
714 CONFIG_INTERNAL_SHA256
=y
716 ifeq ($(CONFIG_TLS
), schannel
)
717 OBJS
+= ..
/src
/crypto
/crypto_cryptoapi.o
718 OBJS_p
+= ..
/src
/crypto
/crypto_cryptoapi.o
719 CONFIG_INTERNAL_SHA256
=y
721 ifeq ($(CONFIG_TLS
), internal
)
722 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
723 OBJS
+= ..
/src
/crypto
/crypto_libtomcrypt.o
724 OBJS_p
+= ..
/src
/crypto
/crypto_libtomcrypt.o
725 CONFIG_INTERNAL_SHA256
=y
727 ifeq ($(CONFIG_CRYPTO
), internal
)
728 OBJS
+= ..
/src
/crypto
/crypto_internal.o ..
/src
/tls
/rsa.o ..
/src
/tls
/bignum.o
729 OBJS_p
+= ..
/src
/crypto
/crypto_internal.o ..
/src
/tls
/rsa.o ..
/src
/tls
/bignum.o
730 CFLAGS
+= -DCONFIG_CRYPTO_INTERNAL
731 CONFIG_INTERNAL_AES
=y
732 CONFIG_INTERNAL_DES
=y
733 CONFIG_INTERNAL_SHA1
=y
734 CONFIG_INTERNAL_MD4
=y
735 CONFIG_INTERNAL_MD5
=y
736 CONFIG_INTERNAL_SHA256
=y
738 ifeq ($(CONFIG_CRYPTO
), cryptoapi
)
739 OBJS
+= ..
/src
/crypto
/crypto_cryptoapi.o
740 OBJS_p
+= ..
/src
/crypto
/crypto_cryptoapi.o
741 CFLAGS
+= -DCONFIG_CRYPTO_CRYPTOAPI
742 CONFIG_INTERNAL_SHA256
=y
745 ifeq ($(CONFIG_TLS
), none
)
746 OBJS
+= ..
/src
/crypto
/crypto_none.o
747 OBJS_p
+= ..
/src
/crypto
/crypto_none.o
748 CONFIG_INTERNAL_SHA256
=y
751 CONFIG_INTERNAL_AES
=y
752 CONFIG_INTERNAL_SHA1
=y
753 CONFIG_INTERNAL_MD5
=y
756 ifdef CONFIG_INTERNAL_AES
757 CFLAGS
+= -DINTERNAL_AES
759 ifdef CONFIG_INTERNAL_SHA1
760 CFLAGS
+= -DINTERNAL_SHA1
762 ifdef CONFIG_INTERNAL_SHA256
763 CFLAGS
+= -DINTERNAL_SHA256
765 ifdef CONFIG_INTERNAL_MD5
766 CFLAGS
+= -DINTERNAL_MD5
768 ifdef CONFIG_INTERNAL_MD4
769 CFLAGS
+= -DINTERNAL_MD4
771 ifdef CONFIG_INTERNAL_DES
772 CFLAGS
+= -DINTERNAL_DES
775 ifdef CONFIG_IEEE80211R
779 ifdef CONFIG_IEEE80211W
780 CFLAGS
+= -DCONFIG_IEEE80211W
785 OBJS
+= ..
/src
/crypto
/sha256.o
786 CFLAGS
+= -DNEED_SHA256
789 ifdef CONFIG_WIRELESS_EXTENSION
790 CFLAGS
+= -DCONFIG_WIRELESS_EXTENSION
791 OBJS_d
+= ..
/src
/drivers
/driver_wext.o
794 ifdef CONFIG_CTRL_IFACE
795 ifeq ($(CONFIG_CTRL_IFACE
), y
)
796 ifdef CONFIG_NATIVE_WINDOWS
797 CONFIG_CTRL_IFACE
=named_pipe
799 CONFIG_CTRL_IFACE
=unix
802 CFLAGS
+= -DCONFIG_CTRL_IFACE
803 ifeq ($(CONFIG_CTRL_IFACE
), unix
)
804 CFLAGS
+= -DCONFIG_CTRL_IFACE_UNIX
806 ifeq ($(CONFIG_CTRL_IFACE
), udp
)
807 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP
809 ifeq ($(CONFIG_CTRL_IFACE
), named_pipe
)
810 CFLAGS
+= -DCONFIG_CTRL_IFACE_NAMED_PIPE
812 OBJS
+= ctrl_iface.o ctrl_iface_
$(CONFIG_CTRL_IFACE
).o
815 ifdef CONFIG_CTRL_IFACE_DBUS
816 CFLAGS
+= -DCONFIG_CTRL_IFACE_DBUS
-DDBUS_API_SUBJECT_TO_CHANGE
817 OBJS
+= ctrl_iface_dbus.o ctrl_iface_dbus_handlers.o dbus_dict_helpers.o
819 DBUS_LIBS
:= $(shell pkg-config
--libs dbus-1
)
823 DBUS_INCLUDE
:= $(shell pkg-config
--cflags dbus-1
)
825 dbus_version
=$(subst .
, ,$(shell pkg-config
--modversion dbus-1
))
826 DBUS_VERSION_MAJOR
=$(word 1,$(dbus_version
))
827 DBUS_VERSION_MINOR
=$(word 2,$(dbus_version
))
828 ifeq ($(DBUS_VERSION_MAJOR
),)
831 ifeq ($(DBUS_VERSION_MINOR
),)
834 DBUS_INCLUDE
+= -DDBUS_VERSION_MAJOR
=$(DBUS_VERSION_MAJOR
)
835 DBUS_INCLUDE
+= -DDBUS_VERSION_MINOR
=$(DBUS_VERSION_MINOR
)
836 CFLAGS
+= $(DBUS_INCLUDE
)
839 ifdef CONFIG_READLINE
840 CFLAGS
+= -DCONFIG_READLINE
841 LIBS_c
+= -lncurses
-lreadline
844 ifdef CONFIG_NATIVE_WINDOWS
845 CFLAGS
+= -DCONFIG_NATIVE_WINDOWS
846 LIBS
+= -lws2_32
-lgdi32
-lcrypt32
848 LIBS_p
+= -lws2_32
-lgdi32
849 ifeq ($(CONFIG_CRYPTO
), cryptoapi
)
854 ifdef CONFIG_NO_STDOUT_DEBUG
855 CFLAGS
+= -DCONFIG_NO_STDOUT_DEBUG
856 ifndef CONFIG_CTRL_IFACE
857 CFLAGS
+= -DCONFIG_NO_WPA_MSG
862 # for eapol_test only
863 CFLAGS
+= -DCONFIG_IPV6
867 CFLAGS
+= -DCONFIG_PEERKEY
870 ifdef CONFIG_IEEE80211R
871 CFLAGS
+= -DCONFIG_IEEE80211R
872 OBJS
+= ..
/src
/rsn_supp
/wpa_ft.o
876 OBJS
+= ..
/src
/rsn_supp
/wpa.o
877 OBJS
+= ..
/src
/rsn_supp
/preauth.o
878 OBJS
+= ..
/src
/rsn_supp
/pmksa_cache.o
879 OBJS
+= ..
/src
/rsn_supp
/peerkey.o
880 OBJS
+= ..
/src
/rsn_supp
/wpa_ie.o
881 OBJS
+= ..
/src
/common
/wpa_common.o
884 CFLAGS
+= -DCONFIG_NO_WPA
-DCONFIG_NO_WPA2
888 CFLAGS
+= -DCONFIG_NO_WPA2
891 ifdef CONFIG_NO_WPA_PASSPHRASE
892 CFLAGS
+= -DCONFIG_NO_PBKDF2
895 ifdef CONFIG_NO_AES_EXTRAS
896 CFLAGS
+= -DCONFIG_NO_AES_WRAP
897 CFLAGS
+= -DCONFIG_NO_AES_CTR
-DCONFIG_NO_AES_OMAC1
898 CFLAGS
+= -DCONFIG_NO_AES_EAX
-DCONFIG_NO_AES_CBC
899 CFLAGS
+= -DCONFIG_NO_AES_ENCRYPT
900 CFLAGS
+= -DCONFIG_NO_AES_ENCRYPT_BLOCK
904 OBJS
+= ..
/src
/crypto
/aes_wrap.o ..
/src
/crypto
/aes.o
908 OBJS
+= ..
/src
/crypto
/dh_groups.o
911 ifndef NEED_FIPS186_2_PRF
912 CFLAGS
+= -DCONFIG_NO_FIPS186_2_PRF
916 CFLAGS
+= -DCONFIG_NO_T_PRF
920 CFLAGS
+= -DCONFIG_NO_TLS_PRF
924 OBJS
+= ..
/src
/utils
/base64.o
927 ifdef CONFIG_CLIENT_MLME
929 CFLAGS
+= -DCONFIG_CLIENT_MLME
936 ifdef CONFIG_DEBUG_FILE
937 CFLAGS
+= -DCONFIG_DEBUG_FILE
940 OBJS
+= ..
/src
/drivers
/scan_helpers.o
942 OBJS_wpa_rm
:= ctrl_iface.o mlme.o ctrl_iface_unix.o
943 OBJS_wpa
:= $(filter-out $(OBJS_wpa_rm
),$(OBJS
)) $(OBJS_h
) tests
/test_wpa.o
944 ifdef CONFIG_AUTHENTICATOR
945 OBJS_wpa
+= tests
/link_test.o
947 OBJS_wpa
+= $(OBJS_l2
)
948 OBJS
+= wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
949 OBJS_t
:= $(OBJS
) $(OBJS_l2
) eapol_test.o ..
/src
/radius
/radius.o ..
/src
/radius
/radius_client.o
950 OBJS_t
+= ..
/src
/utils
/ip_addr.o
951 OBJS_t2
:= $(OBJS
) $(OBJS_l2
) preauth_test.o
952 OBJS
+= $(CONFIG_MAIN
).o
955 OBJS_priv
+= $(OBJS_d
) ..
/src
/drivers
/drivers.o ..
/src
/drivers
/scan_helpers.o
956 OBJS_priv
+= $(OBJS_l2
)
957 OBJS_priv
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
958 OBJS_priv
+= ..
/src
/utils
/$(CONFIG_ELOOP
).o
959 OBJS_priv
+= ..
/src
/utils
/common.o
960 OBJS_priv
+= ..
/src
/utils
/wpa_debug.o
961 OBJS_priv
+= wpa_priv.o
962 ifdef CONFIG_DRIVER_TEST
963 OBJS_priv
+= ..
/src
/crypto
/sha1.o
964 OBJS_priv
+= ..
/src
/crypto
/md5.o
965 ifeq ($(CONFIG_TLS
), openssl
)
966 OBJS_priv
+= ..
/src
/crypto
/crypto_openssl.o
968 ifeq ($(CONFIG_TLS
), gnutls
)
969 OBJS_priv
+= ..
/src
/crypto
/crypto_gnutls.o
971 ifeq ($(CONFIG_TLS
), internal
)
972 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
973 OBJS_priv
+= ..
/src
/crypto
/crypto_libtomcrypt.o
975 OBJS_priv
+= ..
/src
/crypto
/crypto_internal.o
978 endif # CONFIG_DRIVER_TEST
979 OBJS
+= ..
/src
/l2_packet
/l2_packet_privsep.o
980 OBJS
+= ..
/src
/drivers
/driver_privsep.o
981 EXTRA_progs
+= wpa_priv
983 OBJS
+= $(OBJS_d
) ..
/src
/drivers
/drivers.o
987 ifdef CONFIG_NDIS_EVENTS_INTEGRATED
988 CFLAGS
+= -DCONFIG_NDIS_EVENTS_INTEGRATED
989 OBJS
+= ..
/src
/drivers
/ndis_events.o
990 EXTRALIBS
+= -loleaut32
-lole32
-luuid
992 EXTRALIBS
+= $(PLATFORMSDKLIB
)/WbemUuid.Lib
994 EXTRALIBS
+= WbemUuid.Lib
1002 dynamic_eap_methods
: $(EAPDYN
)
1004 wpa_priv
: $(OBJS_priv
)
1005 $(LDO
) $(LDFLAGS
) -o wpa_priv
$(OBJS_priv
) $(LIBS
)
1007 wpa_supplicant
: .config
$(OBJS
) $(EXTRA_progs
)
1008 $(LDO
) $(LDFLAGS
) -o wpa_supplicant
$(OBJS
) $(LIBS
) $(EXTRALIBS
)
1010 eapol_test
: .config
$(OBJS_t
)
1011 $(LDO
) $(LDFLAGS
) -o eapol_test
$(OBJS_t
) $(LIBS
)
1013 preauth_test
: .config
$(OBJS_t2
)
1014 $(LDO
) $(LDFLAGS
) -o preauth_test
$(OBJS_t2
) $(LIBS
)
1016 wpa_passphrase
: $(OBJS_p
)
1017 $(LDO
) $(LDFLAGS
) -o wpa_passphrase
$(OBJS_p
) $(LIBS_p
)
1020 $(LDO
) $(LDFLAGS
) -o wpa_cli
$(OBJS_c
) $(LIBS_c
)
1022 link_test
: $(OBJS
) $(OBJS_h
) tests
/link_test.o
1023 $(LDO
) $(LDFLAGS
) -o link_test
$(OBJS
) $(OBJS_h
) tests
/link_test.o
$(LIBS
)
1025 test_wpa
: $(OBJS_wpa
) $(OBJS_h
)
1026 $(LDO
) $(LDFLAGS
) -o test_wpa
$(OBJS_wpa
) $(LIBS
)
1028 OBJSa
=..
/src
/tls
/asn1_test.o ..
/src
/tls
/asn1.o ..
/src
/tls
/x509v3.o ..
/src
/utils
/common.o ..
/src
/utils
/wpa_debug.o ..
/src
/utils
/os_unix.o \
1029 ..
/src
/crypto
/crypto_
$(CONFIG_CRYPTO
).o ..
/src
/crypto
/md5.o ..
/src
/crypto
/sha1.o \
1030 ..
/src
/crypto
/rc4.o ..
/src
/crypto
/des.o ..
/src
/crypto
/aes_wrap.o \
1031 ..
/src
/crypto
/aes.o ..
/src
/tls
/bignum.o ..
/src
/tls
/rsa.o
1033 $(LDO
) $(LDFLAGS
) -o asn1_test
$(OBJSa
)
1035 OBJSx
=tests
/test_x509v3.o ..
/src
/tls
/asn1.o ..
/src
/tls
/x509v3.o \
1036 ..
/src
/utils
/common.o ..
/src
/utils
/wpa_debug.o ..
/src
/utils
/os_unix.o \
1037 ..
/src
/crypto
/crypto_
$(CONFIG_CRYPTO
).o \
1038 ..
/src
/crypto
/md5.o ..
/src
/crypto
/sha1.o ..
/src
/crypto
/aes.o \
1039 ..
/src
/crypto
/rc4.o ..
/src
/crypto
/des.o ..
/src
/crypto
/aes_wrap.o \
1040 ..
/src
/crypto
/sha256.o \
1041 ..
/src
/tls
/bignum.o ..
/src
/tls
/rsa.o
1042 test_x509v3
: $(OBJSx
)
1043 $(LDO
) $(LDFLAGS
) -o test_x509v3
$(OBJSx
)
1045 win_if_list
: win_if_list.c
1046 $(LDO
) $(LDFLAGS
) -o
$@ win_if_list.c
$(CFLAGS
) $(LIBS_w
)
1048 eap_psk.so
: ..
/src
/eap_peer
/eap_psk.c ..
/src
/eap_common
/eap_psk_common.c
1049 $(CC
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1050 -Deap_peer_psk_register
=eap_peer_method_dynamic_init
1052 eap_pax.so
: ..
/src
/eap_peer
/eap_pax.c ..
/src
/eap_common
/eap_pax_common.c
1053 $(CC
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1054 -Deap_peer_pax_register
=eap_peer_method_dynamic_init
1056 eap_sake.so
: ..
/src
/eap_peer
/eap_sake.c ..
/src
/eap_common
/eap_sake_common.c
1057 $(CC
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1058 -Deap_peer_sake_register
=eap_peer_method_dynamic_init
1060 eap_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
1061 $(CC
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1062 -Deap_peer_ikev2_register
=eap_peer_method_dynamic_init
1065 $(CC
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$< \
1066 -D
$(*:eap_
%=eap_peer_
%)_register
=eap_peer_method_dynamic_init
1069 wpa_supplicant.exe
: wpa_supplicant
1071 wpa_cli.exe
: wpa_cli
1073 wpa_passphrase.exe
: wpa_passphrase
1075 win_if_list.exe
: win_if_list
1077 eapol_test.exe
: eapol_test
1080 WINALL
=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1082 windows-bin
: $(WINALL
)
1086 qmake
-o wpa_gui
/Makefile wpa_gui
/wpa_gui.pro
1088 wpa_gui
: wpa_gui
/Makefile
1091 wpa_gui-qt4
/Makefile
:
1092 qmake
-o wpa_gui-qt4
/Makefile wpa_gui-qt4
/wpa_gui.pro
1094 wpa_gui-qt4
: wpa_gui-qt4
/Makefile
1095 $(MAKE
) -C wpa_gui-qt4
1097 TEST_MS_FUNCS_OBJS
= ..
/src
/crypto
/crypto_openssl.o ..
/src
/crypto
/sha1.o ..
/src
/crypto
/md5.o \
1098 ..
/src
/utils
/os_unix.o ..
/src
/crypto
/rc4.o tests
/test_ms_funcs.o
1099 test-ms_funcs
: $(TEST_MS_FUNCS_OBJS
)
1100 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_MS_FUNCS_OBJS
) $(LIBS
) -lcrypto
1104 TEST_SHA1_OBJS
= ..
/src
/crypto
/sha1.o ..
/src
/crypto
/md5.o tests
/test_sha1.o
#../src/crypto/crypto_openssl.o
1105 test-sha1
: $(TEST_SHA1_OBJS
)
1106 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_SHA1_OBJS
) $(LIBS
)
1110 TEST_SHA256_OBJS
= ..
/src
/crypto
/sha256.o ..
/src
/crypto
/md5.o tests
/test_sha256.o ..
/src
/crypto
/crypto_openssl.o
1111 test-sha256
: $(TEST_SHA256_OBJS
)
1112 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_SHA256_OBJS
) $(LIBS
)
1116 TEST_AES_OBJS
= ..
/src
/crypto
/aes_wrap.o ..
/src
/crypto
/aes.o tests
/test_aes.o
1117 test-aes
: $(TEST_AES_OBJS
)
1118 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_AES_OBJS
) $(LIBS
)
1122 TEST_EAP_SIM_COMMON_OBJS
= ..
/src
/crypto
/sha1.o ..
/src
/crypto
/md5.o \
1123 ..
/src
/crypto
/aes_wrap.o ..
/src
/utils
/common.o ..
/src
/utils
/os_unix.o \
1124 ..
/src
/utils
/wpa_debug.o ..
/src
/crypto
/aes.o \
1125 tests
/test_eap_sim_common.o
1126 test-eap_sim_common
: $(TEST_EAP_SIM_COMMON_OBJS
)
1127 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_AES_OBJS
) $(LIBS
)
1128 .
/test-eap_sim_common
1129 rm test-eap_sim_common
1131 TEST_MD4_OBJS
= ..
/src
/crypto
/md4.o tests
/test_md4.o
#../src/crypto/crypto_openssl.o
1132 test-md4
: $(TEST_MD4_OBJS
)
1133 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_MD4_OBJS
) $(LIBS
)
1137 TEST_MD5_OBJS
= ..
/src
/crypto
/md5.o tests
/test_md5.o
#../src/crypto/crypto_openssl.o
1138 test-md5
: $(TEST_MD5_OBJS
)
1139 $(LDO
) $(LDFLAGS
) -o
$@
$(TEST_MD5_OBJS
) $(LIBS
)
1143 tests
: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5
1146 $(MAKE
) -C ..
/src
clean
1147 rm -f core
*~
*.o
*.d eap_
*.so
$(ALL
) $(WINALL
)
1150 fig2dev
-L eps
$*.fig
$*.eps
1153 fig2dev
-L png
-m
3 $*.fig | pngtopnm | pnmscale
0.4 | pnmtopng \
1156 docs-pics
: doc
/wpa_supplicant.png doc
/wpa_supplicant.eps
1159 (cd ..
; doxygen wpa_supplicant
/doc
/doxygen.full
; cd wpa_supplicant
)
1160 $(MAKE
) -C doc
/latex
1161 cp doc
/latex
/refman.pdf wpa_supplicant-devel.pdf
1163 docs-fast
: docs-pics
1164 doxygen doc
/doxygen.fast
1167 rm -rf doc
/latex doc
/html
1168 rm -f doc
/wpa_supplicant.
{eps
,png
} wpa_supplicant-devel.pdf
1170 wpa_supplicant-sparse
: .config
$(OBJS
)
1171 @echo Sparse run completed
1174 CC
="sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -D__INT_MAX__=2147483647 -D__SHRT_MAX__=32767 -D__LONG_MAX__=2147483647 -D__SCHAR_MAX__=127 -Wbitwise" $(MAKE
) wpa_supplicant-sparse
1176 -include $(OBJS
:%.o
=%.d
)