6 CFLAGS
= -MMD
-O2
-Wall
-g
10 # If LIBS is set with some global build system defaults, clone those for
11 # LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well.
20 export LIBDIR ?
= /usr
/local
/lib
/
21 export INCDIR ?
= /usr
/local
/include/
22 export BINDIR ?
= /usr
/local
/sbin
/
23 PKG_CONFIG ?
= pkg-config
25 CFLAGS
+= $(EXTRA_CFLAGS
)
26 CFLAGS
+= -I
$(abspath ..
/src
)
27 CFLAGS
+= -I
$(abspath ..
/src
/utils
)
31 ifndef CONFIG_NO_GITVER
32 # Add VERSION_STR postfix for builds from a git repository
33 ifeq ($(wildcard ..
/.git
),..
/.git
)
34 GITVER
:= $(shell git describe
--dirty
=+)
36 CFLAGS
+= -DGIT_VERSION_STR_POSTFIX
=\"-$(GITVER
)\"
41 ifdef CONFIG_TESTING_OPTIONS
42 CFLAGS
+= -DCONFIG_TESTING_OPTIONS
47 BINALL
=wpa_supplicant wpa_cli
49 ifndef CONFIG_NO_WPA_PASSPHRASE
50 BINALL
+= wpa_passphrase
54 ALL
+= systemd
/wpa_supplicant.service
55 ALL
+= systemd
/wpa_supplicant@.service
56 ALL
+= systemd
/wpa_supplicant-nl80211@.service
57 ALL
+= systemd
/wpa_supplicant-wired@.service
58 ALL
+= dbus
/fi.w1.wpa_supplicant1.service
59 ifdef CONFIG_BUILD_WPA_CLIENT_SO
60 ALL
+= libwpa_client.so
64 all: verify_config
$(ALL
) dynamic_eap_methods
67 @if
[ ! -r .config
]; then \
68 echo
'Building wpa_supplicant requires a configuration file'; \
69 echo
'(.config). See README for more instructions. You can'; \
70 echo
'run "cp defconfig .config" to create an example'; \
71 echo
'configuration.'; \
76 @if
[ -f .config
]; then \
77 echo
'.config exists - did not replace it'; \
80 echo CONFIG_DRIVER_HOSTAP
=y
>> .config
81 echo CONFIG_DRIVER_WEXT
=y
>> .config
83 $(DESTDIR
)$(BINDIR
)/%: %
86 install: $(addprefix $(DESTDIR
)$(BINDIR
)/,$(BINALL
))
87 $(MAKE
) -C ..
/src
install
88 ifdef CONFIG_BUILD_WPA_CLIENT_SO
89 install -m
0644 -D libwpa_client.so
$(DESTDIR
)/$(LIBDIR
)/libwpa_client.so
90 install -m
0644 -D ..
/src
/common
/wpa_ctrl.h
$(DESTDIR
)/$(INCDIR
)/wpa_ctrl.h
94 CONFIG_NO_RANDOM_POOL
=
101 OBJS
+= eap_register.o
102 OBJS
+= ..
/src
/utils
/common.o
103 OBJS
+= ..
/src
/utils
/wpa_debug.o
104 OBJS
+= ..
/src
/utils
/wpabuf.o
105 OBJS
+= ..
/src
/utils
/bitfield.o
108 OBJS_p
= wpa_passphrase.o
109 OBJS_p
+= ..
/src
/utils
/common.o
110 OBJS_p
+= ..
/src
/utils
/wpa_debug.o
111 OBJS_p
+= ..
/src
/utils
/wpabuf.o
112 OBJS_c
= wpa_cli.o ..
/src
/common
/wpa_ctrl.o
113 OBJS_c
+= ..
/src
/utils
/wpa_debug.o
114 OBJS_c
+= ..
/src
/utils
/common.o
115 OBJS_c
+= ..
/src
/common
/cli.o
119 ifdef CONFIG_NATIVE_WINDOWS
126 ifeq ($(CONFIG_OS
), internal
)
127 CFLAGS
+= -DOS_NO_C_LIB_DEFINES
130 OBJS
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
131 OBJS_p
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
132 OBJS_c
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
134 ifdef CONFIG_WPA_TRACE
135 CFLAGS
+= -DWPA_TRACE
136 OBJS
+= ..
/src
/utils
/trace.o
137 OBJS_p
+= ..
/src
/utils
/trace.o
138 OBJS_c
+= ..
/src
/utils
/trace.o
139 OBJS_priv
+= ..
/src
/utils
/trace.o
140 LIBCTRL
+= ..
/src
/utils
/trace.o
141 LIBCTRLSO
+= ..
/src
/utils
/trace.c
143 CFLAGS
+= -funwind-tables
144 ifdef CONFIG_WPA_TRACE_BFD
145 CFLAGS
+= -DPACKAGE
="wpa_supplicant" -DWPA_TRACE_BFD
146 LIBS
+= -lbfd
-ldl
-liberty
-lz
147 LIBS_p
+= -lbfd
-ldl
-liberty
-lz
148 LIBS_c
+= -lbfd
-ldl
-liberty
-lz
155 OBJS
+= ..
/src
/utils
/$(CONFIG_ELOOP
).o
156 OBJS_c
+= ..
/src
/utils
/$(CONFIG_ELOOP
).o
159 ifeq ($(CONFIG_ELOOP
), eloop
)
160 # Using glibc < 2.17 requires -lrt for clock_gettime()
161 # OS X has an alternate implementation
168 ifdef CONFIG_ELOOP_POLL
169 CFLAGS
+= -DCONFIG_ELOOP_POLL
172 ifdef CONFIG_ELOOP_EPOLL
173 CFLAGS
+= -DCONFIG_ELOOP_EPOLL
176 ifdef CONFIG_ELOOP_KQUEUE
177 CFLAGS
+= -DCONFIG_ELOOP_KQUEUE
180 ifdef CONFIG_EAPOL_TEST
181 CFLAGS
+= -Werror
-DEAPOL_TEST
184 ifdef CONFIG_CODE_COVERAGE
185 CFLAGS
+= -O0
-fprofile-arcs
-ftest-coverage
191 ifdef CONFIG_HT_OVERRIDES
192 CFLAGS
+= -DCONFIG_HT_OVERRIDES
195 ifdef CONFIG_VHT_OVERRIDES
196 CFLAGS
+= -DCONFIG_VHT_OVERRIDES
199 ifndef CONFIG_BACKEND
203 ifeq ($(CONFIG_BACKEND
), file
)
204 OBJS
+= config_file.o
205 ifndef CONFIG_NO_CONFIG_BLOBS
208 CFLAGS
+= -DCONFIG_BACKEND_FILE
211 ifeq ($(CONFIG_BACKEND
), winreg
)
212 OBJS
+= config_winreg.o
215 ifeq ($(CONFIG_BACKEND
), none
)
216 OBJS
+= config_none.o
219 ifdef CONFIG_NO_CONFIG_WRITE
220 CFLAGS
+= -DCONFIG_NO_CONFIG_WRITE
223 ifdef CONFIG_NO_CONFIG_BLOBS
224 CFLAGS
+= -DCONFIG_NO_CONFIG_BLOBS
227 ifdef CONFIG_NO_SCAN_PROCESSING
228 CFLAGS
+= -DCONFIG_NO_SCAN_PROCESSING
232 CFLAGS
+= -DCONFIG_SUITEB
237 ifdef CONFIG_SUITEB192
238 CFLAGS
+= -DCONFIG_SUITEB192
243 CFLAGS
+= -DCONFIG_OCV
244 OBJS
+= ..
/src
/common
/ocv.o
248 ifdef CONFIG_IEEE80211W
249 CFLAGS
+= -DCONFIG_IEEE80211W
254 ifdef CONFIG_IEEE80211R
255 CFLAGS
+= -DCONFIG_IEEE80211R
256 OBJS
+= ..
/src
/rsn_supp
/wpa_ft.o
267 CFLAGS
+= -DCONFIG_MESH
274 CFLAGS
+= -DCONFIG_SAE
275 OBJS
+= ..
/src
/common
/sae.o
282 CFLAGS
+= -DCONFIG_DPP
283 OBJS
+= ..
/src
/common
/dpp.o
284 OBJS
+= dpp_supplicant.o
286 NEED_HMAC_SHA256_KDF
=y
287 NEED_HMAC_SHA384_KDF
=y
288 NEED_HMAC_SHA512_KDF
=y
296 CFLAGS
+= -DCONFIG_DPP2
301 CFLAGS
+= -DCONFIG_OWE
303 NEED_HMAC_SHA256_KDF
=y
304 NEED_HMAC_SHA384_KDF
=y
305 NEED_HMAC_SHA512_KDF
=y
312 CFLAGS
+= -DCONFIG_FILS
315 ifdef CONFIG_FILS_SK_PFS
316 CFLAGS
+= -DCONFIG_FILS_SK_PFS
326 CFLAGS
+= -DCONFIG_WNM
331 CFLAGS
+= -DCONFIG_TDLS
332 OBJS
+= ..
/src
/rsn_supp
/tdls.o
337 ifdef CONFIG_TDLS_TESTING
338 CFLAGS
+= -DCONFIG_TDLS_TESTING
341 ifdef CONFIG_PMKSA_CACHE_EXTERNAL
342 CFLAGS
+= -DCONFIG_PMKSA_CACHE_EXTERNAL
346 OBJS
+= ..
/src
/rsn_supp
/wpa.o
347 OBJS
+= ..
/src
/rsn_supp
/preauth.o
348 OBJS
+= ..
/src
/rsn_supp
/pmksa_cache.o
349 OBJS
+= ..
/src
/rsn_supp
/wpa_ie.o
350 OBJS
+= ..
/src
/common
/wpa_common.o
356 CFLAGS
+= -DCONFIG_NO_WPA
357 ifeq ($(CONFIG_TLS
), internal
)
363 ifdef CONFIG_IBSS_RSN
364 NEED_RSN_AUTHENTICATOR
=y
365 CFLAGS
+= -DCONFIG_IBSS_RSN
366 CFLAGS
+= -DCONFIG_NO_VLAN
370 ifdef CONFIG_MATCH_IFACE
371 CFLAGS
+= -DCONFIG_MATCH_IFACE
375 OBJS
+= p2p_supplicant.o
376 OBJS
+= p2p_supplicant_sd.o
377 OBJS
+= ..
/src
/p2p
/p2p.o
378 OBJS
+= ..
/src
/p2p
/p2p_utils.o
379 OBJS
+= ..
/src
/p2p
/p2p_parse.o
380 OBJS
+= ..
/src
/p2p
/p2p_build.o
381 OBJS
+= ..
/src
/p2p
/p2p_go_neg.o
382 OBJS
+= ..
/src
/p2p
/p2p_sd.o
383 OBJS
+= ..
/src
/p2p
/p2p_pd.o
384 OBJS
+= ..
/src
/p2p
/p2p_invitation.o
385 OBJS
+= ..
/src
/p2p
/p2p_dev_disc.o
386 OBJS
+= ..
/src
/p2p
/p2p_group.o
387 OBJS
+= ..
/src
/ap
/p2p_hostapd.o
388 CFLAGS
+= -DCONFIG_P2P
393 ifdef CONFIG_P2P_STRICT
394 CFLAGS
+= -DCONFIG_P2P_STRICT
398 ifdef CONFIG_WIFI_DISPLAY
399 CFLAGS
+= -DCONFIG_WIFI_DISPLAY
400 OBJS
+= wifi_display.o
404 OBJS
+= hs20_supplicant.o
405 CFLAGS
+= -DCONFIG_HS20
406 CONFIG_INTERWORKING
=y
410 ifdef CONFIG_INTERWORKING
411 OBJS
+= interworking.o
412 CFLAGS
+= -DCONFIG_INTERWORKING
416 ifdef CONFIG_NO_ROAMING
417 CFLAGS
+= -DCONFIG_NO_ROAMING
420 include ..
/src
/drivers
/drivers.mak
422 OBJS_d
+= $(DRV_BOTH_OBJS
)
423 CFLAGS
+= $(DRV_BOTH_CFLAGS
)
424 LDFLAGS
+= $(DRV_BOTH_LDFLAGS
)
425 LIBS
+= $(DRV_BOTH_LIBS
)
428 OBJS_d
+= $(DRV_WPA_OBJS
)
429 CFLAGS
+= $(DRV_WPA_CFLAGS
)
430 LDFLAGS
+= $(DRV_WPA_LDFLAGS
)
431 LIBS
+= $(DRV_WPA_LIBS
)
434 ifndef CONFIG_L2_PACKET
435 CONFIG_L2_PACKET
=linux
438 OBJS_l2
+= ..
/src
/l2_packet
/l2_packet_
$(CONFIG_L2_PACKET
).o
440 ifeq ($(CONFIG_L2_PACKET
), pcap
)
442 CFLAGS
+= -DCONFIG_WINPCAP
443 LIBS
+= -lwpcap
-lpacket
446 LIBS
+= -ldnet
-lpcap
450 ifeq ($(CONFIG_L2_PACKET
), winpcap
)
451 LIBS
+= -lwpcap
-lpacket
455 ifeq ($(CONFIG_L2_PACKET
), freebsd
)
460 CFLAGS
+= -DCONFIG_ERP
462 NEED_HMAC_SHA256_KDF
=y
467 ifeq ($(CONFIG_EAP_TLS
), dyn
)
468 CFLAGS
+= -DEAP_TLS_DYNAMIC
469 EAPDYN
+= ..
/src
/eap_peer
/eap_tls.so
472 OBJS
+= ..
/src
/eap_peer
/eap_tls.o
475 CONFIG_IEEE8021X_EAPOL
=y
478 ifdef CONFIG_EAP_UNAUTH_TLS
480 CFLAGS
+= -DEAP_UNAUTH_TLS
481 ifndef CONFIG_EAP_TLS
482 OBJS
+= ..
/src
/eap_peer
/eap_tls.o
485 CONFIG_IEEE8021X_EAPOL
=y
488 ifdef CONFIG_EAP_PEAP
490 ifeq ($(CONFIG_EAP_PEAP
), dyn
)
491 CFLAGS
+= -DEAP_PEAP_DYNAMIC
492 EAPDYN
+= ..
/src
/eap_peer
/eap_peap.so
495 OBJS
+= ..
/src
/eap_peer
/eap_peap.o
496 OBJS
+= ..
/src
/eap_common
/eap_peap_common.o
499 CONFIG_IEEE8021X_EAPOL
=y
502 ifdef CONFIG_EAP_TTLS
504 ifeq ($(CONFIG_EAP_TTLS
), dyn
)
505 CFLAGS
+= -DEAP_TTLS_DYNAMIC
506 EAPDYN
+= ..
/src
/eap_peer
/eap_ttls.so
509 OBJS
+= ..
/src
/eap_peer
/eap_ttls.o
516 CONFIG_IEEE8021X_EAPOL
=y
521 ifeq ($(CONFIG_EAP_MD5
), dyn
)
522 CFLAGS
+= -DEAP_MD5_DYNAMIC
523 EAPDYN
+= ..
/src
/eap_peer
/eap_md5.so
526 OBJS
+= ..
/src
/eap_peer
/eap_md5.o
529 CONFIG_IEEE8021X_EAPOL
=y
532 # backwards compatibility for old spelling
533 ifdef CONFIG_MSCHAPV2
534 ifndef CONFIG_EAP_MSCHAPV2
535 CONFIG_EAP_MSCHAPV2
=y
539 ifdef CONFIG_EAP_MSCHAPV2
541 ifeq ($(CONFIG_EAP_MSCHAPV2
), dyn
)
542 CFLAGS
+= -DEAP_MSCHAPv2_DYNAMIC
543 EAPDYN
+= ..
/src
/eap_peer
/eap_mschapv2.so
544 EAPDYN
+= ..
/src
/eap_peer
/mschapv2.so
546 CFLAGS
+= -DEAP_MSCHAPv2
547 OBJS
+= ..
/src
/eap_peer
/eap_mschapv2.o
548 OBJS
+= ..
/src
/eap_peer
/mschapv2.o
551 CONFIG_IEEE8021X_EAPOL
=y
556 ifeq ($(CONFIG_EAP_GTC
), dyn
)
557 CFLAGS
+= -DEAP_GTC_DYNAMIC
558 EAPDYN
+= ..
/src
/eap_peer
/eap_gtc.so
561 OBJS
+= ..
/src
/eap_peer
/eap_gtc.o
563 CONFIG_IEEE8021X_EAPOL
=y
568 ifeq ($(CONFIG_EAP_OTP
), dyn
)
569 CFLAGS
+= -DEAP_OTP_DYNAMIC
570 EAPDYN
+= ..
/src
/eap_peer
/eap_otp.so
573 OBJS
+= ..
/src
/eap_peer
/eap_otp.o
575 CONFIG_IEEE8021X_EAPOL
=y
580 ifeq ($(CONFIG_EAP_SIM
), dyn
)
581 CFLAGS
+= -DEAP_SIM_DYNAMIC
582 EAPDYN
+= ..
/src
/eap_peer
/eap_sim.so
585 OBJS
+= ..
/src
/eap_peer
/eap_sim.o
587 CONFIG_IEEE8021X_EAPOL
=y
588 CONFIG_EAP_SIM_COMMON
=y
592 ifdef CONFIG_EAP_LEAP
594 ifeq ($(CONFIG_EAP_LEAP
), dyn
)
595 CFLAGS
+= -DEAP_LEAP_DYNAMIC
596 EAPDYN
+= ..
/src
/eap_peer
/eap_leap.so
599 OBJS
+= ..
/src
/eap_peer
/eap_leap.o
602 CONFIG_IEEE8021X_EAPOL
=y
607 ifeq ($(CONFIG_EAP_PSK
), dyn
)
608 CFLAGS
+= -DEAP_PSK_DYNAMIC
609 EAPDYN
+= ..
/src
/eap_peer
/eap_psk.so
612 OBJS
+= ..
/src
/eap_peer
/eap_psk.o ..
/src
/eap_common
/eap_psk_common.o
614 CONFIG_IEEE8021X_EAPOL
=y
623 ifeq ($(CONFIG_EAP_AKA
), dyn
)
624 CFLAGS
+= -DEAP_AKA_DYNAMIC
625 EAPDYN
+= ..
/src
/eap_peer
/eap_aka.so
628 OBJS
+= ..
/src
/eap_peer
/eap_aka.o
630 CONFIG_IEEE8021X_EAPOL
=y
631 CONFIG_EAP_SIM_COMMON
=y
635 ifdef CONFIG_EAP_PROXY
636 CFLAGS
+= -DCONFIG_EAP_PROXY
637 OBJS
+= ..
/src
/eap_peer
/eap_proxy_
$(CONFIG_EAP_PROXY
).o
638 include eap_proxy_
$(CONFIG_EAP_PROXY
).mak
639 CONFIG_IEEE8021X_EAPOL
=y
642 ifdef CONFIG_EAP_AKA_PRIME
644 ifeq ($(CONFIG_EAP_AKA_PRIME
), dyn
)
645 CFLAGS
+= -DEAP_AKA_PRIME_DYNAMIC
647 CFLAGS
+= -DEAP_AKA_PRIME
652 ifdef CONFIG_EAP_SIM_COMMON
653 OBJS
+= ..
/src
/eap_common
/eap_sim_common.o
658 ifdef CONFIG_EAP_FAST
660 ifeq ($(CONFIG_EAP_FAST
), dyn
)
661 CFLAGS
+= -DEAP_FAST_DYNAMIC
662 EAPDYN
+= ..
/src
/eap_peer
/eap_fast.so
663 EAPDYN
+= ..
/src
/eap_common
/eap_fast_common.o
666 OBJS
+= ..
/src
/eap_peer
/eap_fast.o ..
/src
/eap_peer
/eap_fast_pac.o
667 OBJS
+= ..
/src
/eap_common
/eap_fast_common.o
670 CONFIG_IEEE8021X_EAPOL
=y
676 ifeq ($(CONFIG_EAP_PAX
), dyn
)
677 CFLAGS
+= -DEAP_PAX_DYNAMIC
678 EAPDYN
+= ..
/src
/eap_peer
/eap_pax.so
681 OBJS
+= ..
/src
/eap_peer
/eap_pax.o ..
/src
/eap_common
/eap_pax_common.o
683 CONFIG_IEEE8021X_EAPOL
=y
686 ifdef CONFIG_EAP_SAKE
688 ifeq ($(CONFIG_EAP_SAKE
), dyn
)
689 CFLAGS
+= -DEAP_SAKE_DYNAMIC
690 EAPDYN
+= ..
/src
/eap_peer
/eap_sake.so
693 OBJS
+= ..
/src
/eap_peer
/eap_sake.o ..
/src
/eap_common
/eap_sake_common.o
695 CONFIG_IEEE8021X_EAPOL
=y
698 ifdef CONFIG_EAP_GPSK
700 ifeq ($(CONFIG_EAP_GPSK
), dyn
)
701 CFLAGS
+= -DEAP_GPSK_DYNAMIC
702 EAPDYN
+= ..
/src
/eap_peer
/eap_gpsk.so
705 OBJS
+= ..
/src
/eap_peer
/eap_gpsk.o ..
/src
/eap_common
/eap_gpsk_common.o
707 CONFIG_IEEE8021X_EAPOL
=y
708 ifdef CONFIG_EAP_GPSK_SHA256
709 CFLAGS
+= -DEAP_GPSK_SHA256
717 ifeq ($(CONFIG_TLS
), wolfssl
)
718 CFLAGS
+= -DCONFIG_ECC
720 OBJS
+= ..
/src
/eap_peer
/eap_pwd.o ..
/src
/eap_common
/eap_pwd_common.o
721 CONFIG_IEEE8021X_EAPOL
=y
729 ifeq ($(CONFIG_EAP_EKE
), dyn
)
730 CFLAGS
+= -DEAP_EKE_DYNAMIC
731 EAPDYN
+= ..
/src
/eap_peer
/eap_eke.so
734 OBJS
+= ..
/src
/eap_peer
/eap_eke.o ..
/src
/eap_common
/eap_eke_common.o
736 CONFIG_IEEE8021X_EAPOL
=y
745 CFLAGS
+= -DCONFIG_WPS
-DEAP_WSC
746 OBJS
+= wps_supplicant.o
747 OBJS
+= ..
/src
/utils
/uuid.o
748 OBJS
+= ..
/src
/eap_peer
/eap_wsc.o ..
/src
/eap_common
/eap_wsc_common.o
749 OBJS
+= ..
/src
/wps
/wps.o
750 OBJS
+= ..
/src
/wps
/wps_common.o
751 OBJS
+= ..
/src
/wps
/wps_attr_parse.o
752 OBJS
+= ..
/src
/wps
/wps_attr_build.o
753 OBJS
+= ..
/src
/wps
/wps_attr_process.o
754 OBJS
+= ..
/src
/wps
/wps_dev_attr.o
755 OBJS
+= ..
/src
/wps
/wps_enrollee.o
756 OBJS
+= ..
/src
/wps
/wps_registrar.o
757 CONFIG_IEEE8021X_EAPOL
=y
765 CFLAGS
+= -DCONFIG_WPS_NFC
766 OBJS
+= ..
/src
/wps
/ndef.o
771 CFLAGS
+= -DCONFIG_WPS_OOB
776 CFLAGS
+= -DCONFIG_WPS_ER
777 OBJS
+= ..
/src
/wps
/wps_er.o
778 OBJS
+= ..
/src
/wps
/wps_er_ssdp.o
781 ifdef CONFIG_WPS_UPNP
782 CFLAGS
+= -DCONFIG_WPS_UPNP
783 OBJS
+= ..
/src
/wps
/wps_upnp.o
784 OBJS
+= ..
/src
/wps
/wps_upnp_ssdp.o
785 OBJS
+= ..
/src
/wps
/wps_upnp_web.o
786 OBJS
+= ..
/src
/wps
/wps_upnp_event.o
787 OBJS
+= ..
/src
/wps
/wps_upnp_ap.o
788 OBJS
+= ..
/src
/wps
/upnp_xml.o
789 OBJS
+= ..
/src
/wps
/httpread.o
790 OBJS
+= ..
/src
/wps
/http_client.o
791 OBJS
+= ..
/src
/wps
/http_server.o
794 ifdef CONFIG_WPS_STRICT
795 CFLAGS
+= -DCONFIG_WPS_STRICT
796 OBJS
+= ..
/src
/wps
/wps_validate.o
799 ifdef CONFIG_WPS_TESTING
800 CFLAGS
+= -DCONFIG_WPS_TESTING
803 ifdef CONFIG_WPS_REG_DISABLE_OPEN
804 CFLAGS
+= -DCONFIG_WPS_REG_DISABLE_OPEN
809 ifdef CONFIG_EAP_IKEV2
811 ifeq ($(CONFIG_EAP_IKEV2
), dyn
)
812 CFLAGS
+= -DEAP_IKEV2_DYNAMIC
813 EAPDYN
+= ..
/src
/eap_peer
/eap_ikev2.so ..
/src
/eap_peer
/ikev2.o
814 EAPDYN
+= ..
/src
/eap_common
/eap_ikev2_common.o ..
/src
/eap_common
/ikev2_common.o
816 CFLAGS
+= -DEAP_IKEV2
817 OBJS
+= ..
/src
/eap_peer
/eap_ikev2.o ..
/src
/eap_peer
/ikev2.o
818 OBJS
+= ..
/src
/eap_common
/eap_ikev2_common.o ..
/src
/eap_common
/ikev2_common.o
820 CONFIG_IEEE8021X_EAPOL
=y
827 ifdef CONFIG_EAP_VENDOR_TEST
828 ifeq ($(CONFIG_EAP_VENDOR_TEST
), dyn
)
829 CFLAGS
+= -DEAP_VENDOR_TEST_DYNAMIC
830 EAPDYN
+= ..
/src
/eap_peer
/eap_vendor_test.so
832 CFLAGS
+= -DEAP_VENDOR_TEST
833 OBJS
+= ..
/src
/eap_peer
/eap_vendor_test.o
835 CONFIG_IEEE8021X_EAPOL
=y
841 OBJS
+= ..
/src
/eap_peer
/eap_tnc.o
842 OBJS
+= ..
/src
/eap_peer
/tncc.o
844 ifndef CONFIG_NATIVE_WINDOWS
845 ifndef CONFIG_DRIVER_BSD
852 CFLAGS
+= -DCONFIG_MACSEC
853 CONFIG_IEEE8021X_EAPOL
=y
859 OBJS
+= ..
/src
/pae
/ieee802_1x_cp.o
860 OBJS
+= ..
/src
/pae
/ieee802_1x_kay.o
861 OBJS
+= ..
/src
/pae
/ieee802_1x_key.o
862 OBJS
+= ..
/src
/pae
/ieee802_1x_secy_ops.o
865 ifdef CONFIG_IEEE8021X_EAPOL
866 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
867 CFLAGS
+= -DIEEE8021X_EAPOL
868 OBJS
+= ..
/src
/eapol_supp
/eapol_supp_sm.o
869 OBJS
+= ..
/src
/eap_peer
/eap.o ..
/src
/eap_peer
/eap_methods.o
871 ifdef CONFIG_DYNAMIC_EAP_METHODS
872 CFLAGS
+= -DCONFIG_DYNAMIC_EAP_METHODS
873 LIBS
+= -ldl
-rdynamic
879 NEED_RSN_AUTHENTICATOR
=y
880 CFLAGS
+= -DCONFIG_AP
882 CFLAGS
+= -DCONFIG_NO_RADIUS
883 CFLAGS
+= -DCONFIG_NO_ACCOUNTING
884 CFLAGS
+= -DCONFIG_NO_VLAN
885 OBJS
+= ..
/src
/ap
/hostapd.o
886 OBJS
+= ..
/src
/ap
/wpa_auth_glue.o
887 OBJS
+= ..
/src
/ap
/utils.o
888 OBJS
+= ..
/src
/ap
/authsrv.o
889 OBJS
+= ..
/src
/ap
/ap_config.o
890 OBJS
+= ..
/src
/utils
/ip_addr.o
891 OBJS
+= ..
/src
/ap
/sta_info.o
892 OBJS
+= ..
/src
/ap
/tkip_countermeasures.o
893 OBJS
+= ..
/src
/ap
/ap_mlme.o
894 OBJS
+= ..
/src
/ap
/ieee802_1x.o
895 OBJS
+= ..
/src
/eapol_auth
/eapol_auth_sm.o
896 OBJS
+= ..
/src
/ap
/ieee802_11_auth.o
897 OBJS
+= ..
/src
/ap
/ieee802_11_shared.o
898 OBJS
+= ..
/src
/ap
/drv_callbacks.o
899 OBJS
+= ..
/src
/ap
/ap_drv_ops.o
900 OBJS
+= ..
/src
/ap
/beacon.o
901 OBJS
+= ..
/src
/ap
/bss_load.o
902 OBJS
+= ..
/src
/ap
/eap_user_db.o
903 OBJS
+= ..
/src
/ap
/neighbor_db.o
904 OBJS
+= ..
/src
/ap
/rrm.o
905 ifdef CONFIG_IEEE80211N
906 OBJS
+= ..
/src
/ap
/ieee802_11_ht.o
907 ifdef CONFIG_IEEE80211AC
908 OBJS
+= ..
/src
/ap
/ieee802_11_vht.o
910 ifdef CONFIG_IEEE80211AX
911 OBJS
+= ..
/src
/ap
/ieee802_11_he.o
915 CFLAGS
+= -DCONFIG_WNM_AP
916 OBJS
+= ..
/src
/ap
/wnm_ap.o
919 OBJS
+= ..
/src
/ap
/mbo_ap.o
922 OBJS
+= ..
/src
/ap
/fils_hlp.o
924 ifdef CONFIG_CTRL_IFACE
925 OBJS
+= ..
/src
/ap
/ctrl_iface_ap.o
928 CFLAGS
+= -DEAP_SERVER
-DEAP_SERVER_IDENTITY
929 OBJS
+= ..
/src
/eap_server
/eap_server.o
930 OBJS
+= ..
/src
/eap_server
/eap_server_identity.o
931 OBJS
+= ..
/src
/eap_server
/eap_server_methods.o
933 ifdef CONFIG_IEEE80211N
934 CFLAGS
+= -DCONFIG_IEEE80211N
935 ifdef CONFIG_IEEE80211AC
936 CFLAGS
+= -DCONFIG_IEEE80211AC
938 ifdef CONFIG_IEEE80211AX
939 CFLAGS
+= -DCONFIG_IEEE80211AX
944 OBJS
+= ..
/src
/ap
/wmm.o
945 OBJS
+= ..
/src
/ap
/ap_list.o
946 OBJS
+= ..
/src
/ap
/ieee802_11.o
947 OBJS
+= ..
/src
/ap
/hw_features.o
948 OBJS
+= ..
/src
/ap
/dfs.o
949 CFLAGS
+= -DNEED_AP_MLME
952 CFLAGS
+= -DEAP_SERVER_WSC
953 OBJS
+= ..
/src
/ap
/wps_hostapd.o
954 OBJS
+= ..
/src
/eap_server
/eap_server_wsc.o
957 OBJS
+= ..
/src
/ap
/dpp_hostapd.o
958 OBJS
+= ..
/src
/ap
/gas_query_ap.o
960 ifdef CONFIG_INTERWORKING
961 OBJS
+= ..
/src
/ap
/gas_serv.o
964 OBJS
+= ..
/src
/ap
/hs20.o
970 CFLAGS
+= -DCONFIG_MBO
973 ifdef NEED_RSN_AUTHENTICATOR
974 CFLAGS
+= -DCONFIG_NO_RADIUS
976 OBJS
+= ..
/src
/ap
/wpa_auth.o
977 OBJS
+= ..
/src
/ap
/wpa_auth_ie.o
978 OBJS
+= ..
/src
/ap
/pmksa_cache_auth.o
982 CFLAGS
+= -DCONFIG_ACS
983 OBJS
+= ..
/src
/ap
/acs.o
988 # PC/SC interface for smartcards (USIM, GSM SIM)
989 CFLAGS
+= -DPCSC_FUNCS
-I
/usr
/include/PCSC
990 OBJS
+= ..
/src
/utils
/pcsc_funcs.o
991 # -lpthread may not be needed depending on how pcsc-lite was configured
992 ifdef CONFIG_NATIVE_WINDOWS
993 #Once MinGW gets support for WinScard, -lwinscard could be used instead of the
994 #dynamic symbol loading that is now used in pcsc_funcs.c
998 LIBS
+= -framework PCSC
1000 LIBS
+= -lpcsclite
-lpthread
1005 ifdef CONFIG_SIM_SIMULATOR
1006 CFLAGS
+= -DCONFIG_SIM_SIMULATOR
1010 ifdef CONFIG_USIM_SIMULATOR
1011 CFLAGS
+= -DCONFIG_USIM_SIMULATOR
1016 OBJS
+= ..
/src
/crypto
/milenage.o
1021 CFLAGS
+= -DPKCS12_FUNCS
1024 ifdef CONFIG_SMARTCARD
1025 CFLAGS
+= -DCONFIG_SMARTCARD
1028 ifdef NEED_DRAGONFLY
1029 OBJS
+= ..
/src
/common
/dragonfly.o
1033 OBJS
+= ..
/src
/crypto
/ms_funcs.o
1039 OBJS
+= ..
/src
/eap_common
/chap.o
1044 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
1045 OBJS
+= ..
/src
/eap_peer
/eap_tls_common.o
1058 CFLAGS
+= -DCONFIG_TLSV11
1062 CFLAGS
+= -DCONFIG_TLSV12
1066 ifeq ($(CONFIG_TLS
), wolfssl
)
1068 CFLAGS
+= -DWOLFSSL_DER_LOAD
-I
/usr
/local
/include/wolfssl
1069 OBJS
+= ..
/src
/crypto
/tls_wolfssl.o
1071 OBJS
+= ..
/src
/crypto
/crypto_wolfssl.o
1072 OBJS_p
+= ..
/src
/crypto
/crypto_wolfssl.o
1073 ifdef NEED_FIPS186_2_PRF
1074 OBJS
+= ..
/src
/crypto
/fips_prf_wolfssl.o
1076 NEED_TLS_PRF_SHA256
=y
1077 LIBS
+= -lwolfssl
-lm
1078 LIBS_p
+= -lwolfssl
-lm
1081 ifeq ($(CONFIG_TLS
), openssl
)
1083 CFLAGS
+= -DEAP_TLS_OPENSSL
1084 OBJS
+= ..
/src
/crypto
/tls_openssl.o
1085 OBJS
+= ..
/src
/crypto
/tls_openssl_ocsp.o
1088 OBJS
+= ..
/src
/crypto
/crypto_openssl.o
1089 OBJS_p
+= ..
/src
/crypto
/crypto_openssl.o
1090 OBJS_priv
+= ..
/src
/crypto
/crypto_openssl.o
1091 ifdef NEED_FIPS186_2_PRF
1092 OBJS
+= ..
/src
/crypto
/fips_prf_openssl.o
1095 NEED_TLS_PRF_SHA256
=y
1098 ifdef CONFIG_TLS_ADD_DL
1102 ifndef CONFIG_TLS_DEFAULT_CIPHERS
1103 CONFIG_TLS_DEFAULT_CIPHERS
= "DEFAULT:!EXP:!LOW"
1105 CFLAGS
+= -DTLS_DEFAULT_CIPHERS
=\"$(CONFIG_TLS_DEFAULT_CIPHERS
)\"
1108 ifeq ($(CONFIG_TLS
), gnutls
)
1109 ifndef CONFIG_CRYPTO
1110 # default to libgcrypt
1111 CONFIG_CRYPTO
=gnutls
1114 OBJS
+= ..
/src
/crypto
/tls_gnutls.o
1115 LIBS
+= -lgnutls
-lgpg-error
1117 OBJS
+= ..
/src
/crypto
/crypto_
$(CONFIG_CRYPTO
).o
1118 OBJS_p
+= ..
/src
/crypto
/crypto_
$(CONFIG_CRYPTO
).o
1119 OBJS_priv
+= ..
/src
/crypto
/crypto_
$(CONFIG_CRYPTO
).o
1120 ifdef NEED_FIPS186_2_PRF
1121 OBJS
+= ..
/src
/crypto
/fips_prf_internal.o
1122 SHA1OBJS
+= ..
/src
/crypto
/sha1-internal.o
1124 ifeq ($(CONFIG_CRYPTO
), gnutls
)
1127 CONFIG_INTERNAL_RC4
=y
1128 CONFIG_INTERNAL_DH_GROUP5
=y
1130 ifeq ($(CONFIG_CRYPTO
), nettle
)
1131 LIBS
+= -lnettle
-lgmp
1132 LIBS_p
+= -lnettle
-lgmp
1133 CONFIG_INTERNAL_RC4
=y
1134 CONFIG_INTERNAL_DH_GROUP5
=y
1138 ifeq ($(CONFIG_TLS
), internal
)
1139 ifndef CONFIG_CRYPTO
1140 CONFIG_CRYPTO
=internal
1143 OBJS
+= ..
/src
/crypto
/crypto_internal-rsa.o
1144 OBJS
+= ..
/src
/crypto
/tls_internal.o
1145 OBJS
+= ..
/src
/tls
/tlsv1_common.o
1146 OBJS
+= ..
/src
/tls
/tlsv1_record.o
1147 OBJS
+= ..
/src
/tls
/tlsv1_cred.o
1148 OBJS
+= ..
/src
/tls
/tlsv1_client.o
1149 OBJS
+= ..
/src
/tls
/tlsv1_client_write.o
1150 OBJS
+= ..
/src
/tls
/tlsv1_client_read.o
1151 OBJS
+= ..
/src
/tls
/tlsv1_client_ocsp.o
1152 OBJS
+= ..
/src
/tls
/asn1.o
1153 OBJS
+= ..
/src
/tls
/rsa.o
1154 OBJS
+= ..
/src
/tls
/x509v3.o
1155 OBJS
+= ..
/src
/tls
/pkcs1.o
1156 OBJS
+= ..
/src
/tls
/pkcs5.o
1157 OBJS
+= ..
/src
/tls
/pkcs8.o
1162 NEED_TLS_PRF_SHA256
=y
1166 CFLAGS
+= -DCONFIG_TLS_INTERNAL_CLIENT
1170 OBJS
+= ..
/src
/crypto
/crypto_internal-cipher.o
1173 OBJS
+= ..
/src
/crypto
/crypto_internal-modexp.o
1174 OBJS
+= ..
/src
/tls
/bignum.o
1176 ifeq ($(CONFIG_CRYPTO
), libtomcrypt
)
1177 OBJS
+= ..
/src
/crypto
/crypto_libtomcrypt.o
1178 OBJS_p
+= ..
/src
/crypto
/crypto_libtomcrypt.o
1179 LIBS
+= -ltomcrypt
-ltfm
1180 LIBS_p
+= -ltomcrypt
-ltfm
1181 CONFIG_INTERNAL_SHA256
=y
1182 CONFIG_INTERNAL_RC4
=y
1183 CONFIG_INTERNAL_DH_GROUP5
=y
1185 ifeq ($(CONFIG_CRYPTO
), internal
)
1186 OBJS
+= ..
/src
/crypto
/crypto_internal.o
1187 OBJS_p
+= ..
/src
/crypto
/crypto_internal.o
1189 CFLAGS
+= -DCONFIG_CRYPTO_INTERNAL
1190 ifdef CONFIG_INTERNAL_LIBTOMMATH
1191 CFLAGS
+= -DCONFIG_INTERNAL_LIBTOMMATH
1192 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1193 CFLAGS
+= -DLTM_FAST
1199 CONFIG_INTERNAL_AES
=y
1200 CONFIG_INTERNAL_DES
=y
1201 CONFIG_INTERNAL_SHA1
=y
1202 CONFIG_INTERNAL_MD4
=y
1203 CONFIG_INTERNAL_MD5
=y
1204 CONFIG_INTERNAL_SHA256
=y
1205 CONFIG_INTERNAL_SHA384
=y
1206 CONFIG_INTERNAL_SHA512
=y
1207 CONFIG_INTERNAL_RC4
=y
1208 CONFIG_INTERNAL_DH_GROUP5
=y
1210 ifeq ($(CONFIG_CRYPTO
), cryptoapi
)
1211 OBJS
+= ..
/src
/crypto
/crypto_cryptoapi.o
1212 OBJS_p
+= ..
/src
/crypto
/crypto_cryptoapi.o
1213 CFLAGS
+= -DCONFIG_CRYPTO_CRYPTOAPI
1214 CONFIG_INTERNAL_SHA256
=y
1215 CONFIG_INTERNAL_RC4
=y
1219 ifeq ($(CONFIG_TLS
), linux
)
1220 OBJS
+= ..
/src
/crypto
/crypto_linux.o
1221 OBJS_p
+= ..
/src
/crypto
/crypto_linux.o
1223 OBJS
+= ..
/src
/crypto
/crypto_internal-rsa.o
1224 OBJS
+= ..
/src
/crypto
/tls_internal.o
1225 OBJS
+= ..
/src
/tls
/tlsv1_common.o
1226 OBJS
+= ..
/src
/tls
/tlsv1_record.o
1227 OBJS
+= ..
/src
/tls
/tlsv1_cred.o
1228 OBJS
+= ..
/src
/tls
/tlsv1_client.o
1229 OBJS
+= ..
/src
/tls
/tlsv1_client_write.o
1230 OBJS
+= ..
/src
/tls
/tlsv1_client_read.o
1231 OBJS
+= ..
/src
/tls
/tlsv1_client_ocsp.o
1232 OBJS
+= ..
/src
/tls
/asn1.o
1233 OBJS
+= ..
/src
/tls
/rsa.o
1234 OBJS
+= ..
/src
/tls
/x509v3.o
1235 OBJS
+= ..
/src
/tls
/pkcs1.o
1236 OBJS
+= ..
/src
/tls
/pkcs5.o
1237 OBJS
+= ..
/src
/tls
/pkcs8.o
1242 NEED_TLS_PRF_SHA256
=y
1246 CFLAGS
+= -DCONFIG_TLS_INTERNAL_CLIENT
1249 OBJS
+= ..
/src
/crypto
/crypto_internal-modexp.o
1250 OBJS
+= ..
/src
/tls
/bignum.o
1251 CFLAGS
+= -DCONFIG_INTERNAL_LIBTOMMATH
1252 CFLAGS
+= -DLTM_FAST
1254 CONFIG_INTERNAL_DH_GROUP5
=y
1255 ifdef NEED_FIPS186_2_PRF
1256 OBJS
+= ..
/src
/crypto
/fips_prf_internal.o
1257 OBJS
+= ..
/src
/crypto
/sha1-internal.o
1261 ifeq ($(CONFIG_TLS
), none
)
1263 OBJS
+= ..
/src
/crypto
/tls_none.o
1264 CFLAGS
+= -DEAP_TLS_NONE
1265 CONFIG_INTERNAL_AES
=y
1266 CONFIG_INTERNAL_SHA1
=y
1267 CONFIG_INTERNAL_MD5
=y
1269 OBJS
+= ..
/src
/crypto
/crypto_none.o
1270 OBJS_p
+= ..
/src
/crypto
/crypto_none.o
1271 CONFIG_INTERNAL_SHA256
=y
1272 CONFIG_INTERNAL_RC4
=y
1276 ifdef CONFIG_SMARTCARD
1277 ifndef CONFIG_NATIVE_WINDOWS
1278 ifneq ($(CONFIG_L2_PACKET
), freebsd
)
1286 OBJS
+= ..
/src
/crypto
/tls_none.o
1287 ifeq ($(CONFIG_TLS
), internal
)
1288 CONFIG_INTERNAL_AES
=y
1289 CONFIG_INTERNAL_SHA1
=y
1290 CONFIG_INTERNAL_MD5
=y
1291 CONFIG_INTERNAL_RC4
=y
1295 AESOBJS
= # none so far (see below)
1296 ifdef CONFIG_INTERNAL_AES
1297 AESOBJS
+= ..
/src
/crypto
/aes-internal.o ..
/src
/crypto
/aes-internal-dec.o
1300 ifneq ($(CONFIG_TLS
), openssl
)
1301 ifneq ($(CONFIG_TLS
), wolfssl
)
1302 NEED_INTERNAL_AES_WRAP
=y
1305 ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
1306 # Seems to be needed at least with BoringSSL
1307 NEED_INTERNAL_AES_WRAP
=y
1308 CFLAGS
+= -DCONFIG_OPENSSL_INTERNAL_AES_WRAP
1311 # Have to use internal AES key wrap routines to use OpenSSL EVP since the
1312 # OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode.
1313 NEED_INTERNAL_AES_WRAP
=y
1316 ifdef NEED_INTERNAL_AES_WRAP
1317 ifneq ($(CONFIG_TLS
), linux
)
1318 AESOBJS
+= ..
/src
/crypto
/aes-unwrap.o
1322 AESOBJS
+= ..
/src
/crypto
/aes-eax.o
1327 AESOBJS
+= ..
/src
/crypto
/aes-siv.o
1332 AESOBJS
+= ..
/src
/crypto
/aes-ctr.o
1334 ifdef NEED_AES_ENCBLOCK
1335 AESOBJS
+= ..
/src
/crypto
/aes-encblock.o
1337 ifdef NEED_AES_OMAC1
1339 ifdef CONFIG_OPENSSL_CMAC
1340 CFLAGS
+= -DCONFIG_OPENSSL_CMAC
1342 ifneq ($(CONFIG_TLS
), linux
)
1343 ifneq ($(CONFIG_TLS
), wolfssl
)
1344 AESOBJS
+= ..
/src
/crypto
/aes-omac1.o
1351 ifdef NEED_INTERNAL_AES_WRAP
1352 AESOBJS
+= ..
/src
/crypto
/aes-wrap.o
1357 ifneq ($(CONFIG_TLS
), openssl
)
1358 ifneq ($(CONFIG_TLS
), linux
)
1359 ifneq ($(CONFIG_TLS
), wolfssl
)
1360 AESOBJS
+= ..
/src
/crypto
/aes-cbc.o
1366 ifdef CONFIG_INTERNAL_AES
1367 AESOBJS
+= ..
/src
/crypto
/aes-internal-enc.o
1375 ifneq ($(CONFIG_TLS
), openssl
)
1376 ifneq ($(CONFIG_TLS
), linux
)
1377 ifneq ($(CONFIG_TLS
), gnutls
)
1378 ifneq ($(CONFIG_TLS
), wolfssl
)
1379 SHA1OBJS
+= ..
/src
/crypto
/sha1.o
1384 SHA1OBJS
+= ..
/src
/crypto
/sha1-prf.o
1385 ifdef CONFIG_INTERNAL_SHA1
1386 SHA1OBJS
+= ..
/src
/crypto
/sha1-internal.o
1387 ifdef NEED_FIPS186_2_PRF
1388 SHA1OBJS
+= ..
/src
/crypto
/fips_prf_internal.o
1391 ifdef CONFIG_NO_WPA_PASSPHRASE
1392 CFLAGS
+= -DCONFIG_NO_PBKDF2
1394 ifneq ($(CONFIG_TLS
), openssl
)
1395 ifneq ($(CONFIG_TLS
), wolfssl
)
1396 SHA1OBJS
+= ..
/src
/crypto
/sha1-pbkdf2.o
1401 SHA1OBJS
+= ..
/src
/crypto
/sha1-tprf.o
1404 SHA1OBJS
+= ..
/src
/crypto
/sha1-tlsprf.o
1409 ifneq ($(CONFIG_TLS
), openssl
)
1410 ifneq ($(CONFIG_TLS
), linux
)
1411 ifneq ($(CONFIG_TLS
), gnutls
)
1412 ifneq ($(CONFIG_TLS
), wolfssl
)
1413 MD5OBJS
+= ..
/src
/crypto
/md5.o
1420 ifdef CONFIG_INTERNAL_MD5
1421 MD5OBJS
+= ..
/src
/crypto
/md5-internal.o
1424 OBJS_p
+= $(MD5OBJS
)
1425 OBJS_priv
+= $(MD5OBJS
)
1429 ifdef CONFIG_INTERNAL_MD4
1430 OBJS
+= ..
/src
/crypto
/md4-internal.o
1434 DESOBJS
= # none needed when not internal
1437 CFLAGS
+= -DCONFIG_DES
1439 ifdef CONFIG_INTERNAL_DES
1440 DESOBJS
+= ..
/src
/crypto
/des-internal.o
1445 CFLAGS
+= -DCONFIG_NO_RC4
1449 ifdef CONFIG_INTERNAL_RC4
1450 ifndef CONFIG_NO_RC4
1451 OBJS
+= ..
/src
/crypto
/rc4.o
1456 SHA256OBJS
= # none by default
1458 CFLAGS
+= -DCONFIG_SHA256
1459 ifneq ($(CONFIG_TLS
), openssl
)
1460 ifneq ($(CONFIG_TLS
), linux
)
1461 ifneq ($(CONFIG_TLS
), gnutls
)
1462 ifneq ($(CONFIG_TLS
), wolfssl
)
1463 SHA256OBJS
+= ..
/src
/crypto
/sha256.o
1468 SHA256OBJS
+= ..
/src
/crypto
/sha256-prf.o
1469 ifdef CONFIG_INTERNAL_SHA256
1470 SHA256OBJS
+= ..
/src
/crypto
/sha256-internal.o
1472 ifdef CONFIG_INTERNAL_SHA384
1473 CFLAGS
+= -DCONFIG_INTERNAL_SHA384
1474 SHA256OBJS
+= ..
/src
/crypto
/sha384-internal.o
1476 ifdef CONFIG_INTERNAL_SHA512
1477 CFLAGS
+= -DCONFIG_INTERNAL_SHA512
1478 SHA256OBJS
+= ..
/src
/crypto
/sha512-internal.o
1480 ifdef NEED_TLS_PRF_SHA256
1481 SHA256OBJS
+= ..
/src
/crypto
/sha256-tlsprf.o
1483 ifdef NEED_HMAC_SHA256_KDF
1484 CFLAGS
+= -DCONFIG_HMAC_SHA256_KDF
1485 OBJS
+= ..
/src
/crypto
/sha256-kdf.o
1487 ifdef NEED_HMAC_SHA384_KDF
1488 CFLAGS
+= -DCONFIG_HMAC_SHA384_KDF
1489 OBJS
+= ..
/src
/crypto
/sha384-kdf.o
1491 ifdef NEED_HMAC_SHA512_KDF
1492 CFLAGS
+= -DCONFIG_HMAC_SHA512_KDF
1493 OBJS
+= ..
/src
/crypto
/sha512-kdf.o
1495 OBJS
+= $(SHA256OBJS
)
1498 ifneq ($(CONFIG_TLS
), openssl
)
1499 ifneq ($(CONFIG_TLS
), linux
)
1500 ifneq ($(CONFIG_TLS
), gnutls
)
1501 ifneq ($(CONFIG_TLS
), wolfssl
)
1502 OBJS
+= ..
/src
/crypto
/sha384.o
1507 CFLAGS
+= -DCONFIG_SHA384
1508 OBJS
+= ..
/src
/crypto
/sha384-prf.o
1511 ifneq ($(CONFIG_TLS
), openssl
)
1512 ifneq ($(CONFIG_TLS
), linux
)
1513 ifneq ($(CONFIG_TLS
), gnutls
)
1514 ifneq ($(CONFIG_TLS
), wolfssl
)
1515 OBJS
+= ..
/src
/crypto
/sha512.o
1520 CFLAGS
+= -DCONFIG_SHA512
1521 OBJS
+= ..
/src
/crypto
/sha512-prf.o
1524 ifdef NEED_DH_GROUPS
1525 OBJS
+= ..
/src
/crypto
/dh_groups.o
1527 ifdef NEED_DH_GROUPS_ALL
1528 CFLAGS
+= -DALL_DH_GROUPS
1530 ifdef CONFIG_INTERNAL_DH_GROUP5
1531 ifdef NEED_DH_GROUPS
1532 OBJS
+= ..
/src
/crypto
/dh_group5.o
1537 CFLAGS
+= -DCONFIG_ECC
1540 ifdef CONFIG_NO_RANDOM_POOL
1541 CFLAGS
+= -DCONFIG_NO_RANDOM_POOL
1543 ifdef CONFIG_GETRANDOM
1544 CFLAGS
+= -DCONFIG_GETRANDOM
1546 OBJS
+= ..
/src
/crypto
/random.o
1549 ifdef CONFIG_CTRL_IFACE
1550 ifeq ($(CONFIG_CTRL_IFACE
), y
)
1551 ifdef CONFIG_NATIVE_WINDOWS
1552 CONFIG_CTRL_IFACE
=named_pipe
1554 CONFIG_CTRL_IFACE
=unix
1557 CFLAGS
+= -DCONFIG_CTRL_IFACE
1558 ifeq ($(CONFIG_CTRL_IFACE
), unix
)
1559 CFLAGS
+= -DCONFIG_CTRL_IFACE_UNIX
1560 OBJS
+= ..
/src
/common
/ctrl_iface_common.o
1562 ifeq ($(CONFIG_CTRL_IFACE
), udp
)
1563 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP
1565 ifeq ($(CONFIG_CTRL_IFACE
), udp6
)
1566 CONFIG_CTRL_IFACE
=udp
1567 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP
1568 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP_IPV6
1570 ifeq ($(CONFIG_CTRL_IFACE
), named_pipe
)
1571 CFLAGS
+= -DCONFIG_CTRL_IFACE_NAMED_PIPE
1573 ifeq ($(CONFIG_CTRL_IFACE
), udp-remote
)
1574 CONFIG_CTRL_IFACE
=udp
1575 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP
1576 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP_REMOTE
1578 ifeq ($(CONFIG_CTRL_IFACE
), udp6-remote
)
1579 CONFIG_CTRL_IFACE
=udp
1580 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP
1581 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP_REMOTE
1582 CFLAGS
+= -DCONFIG_CTRL_IFACE_UDP_IPV6
1584 OBJS
+= ctrl_iface.o ctrl_iface_
$(CONFIG_CTRL_IFACE
).o
1587 ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1588 CFLAGS
+= -DCONFIG_CTRL_IFACE_DBUS_NEW
1589 OBJS
+= dbus
/dbus_dict_helpers.o
1590 OBJS
+= dbus
/dbus_new_helpers.o
1591 OBJS
+= dbus
/dbus_new.o dbus
/dbus_new_handlers.o
1592 OBJS
+= dbus
/dbus_common.o
1594 OBJS
+= dbus
/dbus_new_handlers_wps.o
1597 OBJS
+= dbus
/dbus_new_handlers_p2p.o
1600 DBUS_LIBS
:= $(shell $(PKG_CONFIG
) --libs dbus-1
)
1603 DBUS_INCLUDE
:= $(shell $(PKG_CONFIG
) --cflags dbus-1
)
1605 ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1606 OBJS
+= dbus
/dbus_new_introspect.o
1607 CFLAGS
+= -DCONFIG_CTRL_IFACE_DBUS_INTRO
1609 CFLAGS
+= $(DBUS_INCLUDE
)
1610 LIBS
+= $(DBUS_LIBS
)
1613 ifdef CONFIG_READLINE
1614 OBJS_c
+= ..
/src
/utils
/edit_readline.o
1615 LIBS_c
+= -lreadline
-lncurses
1617 ifdef CONFIG_WPA_CLI_EDIT
1618 OBJS_c
+= ..
/src
/utils
/edit.o
1620 OBJS_c
+= ..
/src
/utils
/edit_simple.o
1624 ifdef CONFIG_NATIVE_WINDOWS
1625 CFLAGS
+= -DCONFIG_NATIVE_WINDOWS
1626 LIBS
+= -lws2_32
-lgdi32
-lcrypt32
1628 LIBS_p
+= -lws2_32
-lgdi32
1629 ifeq ($(CONFIG_CRYPTO
), cryptoapi
)
1634 ifdef CONFIG_NO_STDOUT_DEBUG
1635 CFLAGS
+= -DCONFIG_NO_STDOUT_DEBUG
1636 ifndef CONFIG_CTRL_IFACE
1637 CFLAGS
+= -DCONFIG_NO_WPA_MSG
1642 # for eapol_test only
1643 CFLAGS
+= -DCONFIG_IPV6
1646 ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR
1647 CFLAGS
+= -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR
1651 OBJS
+= ..
/src
/utils
/base64.o
1656 CFLAGS
+= -DCONFIG_SME
1659 OBJS
+= ..
/src
/common
/ieee802_11_common.o
1660 OBJS
+= ..
/src
/common
/hw_features_common.o
1662 ifdef NEED_EAP_COMMON
1663 OBJS
+= ..
/src
/eap_common
/eap_common.o
1670 ifdef CONFIG_DEBUG_SYSLOG
1671 CFLAGS
+= -DCONFIG_DEBUG_SYSLOG
1672 ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1673 CFLAGS
+= -DLOG_HOSTAPD
="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1677 ifdef CONFIG_DEBUG_LINUX_TRACING
1678 CFLAGS
+= -DCONFIG_DEBUG_LINUX_TRACING
1681 ifdef CONFIG_DEBUG_FILE
1682 CFLAGS
+= -DCONFIG_DEBUG_FILE
1685 ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1686 CFLAGS
+= -DCONFIG_DELAYED_MIC_ERROR_REPORT
1690 CFLAGS
+= -DCONFIG_FIPS
1691 ifneq ($(CONFIG_TLS
), openssl
)
1692 ifneq ($(CONFIG_TLS
), wolfssl
)
1693 $(error CONFIG_FIPS
=y requires CONFIG_TLS
=openssl
)
1698 OBJS
+= $(SHA1OBJS
) $(DESOBJS
)
1700 OBJS_p
+= $(SHA1OBJS
)
1701 OBJS_p
+= $(SHA256OBJS
)
1702 OBJS_priv
+= $(SHA1OBJS
)
1704 ifdef CONFIG_BGSCAN_SIMPLE
1705 CFLAGS
+= -DCONFIG_BGSCAN_SIMPLE
1706 OBJS
+= bgscan_simple.o
1710 ifdef CONFIG_BGSCAN_LEARN
1711 CFLAGS
+= -DCONFIG_BGSCAN_LEARN
1712 OBJS
+= bgscan_learn.o
1717 CFLAGS
+= -DCONFIG_BGSCAN
1721 ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1722 CFLAGS
+= -DCONFIG_AUTOSCAN_EXPONENTIAL
1723 OBJS
+= autoscan_exponential.o
1727 ifdef CONFIG_AUTOSCAN_PERIODIC
1728 CFLAGS
+= -DCONFIG_AUTOSCAN_PERIODIC
1729 OBJS
+= autoscan_periodic.o
1734 CFLAGS
+= -DCONFIG_AUTOSCAN
1738 ifdef CONFIG_EXT_PASSWORD_TEST
1739 OBJS
+= ..
/src
/utils
/ext_password_test.o
1740 CFLAGS
+= -DCONFIG_EXT_PASSWORD_TEST
1744 ifdef NEED_EXT_PASSWORD
1745 OBJS
+= ..
/src
/utils
/ext_password.o
1746 CFLAGS
+= -DCONFIG_EXT_PASSWORD
1749 ifdef NEED_GAS_SERVER
1750 OBJS
+= ..
/src
/common
/gas_server.o
1751 CFLAGS
+= -DCONFIG_GAS_SERVER
1756 OBJS
+= ..
/src
/common
/gas.o
1758 CFLAGS
+= -DCONFIG_GAS
1762 ifdef NEED_OFFCHANNEL
1763 OBJS
+= offchannel.o
1764 CFLAGS
+= -DCONFIG_OFFCHANNEL
1768 OBJS
+= ..
/src
/utils
/json.o
1769 CFLAGS
+= -DCONFIG_JSON
1772 ifdef CONFIG_MODULE_TESTS
1773 CFLAGS
+= -DCONFIG_MODULE_TESTS
1774 OBJS
+= wpas_module_tests.o
1775 OBJS
+= ..
/src
/utils
/utils_module_tests.o
1776 OBJS
+= ..
/src
/common
/common_module_tests.o
1777 OBJS
+= ..
/src
/crypto
/crypto_module_tests.o
1779 OBJS
+= ..
/src
/wps
/wps_module_tests.o
1783 OBJS
+= ..
/src
/drivers
/driver_common.o
1784 OBJS_priv
+= ..
/src
/drivers
/driver_common.o
1786 OBJS
+= wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1787 OBJS_t
:= $(OBJS
) $(OBJS_l2
) eapol_test.o
1788 OBJS_t
+= ..
/src
/radius
/radius_client.o
1789 OBJS_t
+= ..
/src
/radius
/radius.o
1791 OBJS_t
+= ..
/src
/utils
/ip_addr.o
1793 OBJS_t2
:= $(OBJS
) $(OBJS_l2
) preauth_test.o
1795 OBJS_nfc
:= $(OBJS
) $(OBJS_l2
) nfc_pw_token.o
1796 OBJS_nfc
+= $(OBJS_d
) ..
/src
/drivers
/drivers.o
1798 OBJS
+= $(CONFIG_MAIN
).o
1800 ifdef CONFIG_PRIVSEP
1801 OBJS_priv
+= $(OBJS_d
) ..
/src
/drivers
/drivers.o
1802 OBJS_priv
+= $(OBJS_l2
)
1803 OBJS_priv
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
1804 OBJS_priv
+= ..
/src
/utils
/$(CONFIG_ELOOP
).o
1805 OBJS_priv
+= ..
/src
/utils
/common.o
1806 OBJS_priv
+= ..
/src
/utils
/wpa_debug.o
1807 OBJS_priv
+= ..
/src
/utils
/wpabuf.o
1808 OBJS_priv
+= wpa_priv.o
1809 ifdef CONFIG_DRIVER_NL80211
1810 OBJS_priv
+= ..
/src
/common
/ieee802_11_common.o
1812 OBJS
+= ..
/src
/l2_packet
/l2_packet_privsep.o
1813 OBJS
+= ..
/src
/drivers
/driver_privsep.o
1814 EXTRA_progs
+= wpa_priv
1816 OBJS
+= $(OBJS_d
) ..
/src
/drivers
/drivers.o
1820 ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1821 CFLAGS
+= -DCONFIG_NDIS_EVENTS_INTEGRATED
1822 OBJS
+= ..
/src
/drivers
/ndis_events.o
1823 EXTRALIBS
+= -loleaut32
-lole32
-luuid
1824 ifdef PLATFORMSDKLIB
1825 EXTRALIBS
+= $(PLATFORMSDKLIB
)/WbemUuid.Lib
1827 EXTRALIBS
+= WbemUuid.Lib
1832 CFLAGS
+= -DCONFIG_FST
1833 ifdef CONFIG_FST_TEST
1834 CFLAGS
+= -DCONFIG_FST_TEST
1836 FST_OBJS
+= ..
/src
/fst
/fst.o
1837 FST_OBJS
+= ..
/src
/fst
/fst_session.o
1838 FST_OBJS
+= ..
/src
/fst
/fst_iface.o
1839 FST_OBJS
+= ..
/src
/fst
/fst_group.o
1840 FST_OBJS
+= ..
/src
/fst
/fst_ctrl_aux.o
1841 ifdef CONFIG_CTRL_IFACE
1842 FST_OBJS
+= ..
/src
/fst
/fst_ctrl_iface.o
1845 OBJS_t
+= $(FST_OBJS
)
1846 OBJS_t2
+= $(FST_OBJS
)
1847 OBJS_nfc
+= $(FST_OBJS
)
1865 dynamic_eap_methods
: $(EAPDYN
)
1867 ..
/src
/drivers
/build.wpa_supplicant
:
1868 @if
[ -f ..
/src
/drivers
/build.hostapd
]; then \
1869 $(MAKE
) -C ..
/src
/drivers
clean; \
1871 @touch ..
/src
/drivers
/build.wpa_supplicant
1873 BCHECK
=..
/src
/drivers
/build.wpa_supplicant
1875 wpa_priv
: $(BCHECK
) $(OBJS_priv
)
1876 $(Q
)$(LDO
) $(LDFLAGS
) -o wpa_priv
$(OBJS_priv
) $(LIBS
)
1879 $(OBJS_c
) $(OBJS_t
) $(OBJS_t2
) $(OBJS
) $(BCHECK
) $(EXTRA_progs
): .config
1881 wpa_supplicant
: $(BCHECK
) $(OBJS
) $(EXTRA_progs
)
1882 $(Q
)$(LDO
) $(LDFLAGS
) -o wpa_supplicant
$(OBJS
) $(LIBS
) $(EXTRALIBS
)
1885 eapol_test
: $(OBJS_t
)
1886 $(Q
)$(LDO
) $(LDFLAGS
) -o eapol_test
$(OBJS_t
) $(LIBS
)
1889 preauth_test
: $(OBJS_t2
)
1890 $(Q
)$(LDO
) $(LDFLAGS
) -o preauth_test
$(OBJS_t2
) $(LIBS
)
1893 wpa_passphrase
: $(OBJS_p
)
1894 $(Q
)$(LDO
) $(LDFLAGS
) -o wpa_passphrase
$(OBJS_p
) $(LIBS_p
) $(LIBS
)
1898 $(Q
)$(LDO
) $(LDFLAGS
) -o wpa_cli
$(OBJS_c
) $(LIBS_c
)
1901 LIBCTRL
+= ..
/src
/common
/wpa_ctrl.o
1902 LIBCTRL
+= ..
/src
/utils
/os_
$(CONFIG_OS
).o
1903 LIBCTRL
+= ..
/src
/utils
/common.o
1904 LIBCTRL
+= ..
/src
/utils
/wpa_debug.o
1905 LIBCTRLSO
+= ..
/src
/common
/wpa_ctrl.c
1906 LIBCTRLSO
+= ..
/src
/utils
/os_
$(CONFIG_OS
).c
1907 LIBCTRLSO
+= ..
/src
/utils
/common.c
1908 LIBCTRLSO
+= ..
/src
/utils
/wpa_debug.c
1910 libwpa_client.a
: $(LIBCTRL
)
1915 libwpa_client.so
: $(LIBCTRLSO
)
1917 $(Q
)$(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-fPIC
$^
1919 libwpa_test1
: libwpa_test.o libwpa_client.a
1920 $(Q
)$(LDO
) $(LDFLAGS
) -o libwpa_test1 libwpa_test.o libwpa_client.a
$(LIBS_c
)
1923 libwpa_test2
: libwpa_test.o libwpa_client.so
1924 $(Q
)$(LDO
) $(LDFLAGS
) -o libwpa_test2 libwpa_test.o
-L.
-lwpa_client
$(LIBS_c
)
1927 nfc_pw_token
: $(OBJS_nfc
)
1928 $(Q
)$(LDO
) $(LDFLAGS
) -o nfc_pw_token
$(OBJS_nfc
) $(LIBS
)
1931 win_if_list
: win_if_list.c
1932 $(Q
)$(LDO
) $(LDFLAGS
) -o
$@ win_if_list.c
$(CFLAGS
) $(LIBS_w
)
1935 eap_psk.so
: ..
/src
/eap_peer
/eap_psk.c ..
/src
/eap_common
/eap_psk_common.c
1936 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1937 -Deap_peer_psk_register
=eap_peer_method_dynamic_init
1939 eap_pax.so
: ..
/src
/eap_peer
/eap_pax.c ..
/src
/eap_common
/eap_pax_common.c
1940 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1941 -Deap_peer_pax_register
=eap_peer_method_dynamic_init
1943 eap_sake.so
: ..
/src
/eap_peer
/eap_sake.c ..
/src
/eap_common
/eap_sake_common.c
1944 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1945 -Deap_peer_sake_register
=eap_peer_method_dynamic_init
1947 eap_wsc.so
: ..
/src
/eap_peer
/eap_wsc.c ..
/src
/eap_common
/eap_wsc_common.c ..
/src
/wps
/wps.c
1948 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1949 -Deap_peer_wsc_register
=eap_peer_method_dynamic_init
1951 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
1952 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1953 -Deap_peer_ikev2_register
=eap_peer_method_dynamic_init
1955 eap_eke.so
: ..
/src
/eap_peer
/eap_eke.c ..
/src
/eap_common
/eap_eke_common.c
1956 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$^ \
1957 -Deap_peer_eke_register
=eap_peer_method_dynamic_init
1960 $(CC
) $(LDFLAGS
) -o
$@
$(CFLAGS
) -shared
-rdynamic
-fPIC
$< \
1961 -D
$(*F
:eap_
%=eap_peer_
%)_register
=eap_peer_method_dynamic_init
1963 ifdef CONFIG_CODE_COVERAGE
1966 $(Q
)cd
$(dir $@
); $(CC
) -c
-o
$(notdir $@
) $(CFLAGS
) $(notdir $<)
1969 $(Q
)$(CC
) -c
-o
$@
$(CFLAGS
) $<
1973 %.service
: %.service.in
1974 $(Q
)sed
-e
's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1977 %@.service
: %.service.arg.in
1978 $(Q
)sed
-e
's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1981 wpa_supplicant.exe
: wpa_supplicant
1983 wpa_cli.exe
: wpa_cli
1985 wpa_passphrase.exe
: wpa_passphrase
1987 win_if_list.exe
: win_if_list
1989 eapol_test.exe
: eapol_test
1992 WINALL
=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1994 windows-bin
: $(WINALL
)
1998 @echo
"wpa_gui has been removed - see wpa_gui-qt4 for replacement"
2000 wpa_gui-qt4
/Makefile
:
2001 qmake
-o wpa_gui-qt4
/Makefile wpa_gui-qt4
/wpa_gui.pro
2003 wpa_gui-qt4
/lang
/wpa_gui_de.qm
: wpa_gui-qt4
/lang
/wpa_gui_de.ts
2004 lrelease wpa_gui-qt4
/wpa_gui.pro
2006 wpa_gui-qt4
: wpa_gui-qt4
/Makefile wpa_gui-qt4
/lang
/wpa_gui_de.qm
2007 $(MAKE
) -C wpa_gui-qt4
2009 FIPSDIR
=/usr
/local
/ssl
/fips-2.0
2010 FIPSLD
=$(FIPSDIR
)/bin
/fipsld
2012 $(MAKE
) CC
=$(FIPSLD
) FIPSLD_CC
="$(CC)"
2014 lcov-html
: wpa_supplicant.gcda
2015 lcov
-c
-d ..
> lcov.
info
2016 genhtml lcov.
info --output-directory lcov-html
2019 $(MAKE
) -C ..
/src
clean
2020 $(MAKE
) -C dbus
clean
2021 rm -f core
*~
*.o
*.d
*.gcno
*.gcda
*.gcov
2022 rm -f eap_
*.so
$(ALL
) $(WINALL
) eapol_test preauth_test
2027 rm -f libwpa_client.a
2028 rm -f libwpa_client.so
2029 rm -f libwpa_test1 libwpa_test2
2031 -include $(OBJS
:%.o
=%.d
)