Makefile (44869B)
1 BINALL=wpa_supplicant wpa_cli 2 3 ifndef CONFIG_NO_WPA_PASSPHRASE 4 BINALL += wpa_passphrase 5 endif 6 7 ALL = $(BINALL) 8 #ALL += systemd/wpa_supplicant.service 9 #ALL += systemd/wpa_supplicant@.service 10 #ALL += systemd/wpa_supplicant-nl80211@.service 11 #ALL += systemd/wpa_supplicant-wired@.service 12 #ALL += dbus/fi.w1.wpa_supplicant1.service 13 ifdef CONFIG_BUILD_WPA_CLIENT_SO 14 ALL += libwpa_client.so 15 endif 16 17 EXTRA_TARGETS=dynamic_eap_methods 18 19 CONFIG_FILE=.config 20 include ../src/build.rules 21 22 ifdef LIBS 23 # If LIBS is set with some global build system defaults, clone those for 24 # LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well. 25 ifndef LIBS_c 26 LIBS_c := $(LIBS) 27 endif 28 ifndef LIBS_p 29 LIBS_p := $(LIBS) 30 endif 31 endif 32 33 export LIBDIR ?= /sucks/lib 34 export INCDIR ?= /include 35 export BINDIR ?= /sucks/sbin 36 PKG_CONFIG ?= pkg-config 37 38 CFLAGS += $(EXTRA_CFLAGS) 39 CFLAGS += -I$(abspath ../src) 40 CFLAGS += -I$(abspath ../src/utils) 41 42 ifndef CONFIG_NO_GITVER 43 # Add VERSION_STR postfix for builds from a git repository 44 ifeq ($(wildcard ../.git),../.git) 45 GITVER := $(shell git describe --dirty=+) 46 ifneq ($(GITVER),) 47 CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\" 48 endif 49 endif 50 endif 51 52 ifdef CONFIG_TESTING_OPTIONS 53 CFLAGS += -DCONFIG_TESTING_OPTIONS 54 CONFIG_WPS_TESTING=y 55 CONFIG_TDLS_TESTING=y 56 endif 57 58 mkconfig: 59 @if [ -f .config ]; then \ 60 echo '.config exists - did not replace it'; \ 61 exit 1; \ 62 fi 63 echo CONFIG_DRIVER_HOSTAP=y >> .config 64 echo CONFIG_DRIVER_WEXT=y >> .config 65 66 $(DESTDIR)$(BINDIR)/%: % 67 install -D $(<) $(@) 68 69 install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL)) 70 $(MAKE) -C ../src install 71 ifdef CONFIG_BUILD_WPA_CLIENT_SO 72 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so 73 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h 74 endif 75 if ls eap_*.so >/dev/null 2>&1; then \ 76 install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \ 77 cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \ 78 ; fi 79 80 ifdef CONFIG_FIPS 81 CONFIG_NO_RANDOM_POOL= 82 CONFIG_OPENSSL_CMAC=y 83 endif 84 85 OBJS = config.o 86 OBJS += notify.o 87 OBJS += bss.o 88 OBJS += eap_register.o 89 OBJS += ../src/utils/common.o 90 OBJS += ../src/utils/config.o 91 OBJS += ../src/utils/wpa_debug.o 92 OBJS += ../src/utils/wpabuf.o 93 OBJS += ../src/utils/bitfield.o 94 OBJS += ../src/utils/ip_addr.o 95 OBJS += ../src/utils/crc32.o 96 OBJS += op_classes.o 97 OBJS += rrm.o 98 OBJS += twt.o 99 OBJS += robust_av.o 100 OBJS_p = wpa_passphrase.o 101 OBJS_p += ../src/utils/common.o 102 OBJS_p += ../src/utils/wpa_debug.o 103 OBJS_p += ../src/utils/wpabuf.o 104 OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o 105 OBJS_c += ../src/utils/wpa_debug.o 106 OBJS_c += ../src/utils/common.o 107 OBJS_c += ../src/common/cli.o 108 OBJS += wmm_ac.o 109 110 ifndef CONFIG_OS 111 ifdef CONFIG_NATIVE_WINDOWS 112 CONFIG_OS=win32 113 else 114 CONFIG_OS=unix 115 endif 116 endif 117 118 ifeq ($(CONFIG_OS), internal) 119 CFLAGS += -DOS_NO_C_LIB_DEFINES 120 endif 121 122 OBJS += ../src/utils/os_$(CONFIG_OS).o 123 OBJS_p += ../src/utils/os_$(CONFIG_OS).o 124 OBJS_c += ../src/utils/os_$(CONFIG_OS).o 125 126 ifdef CONFIG_WPA_TRACE 127 CFLAGS += -DWPA_TRACE 128 OBJS += ../src/utils/trace.o 129 OBJS_p += ../src/utils/trace.o 130 OBJS_c += ../src/utils/trace.o 131 OBJS_priv += ../src/utils/trace.o 132 LIBCTRL += ../src/utils/trace.o 133 LIBCTRLSO += ../src/utils/trace.c 134 LDFLAGS += -rdynamic 135 CFLAGS += -funwind-tables 136 ifdef CONFIG_WPA_TRACE_BFD 137 CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD 138 LIBS += -lbfd -ldl -liberty -lz 139 LIBS_p += -lbfd -ldl -liberty -lz 140 LIBS_c += -lbfd -ldl -liberty -lz 141 endif 142 endif 143 144 ifndef CONFIG_ELOOP 145 CONFIG_ELOOP=eloop 146 endif 147 OBJS += ../src/utils/$(CONFIG_ELOOP).o 148 OBJS_c += ../src/utils/$(CONFIG_ELOOP).o 149 150 ifndef CONFIG_OSX 151 ifeq ($(CONFIG_ELOOP), eloop) 152 # Using glibc < 2.17 requires -lrt for clock_gettime() 153 # OS X has an alternate implementation 154 LIBS += -lrt 155 LIBS_c += -lrt 156 LIBS_p += -lrt 157 endif 158 endif 159 160 ifdef CONFIG_ELOOP_POLL 161 CFLAGS += -DCONFIG_ELOOP_POLL 162 endif 163 164 ifdef CONFIG_ELOOP_EPOLL 165 CFLAGS += -DCONFIG_ELOOP_EPOLL 166 endif 167 168 ifdef CONFIG_ELOOP_KQUEUE 169 CFLAGS += -DCONFIG_ELOOP_KQUEUE 170 endif 171 172 ifdef CONFIG_EAPOL_TEST 173 CFLAGS += -Werror -DEAPOL_TEST 174 endif 175 176 ifdef CONFIG_CODE_COVERAGE 177 CFLAGS += -O0 -fprofile-arcs -ftest-coverage 178 LIBS += -lgcov 179 LIBS_c += -lgcov 180 LIBS_p += -lgcov 181 endif 182 183 ifdef CONFIG_HT_OVERRIDES 184 CFLAGS += -DCONFIG_HT_OVERRIDES 185 endif 186 187 ifdef CONFIG_VHT_OVERRIDES 188 CFLAGS += -DCONFIG_VHT_OVERRIDES 189 endif 190 191 ifdef CONFIG_HE_OVERRIDES 192 CFLAGS += -DCONFIG_HE_OVERRIDES 193 endif 194 195 ifndef CONFIG_BACKEND 196 CONFIG_BACKEND=file 197 endif 198 199 ifeq ($(CONFIG_BACKEND), file) 200 OBJS += config_file.o 201 ifndef CONFIG_NO_CONFIG_BLOBS 202 NEED_BASE64=y 203 endif 204 CFLAGS += -DCONFIG_BACKEND_FILE 205 endif 206 207 ifeq ($(CONFIG_BACKEND), winreg) 208 OBJS += config_winreg.o 209 endif 210 211 ifeq ($(CONFIG_BACKEND), none) 212 OBJS += config_none.o 213 endif 214 215 ifdef CONFIG_NO_CONFIG_WRITE 216 CFLAGS += -DCONFIG_NO_CONFIG_WRITE 217 endif 218 219 ifdef CONFIG_NO_CONFIG_BLOBS 220 CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 221 endif 222 223 ifdef CONFIG_NO_SCAN_PROCESSING 224 CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 225 endif 226 227 ifdef CONFIG_SUITEB 228 CFLAGS += -DCONFIG_SUITEB 229 endif 230 231 ifdef CONFIG_SUITEB192 232 CFLAGS += -DCONFIG_SUITEB192 233 NEED_SHA384=y 234 endif 235 236 ifdef CONFIG_OCV 237 CFLAGS += -DCONFIG_OCV 238 OBJS += ../src/common/ocv.o 239 endif 240 241 ifdef CONFIG_IEEE80211R 242 CFLAGS += -DCONFIG_IEEE80211R 243 OBJS += ../src/rsn_supp/wpa_ft.o 244 endif 245 246 ifdef CONFIG_MESH 247 NEED_80211_COMMON=y 248 NEED_AES_SIV=y 249 CONFIG_SAE=y 250 CONFIG_AP=y 251 CFLAGS += -DCONFIG_MESH 252 OBJS += mesh.o 253 OBJS += mesh_mpm.o 254 OBJS += mesh_rsn.o 255 endif 256 257 ifdef CONFIG_SAE 258 CFLAGS += -DCONFIG_SAE 259 OBJS += ../src/common/sae.o 260 ifdef CONFIG_SAE_PK 261 CFLAGS += -DCONFIG_SAE_PK 262 OBJS += ../src/common/sae_pk.o 263 endif 264 NEED_ECC=y 265 NEED_DH_GROUPS=y 266 NEED_HMAC_SHA256_KDF=y 267 NEED_DRAGONFLY=y 268 ifdef CONFIG_TESTING_OPTIONS 269 NEED_DH_GROUPS_ALL=y 270 endif 271 endif 272 273 ifdef CONFIG_DPP 274 CFLAGS += -DCONFIG_DPP 275 OBJS += ../src/common/dpp.o 276 OBJS += ../src/common/dpp_auth.o 277 OBJS += ../src/common/dpp_backup.o 278 OBJS += ../src/common/dpp_crypto.o 279 OBJS += ../src/common/dpp_pkex.o 280 OBJS += ../src/common/dpp_reconfig.o 281 OBJS += ../src/common/dpp_tcp.o 282 OBJS += dpp_supplicant.o 283 NEED_AES_SIV=y 284 NEED_HMAC_SHA256_KDF=y 285 NEED_HMAC_SHA384_KDF=y 286 NEED_HMAC_SHA512_KDF=y 287 NEED_SHA384=y 288 NEED_SHA512=y 289 NEED_ECC=y 290 NEED_JSON=y 291 NEED_GAS_SERVER=y 292 NEED_BASE64=y 293 NEED_ASN1=y 294 ifdef CONFIG_DPP2 295 CFLAGS += -DCONFIG_DPP2 296 endif 297 ifdef CONFIG_DPP3 298 CFLAGS += -DCONFIG_DPP3 299 endif 300 endif 301 302 ifdef CONFIG_OWE 303 CFLAGS += -DCONFIG_OWE 304 NEED_ECC=y 305 NEED_HMAC_SHA256_KDF=y 306 NEED_HMAC_SHA384_KDF=y 307 NEED_HMAC_SHA512_KDF=y 308 NEED_SHA384=y 309 NEED_SHA512=y 310 endif 311 312 ifdef CONFIG_FILS 313 CFLAGS += -DCONFIG_FILS 314 NEED_SHA384=y 315 NEED_AES_SIV=y 316 ifdef CONFIG_FILS_SK_PFS 317 CFLAGS += -DCONFIG_FILS_SK_PFS 318 NEED_ECC=y 319 endif 320 endif 321 322 ifdef CONFIG_MBO 323 CONFIG_WNM=y 324 endif 325 326 ifdef CONFIG_WNM 327 CFLAGS += -DCONFIG_WNM 328 OBJS += wnm_sta.o 329 endif 330 331 ifdef CONFIG_TDLS 332 CFLAGS += -DCONFIG_TDLS 333 OBJS += ../src/rsn_supp/tdls.o 334 endif 335 336 ifdef CONFIG_TDLS_TESTING 337 CFLAGS += -DCONFIG_TDLS_TESTING 338 endif 339 340 ifdef CONFIG_PMKSA_CACHE_EXTERNAL 341 CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL 342 endif 343 344 ifndef CONFIG_NO_WPA 345 OBJS += ../src/rsn_supp/wpa.o 346 OBJS += ../src/rsn_supp/preauth.o 347 OBJS += ../src/rsn_supp/pmksa_cache.o 348 OBJS += ../src/rsn_supp/wpa_ie.o 349 OBJS += ../src/common/wpa_common.o 350 NEED_AES=y 351 NEED_SHA1=y 352 NEED_MD5=y 353 NEED_RC4=y 354 else 355 CFLAGS += -DCONFIG_NO_WPA 356 ifeq ($(CONFIG_TLS), internal) 357 NEED_SHA1=y 358 NEED_MD5=y 359 endif 360 endif 361 362 ifdef CONFIG_IBSS_RSN 363 NEED_RSN_AUTHENTICATOR=y 364 CFLAGS += -DCONFIG_IBSS_RSN 365 CFLAGS += -DCONFIG_NO_VLAN 366 OBJS += ibss_rsn.o 367 endif 368 369 ifdef CONFIG_MATCH_IFACE 370 CFLAGS += -DCONFIG_MATCH_IFACE 371 endif 372 373 ifdef CONFIG_P2P 374 OBJS += p2p_supplicant.o 375 OBJS += p2p_supplicant_sd.o 376 OBJS += ../src/p2p/p2p.o 377 OBJS += ../src/p2p/p2p_utils.o 378 OBJS += ../src/p2p/p2p_parse.o 379 OBJS += ../src/p2p/p2p_build.o 380 OBJS += ../src/p2p/p2p_go_neg.o 381 OBJS += ../src/p2p/p2p_sd.o 382 OBJS += ../src/p2p/p2p_pd.o 383 OBJS += ../src/p2p/p2p_invitation.o 384 OBJS += ../src/p2p/p2p_dev_disc.o 385 OBJS += ../src/p2p/p2p_group.o 386 OBJS += ../src/ap/p2p_hostapd.o 387 CFLAGS += -DCONFIG_P2P 388 NEED_GAS=y 389 NEED_OFFCHANNEL=y 390 CONFIG_WPS=y 391 CONFIG_AP=y 392 ifdef CONFIG_P2P_STRICT 393 CFLAGS += -DCONFIG_P2P_STRICT 394 endif 395 ifdef CONFIG_WIFI_DISPLAY 396 CFLAGS += -DCONFIG_WIFI_DISPLAY 397 OBJS += wifi_display.o 398 endif 399 endif 400 401 ifdef CONFIG_PASN 402 CFLAGS += -DCONFIG_PASN 403 CFLAGS += -DCONFIG_PTKSA_CACHE 404 NEED_HMAC_SHA256_KDF=y 405 NEED_HMAC_SHA384_KDF=y 406 NEED_SHA256=y 407 NEED_SHA384=y 408 OBJS += ../src/common/ptksa_cache.o 409 OBJS += pasn_supplicant.o 410 endif 411 412 ifdef CONFIG_HS20 413 OBJS += hs20_supplicant.o 414 CFLAGS += -DCONFIG_HS20 415 CONFIG_INTERWORKING=y 416 endif 417 418 ifdef CONFIG_INTERWORKING 419 OBJS += interworking.o 420 CFLAGS += -DCONFIG_INTERWORKING 421 NEED_GAS=y 422 endif 423 424 ifdef CONFIG_NO_ROAMING 425 CFLAGS += -DCONFIG_NO_ROAMING 426 endif 427 428 include ../src/drivers/drivers.mak 429 ifdef CONFIG_AP 430 OBJS_d += $(DRV_BOTH_OBJS) 431 CFLAGS += $(DRV_BOTH_CFLAGS) 432 LDFLAGS += $(DRV_BOTH_LDFLAGS) 433 LIBS += $(DRV_BOTH_LIBS) 434 else 435 NEED_AP_MLME= 436 OBJS_d += $(DRV_WPA_OBJS) 437 CFLAGS += $(DRV_WPA_CFLAGS) 438 LDFLAGS += $(DRV_WPA_LDFLAGS) 439 LIBS += $(DRV_WPA_LIBS) 440 endif 441 442 ifndef CONFIG_L2_PACKET 443 CONFIG_L2_PACKET=linux 444 endif 445 446 OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 447 448 ifeq ($(CONFIG_L2_PACKET), pcap) 449 ifdef CONFIG_WINPCAP 450 CFLAGS += -DCONFIG_WINPCAP 451 LIBS += -lwpcap -lpacket 452 LIBS_w += -lwpcap 453 else 454 LIBS += -ldnet -lpcap 455 endif 456 endif 457 458 ifeq ($(CONFIG_L2_PACKET), winpcap) 459 LIBS += -lwpcap -lpacket 460 LIBS_w += -lwpcap 461 endif 462 463 ifeq ($(CONFIG_L2_PACKET), freebsd) 464 LIBS += -lpcap 465 endif 466 467 ifdef CONFIG_ERP 468 CFLAGS += -DCONFIG_ERP 469 NEED_HMAC_SHA256_KDF=y 470 endif 471 472 ifdef CONFIG_EAP_TLS 473 # EAP-TLS 474 ifeq ($(CONFIG_EAP_TLS), dyn) 475 CFLAGS += -DEAP_TLS_DYNAMIC 476 EAPDYN += eap_tls.so 477 else 478 CFLAGS += -DEAP_TLS 479 OBJS += ../src/eap_peer/eap_tls.o 480 endif 481 TLS_FUNCS=y 482 CONFIG_IEEE8021X_EAPOL=y 483 endif 484 485 ifdef CONFIG_EAP_UNAUTH_TLS 486 # EAP-UNAUTH-TLS 487 CFLAGS += -DEAP_UNAUTH_TLS 488 ifndef CONFIG_EAP_TLS 489 OBJS += ../src/eap_peer/eap_tls.o 490 TLS_FUNCS=y 491 endif 492 CONFIG_IEEE8021X_EAPOL=y 493 endif 494 495 ifdef CONFIG_EAP_PEAP 496 # EAP-PEAP 497 SRC_EAP_PEAP = ../src/eap_peer/eap_peap.c ../src/eap_common/eap_peap_common.c 498 ifeq ($(CONFIG_EAP_PEAP), dyn) 499 CFLAGS += -DEAP_PEAP_DYNAMIC 500 EAPDYN += eap_peap.so 501 else 502 CFLAGS += -DEAP_PEAP 503 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PEAP)) 504 endif 505 TLS_FUNCS=y 506 CONFIG_IEEE8021X_EAPOL=y 507 endif 508 509 ifdef CONFIG_EAP_TTLS 510 # EAP-TTLS 511 ifeq ($(CONFIG_EAP_TTLS), dyn) 512 CFLAGS += -DEAP_TTLS_DYNAMIC 513 EAPDYN += eap_ttls.so 514 else 515 CFLAGS += -DEAP_TTLS 516 OBJS += ../src/eap_peer/eap_ttls.o 517 endif 518 TLS_FUNCS=y 519 ifndef CONFIG_FIPS 520 MS_FUNCS=y 521 CHAP=y 522 endif 523 CONFIG_IEEE8021X_EAPOL=y 524 endif 525 526 ifdef CONFIG_EAP_MD5 527 # EAP-MD5 528 ifeq ($(CONFIG_EAP_MD5), dyn) 529 CFLAGS += -DEAP_MD5_DYNAMIC 530 EAPDYN += eap_md5.so 531 else 532 CFLAGS += -DEAP_MD5 533 OBJS += ../src/eap_peer/eap_md5.o 534 endif 535 CHAP=y 536 CONFIG_IEEE8021X_EAPOL=y 537 endif 538 539 # backwards compatibility for old spelling 540 ifdef CONFIG_MSCHAPV2 541 ifndef CONFIG_EAP_MSCHAPV2 542 CONFIG_EAP_MSCHAPV2=y 543 endif 544 endif 545 546 ifdef CONFIG_EAP_MSCHAPV2 547 # EAP-MSCHAPv2 548 SRC_EAP_MSCHAPV2 = ../src/eap_peer/eap_mschapv2.c ../src/eap_peer/mschapv2.c 549 ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 550 CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 551 EAPDYN += eap_mschapv2.so 552 else 553 CFLAGS += -DEAP_MSCHAPv2 554 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_MSCHAPV2)) 555 endif 556 MS_FUNCS=y 557 CONFIG_IEEE8021X_EAPOL=y 558 endif 559 560 ifdef CONFIG_EAP_GTC 561 # EAP-GTC 562 ifeq ($(CONFIG_EAP_GTC), dyn) 563 CFLAGS += -DEAP_GTC_DYNAMIC 564 EAPDYN += eap_gtc.so 565 else 566 CFLAGS += -DEAP_GTC 567 OBJS += ../src/eap_peer/eap_gtc.o 568 endif 569 CONFIG_IEEE8021X_EAPOL=y 570 endif 571 572 ifdef CONFIG_EAP_OTP 573 # EAP-OTP 574 ifeq ($(CONFIG_EAP_OTP), dyn) 575 CFLAGS += -DEAP_OTP_DYNAMIC 576 EAPDYN += eap_otp.so 577 else 578 CFLAGS += -DEAP_OTP 579 OBJS += ../src/eap_peer/eap_otp.o 580 endif 581 CONFIG_IEEE8021X_EAPOL=y 582 endif 583 584 ifdef CONFIG_EAP_SIM 585 # EAP-SIM 586 ifeq ($(CONFIG_EAP_SIM), dyn) 587 CFLAGS += -DEAP_SIM_DYNAMIC 588 EAPDYN += eap_sim.so 589 else 590 CFLAGS += -DEAP_SIM 591 OBJS += ../src/eap_peer/eap_sim.o 592 endif 593 CONFIG_IEEE8021X_EAPOL=y 594 CONFIG_EAP_SIM_COMMON=y 595 NEED_AES_CBC=y 596 endif 597 598 ifdef CONFIG_EAP_LEAP 599 # EAP-LEAP 600 ifeq ($(CONFIG_EAP_LEAP), dyn) 601 CFLAGS += -DEAP_LEAP_DYNAMIC 602 EAPDYN += eap_leap.so 603 else 604 CFLAGS += -DEAP_LEAP 605 OBJS += ../src/eap_peer/eap_leap.o 606 endif 607 MS_FUNCS=y 608 CONFIG_IEEE8021X_EAPOL=y 609 endif 610 611 ifdef CONFIG_EAP_PSK 612 # EAP-PSK 613 SRC_EAP_PSK = ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c 614 ifeq ($(CONFIG_EAP_PSK), dyn) 615 CFLAGS += -DEAP_PSK_DYNAMIC 616 EAPDYN += eap_psk.so 617 else 618 CFLAGS += -DEAP_PSK 619 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PSK)) 620 endif 621 CONFIG_IEEE8021X_EAPOL=y 622 NEED_AES=y 623 NEED_AES_ENCBLOCK=y 624 NEED_AES_EAX=y 625 endif 626 627 ifdef CONFIG_EAP_AKA 628 # EAP-AKA 629 ifeq ($(CONFIG_EAP_AKA), dyn) 630 CFLAGS += -DEAP_AKA_DYNAMIC 631 EAPDYN += eap_aka.so 632 else 633 CFLAGS += -DEAP_AKA 634 OBJS += ../src/eap_peer/eap_aka.o 635 endif 636 CONFIG_IEEE8021X_EAPOL=y 637 CONFIG_EAP_SIM_COMMON=y 638 NEED_AES_CBC=y 639 endif 640 641 ifdef CONFIG_EAP_PROXY 642 CFLAGS += -DCONFIG_EAP_PROXY 643 OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o 644 include eap_proxy_$(CONFIG_EAP_PROXY).mak 645 CONFIG_IEEE8021X_EAPOL=y 646 endif 647 648 ifdef CONFIG_EAP_AKA_PRIME 649 # EAP-AKA' 650 ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 651 CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 652 else 653 CFLAGS += -DEAP_AKA_PRIME 654 endif 655 endif 656 657 ifdef CONFIG_EAP_SIM_COMMON 658 OBJS += ../src/eap_common/eap_sim_common.o 659 NEED_AES=y 660 NEED_FIPS186_2_PRF=y 661 endif 662 663 ifdef CONFIG_EAP_FAST 664 # EAP-FAST 665 SRC_EAP_FAST = ../src/eap_peer/eap_fast.c ../src/eap_peer/eap_fast_pac.c 666 SRC_EAP_FAST += ../src/eap_common/eap_fast_common.c 667 ifeq ($(CONFIG_EAP_FAST), dyn) 668 CFLAGS += -DEAP_FAST_DYNAMIC 669 EAPDYN += eap_fast.so 670 else 671 CFLAGS += -DEAP_FAST 672 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_FAST)) 673 endif 674 TLS_FUNCS=y 675 CONFIG_IEEE8021X_EAPOL=y 676 NEED_T_PRF=y 677 endif 678 679 ifdef CONFIG_EAP_TEAP 680 # EAP-TEAP 681 SRC_EAP_TEAP = ../src/eap_peer/eap_teap.c ../src/eap_peer/eap_teap_pac.c 682 SRC_EAP_TEAP += ../src/eap_common/eap_teap_common.c 683 ifeq ($(CONFIG_EAP_TEAP), dyn) 684 CFLAGS += -DEAP_TEAP_DYNAMIC 685 EAPDYN += eap_teap.so 686 else 687 CFLAGS += -DEAP_TEAP 688 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_TEAP)) 689 endif 690 TLS_FUNCS=y 691 CONFIG_IEEE8021X_EAPOL=y 692 NEED_T_PRF=y 693 NEED_SHA384=y 694 NEED_TLS_PRF_SHA256=y 695 NEED_TLS_PRF_SHA384=y 696 endif 697 698 ifdef CONFIG_EAP_PAX 699 # EAP-PAX 700 SRC_EAP_PAX = ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c 701 ifeq ($(CONFIG_EAP_PAX), dyn) 702 CFLAGS += -DEAP_PAX_DYNAMIC 703 EAPDYN += eap_pax.so 704 else 705 CFLAGS += -DEAP_PAX 706 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PAX)) 707 endif 708 CONFIG_IEEE8021X_EAPOL=y 709 endif 710 711 ifdef CONFIG_EAP_SAKE 712 # EAP-SAKE 713 SRC_EAP_SAKE = ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c 714 ifeq ($(CONFIG_EAP_SAKE), dyn) 715 CFLAGS += -DEAP_SAKE_DYNAMIC 716 EAPDYN += eap_sake.so 717 else 718 CFLAGS += -DEAP_SAKE 719 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_SAKE)) 720 endif 721 CONFIG_IEEE8021X_EAPOL=y 722 endif 723 724 ifdef CONFIG_EAP_GPSK 725 # EAP-GPSK 726 SRC_EAP_GPSK = ../src/eap_peer/eap_gpsk.c ../src/eap_common/eap_gpsk_common.c 727 ifeq ($(CONFIG_EAP_GPSK), dyn) 728 CFLAGS += -DEAP_GPSK_DYNAMIC 729 EAPDYN += eap_gpsk.so 730 else 731 CFLAGS += -DEAP_GPSK 732 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_GPSK)) 733 endif 734 CONFIG_IEEE8021X_EAPOL=y 735 ifdef CONFIG_EAP_GPSK_SHA256 736 CFLAGS += -DEAP_GPSK_SHA256 737 endif 738 endif 739 740 ifdef CONFIG_EAP_PWD 741 CFLAGS += -DEAP_PWD 742 ifeq ($(CONFIG_TLS), wolfssl) 743 CFLAGS += -DCONFIG_ECC 744 endif 745 OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o 746 CONFIG_IEEE8021X_EAPOL=y 747 NEED_ECC=y 748 NEED_DRAGONFLY=y 749 endif 750 751 ifdef CONFIG_EAP_EKE 752 # EAP-EKE 753 SRC_EAP_EKE = ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c 754 ifeq ($(CONFIG_EAP_EKE), dyn) 755 CFLAGS += -DEAP_EKE_DYNAMIC 756 EAPDYN += eap_eke.so 757 else 758 CFLAGS += -DEAP_EKE 759 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_EKE)) 760 endif 761 CONFIG_IEEE8021X_EAPOL=y 762 NEED_DH_GROUPS=y 763 NEED_DH_GROUPS_ALL=y 764 NEED_AES_CBC=y 765 endif 766 767 ifdef CONFIG_WPS 768 # EAP-WSC 769 CFLAGS += -DCONFIG_WPS -DEAP_WSC 770 OBJS += wps_supplicant.o 771 OBJS += ../src/utils/uuid.o 772 OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o 773 OBJS += ../src/wps/wps.o 774 OBJS += ../src/wps/wps_common.o 775 OBJS += ../src/wps/wps_attr_parse.o 776 OBJS += ../src/wps/wps_attr_build.o 777 OBJS += ../src/wps/wps_attr_process.o 778 OBJS += ../src/wps/wps_dev_attr.o 779 OBJS += ../src/wps/wps_enrollee.o 780 OBJS += ../src/wps/wps_registrar.o 781 CONFIG_IEEE8021X_EAPOL=y 782 NEED_DH_GROUPS=y 783 NEED_BASE64=y 784 NEED_AES_CBC=y 785 NEED_MODEXP=y 786 787 ifdef CONFIG_WPS_NFC 788 CFLAGS += -DCONFIG_WPS_NFC 789 OBJS += ../src/wps/ndef.o 790 NEED_WPS_OOB=y 791 endif 792 793 ifdef NEED_WPS_OOB 794 CFLAGS += -DCONFIG_WPS_OOB 795 endif 796 797 ifdef CONFIG_WPS_ER 798 CONFIG_WPS_UPNP=y 799 CFLAGS += -DCONFIG_WPS_ER 800 OBJS += ../src/wps/wps_er.o 801 OBJS += ../src/wps/wps_er_ssdp.o 802 endif 803 804 ifdef CONFIG_WPS_UPNP 805 CFLAGS += -DCONFIG_WPS_UPNP 806 OBJS += ../src/wps/wps_upnp.o 807 OBJS += ../src/wps/wps_upnp_ssdp.o 808 OBJS += ../src/wps/wps_upnp_web.o 809 OBJS += ../src/wps/wps_upnp_event.o 810 OBJS += ../src/wps/wps_upnp_ap.o 811 OBJS += ../src/wps/upnp_xml.o 812 OBJS += ../src/wps/httpread.o 813 OBJS += ../src/wps/http_client.o 814 OBJS += ../src/wps/http_server.o 815 endif 816 817 ifdef CONFIG_WPS_STRICT 818 CFLAGS += -DCONFIG_WPS_STRICT 819 OBJS += ../src/wps/wps_validate.o 820 endif 821 822 ifdef CONFIG_WPS_TESTING 823 CFLAGS += -DCONFIG_WPS_TESTING 824 endif 825 826 ifdef CONFIG_WPS_REG_DISABLE_OPEN 827 CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 828 endif 829 830 endif 831 832 ifdef CONFIG_EAP_IKEV2 833 # EAP-IKEv2 834 SRC_EAP_IKEV2 = ../src/eap_peer/eap_ikev2.c 835 SRC_EAP_IKEV2 += ../src/eap_peer/ikev2.c 836 SRC_EAP_IKEV2 += ../src/eap_common/eap_ikev2_common.c 837 SRC_EAP_IKEV2 += ../src/eap_common/ikev2_common.c 838 ifeq ($(CONFIG_EAP_IKEV2), dyn) 839 CFLAGS += -DEAP_IKEV2_DYNAMIC 840 EAPDYN += eap_ikev2.so 841 else 842 CFLAGS += -DEAP_IKEV2 843 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_IKEV2)) 844 endif 845 CONFIG_IEEE8021X_EAPOL=y 846 NEED_DH_GROUPS=y 847 NEED_DH_GROUPS_ALL=y 848 NEED_MODEXP=y 849 NEED_CIPHER=y 850 endif 851 852 ifdef CONFIG_EAP_VENDOR_TEST 853 ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 854 CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 855 EAPDYN += eap_vendor_test.so 856 else 857 CFLAGS += -DEAP_VENDOR_TEST 858 OBJS += ../src/eap_peer/eap_vendor_test.o 859 endif 860 CONFIG_IEEE8021X_EAPOL=y 861 endif 862 863 ifdef CONFIG_EAP_TNC 864 # EAP-TNC 865 CFLAGS += -DEAP_TNC 866 OBJS += ../src/eap_peer/eap_tnc.o 867 OBJS += ../src/eap_peer/tncc.o 868 NEED_BASE64=y 869 ifndef CONFIG_NATIVE_WINDOWS 870 ifndef CONFIG_DRIVER_BSD 871 LIBS += -ldl 872 endif 873 endif 874 endif 875 876 ifdef CONFIG_MACSEC 877 CFLAGS += -DCONFIG_MACSEC 878 CONFIG_IEEE8021X_EAPOL=y 879 NEED_AES_ENCBLOCK=y 880 NEED_AES_UNWRAP=y 881 NEED_AES_WRAP=y 882 OBJS += wpas_kay.o 883 OBJS += ../src/pae/ieee802_1x_cp.o 884 OBJS += ../src/pae/ieee802_1x_kay.o 885 OBJS += ../src/pae/ieee802_1x_key.o 886 OBJS += ../src/pae/ieee802_1x_secy_ops.o 887 ifdef CONFIG_AP 888 OBJS += ../src/ap/wpa_auth_kay.o 889 endif 890 endif 891 892 ifdef CONFIG_IEEE8021X_EAPOL 893 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 894 CFLAGS += -DIEEE8021X_EAPOL 895 OBJS += ../src/eapol_supp/eapol_supp_sm.o 896 OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o 897 NEED_EAP_COMMON=y 898 ifdef CONFIG_DYNAMIC_EAP_METHODS 899 CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 900 LIBS += -ldl -rdynamic 901 endif 902 endif 903 904 ifdef CONFIG_AP 905 NEED_EAP_COMMON=y 906 NEED_RSN_AUTHENTICATOR=y 907 CFLAGS += -DCONFIG_AP 908 OBJS += ap.o 909 CFLAGS += -DCONFIG_NO_RADIUS 910 CFLAGS += -DCONFIG_NO_ACCOUNTING 911 CFLAGS += -DCONFIG_NO_VLAN 912 OBJS += ../src/ap/hostapd.o 913 OBJS += ../src/ap/wpa_auth_glue.o 914 OBJS += ../src/ap/utils.o 915 OBJS += ../src/ap/authsrv.o 916 OBJS += ../src/ap/ap_config.o 917 OBJS += ../src/ap/sta_info.o 918 OBJS += ../src/ap/tkip_countermeasures.o 919 OBJS += ../src/ap/ap_mlme.o 920 OBJS += ../src/ap/ieee802_1x.o 921 OBJS += ../src/eapol_auth/eapol_auth_sm.o 922 OBJS += ../src/ap/ieee802_11_auth.o 923 OBJS += ../src/ap/ieee802_11_shared.o 924 OBJS += ../src/ap/drv_callbacks.o 925 OBJS += ../src/ap/ap_drv_ops.o 926 OBJS += ../src/ap/beacon.o 927 OBJS += ../src/ap/bss_load.o 928 OBJS += ../src/ap/eap_user_db.o 929 OBJS += ../src/ap/neighbor_db.o 930 OBJS += ../src/ap/rrm.o 931 OBJS += ../src/ap/ieee802_11_ht.o 932 ifdef CONFIG_IEEE80211AC 933 OBJS += ../src/ap/ieee802_11_vht.o 934 endif 935 ifdef CONFIG_IEEE80211AX 936 OBJS += ../src/ap/ieee802_11_he.o 937 endif 938 ifdef CONFIG_WNM_AP 939 CFLAGS += -DCONFIG_WNM_AP 940 OBJS += ../src/ap/wnm_ap.o 941 endif 942 ifdef CONFIG_MBO 943 OBJS += ../src/ap/mbo_ap.o 944 endif 945 ifdef CONFIG_FILS 946 OBJS += ../src/ap/fils_hlp.o 947 endif 948 ifdef CONFIG_CTRL_IFACE 949 OBJS += ../src/ap/ctrl_iface_ap.o 950 endif 951 952 CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 953 OBJS += ../src/eap_server/eap_server.o 954 OBJS += ../src/eap_server/eap_server_identity.o 955 OBJS += ../src/eap_server/eap_server_methods.o 956 957 ifdef CONFIG_IEEE80211AC 958 CFLAGS += -DCONFIG_IEEE80211AC 959 endif 960 ifdef CONFIG_IEEE80211AX 961 CFLAGS += -DCONFIG_IEEE80211AX 962 endif 963 964 ifdef NEED_AP_MLME 965 OBJS += ../src/ap/wmm.o 966 OBJS += ../src/ap/ap_list.o 967 OBJS += ../src/ap/ieee802_11.o 968 OBJS += ../src/ap/hw_features.o 969 OBJS += ../src/ap/dfs.o 970 CFLAGS += -DNEED_AP_MLME 971 endif 972 ifdef CONFIG_WPS 973 CFLAGS += -DEAP_SERVER_WSC 974 OBJS += ../src/ap/wps_hostapd.o 975 OBJS += ../src/eap_server/eap_server_wsc.o 976 endif 977 ifdef CONFIG_DPP 978 OBJS += ../src/ap/dpp_hostapd.o 979 OBJS += ../src/ap/gas_query_ap.o 980 NEED_AP_GAS_SERV=y 981 endif 982 ifdef CONFIG_INTERWORKING 983 NEED_AP_GAS_SERV=y 984 endif 985 ifdef NEED_AP_GAS_SERV 986 OBJS += ../src/ap/gas_serv.o 987 endif 988 ifdef CONFIG_HS20 989 OBJS += ../src/ap/hs20.o 990 endif 991 endif 992 993 ifdef CONFIG_MBO 994 OBJS += mbo.o 995 CFLAGS += -DCONFIG_MBO 996 endif 997 998 ifdef NEED_RSN_AUTHENTICATOR 999 CFLAGS += -DCONFIG_NO_RADIUS 1000 NEED_AES_WRAP=y 1001 OBJS += ../src/ap/wpa_auth.o 1002 OBJS += ../src/ap/wpa_auth_ie.o 1003 OBJS += ../src/ap/pmksa_cache_auth.o 1004 endif 1005 1006 ifdef CONFIG_ACS 1007 CFLAGS += -DCONFIG_ACS 1008 OBJS += ../src/ap/acs.o 1009 LIBS += -lm 1010 endif 1011 1012 ifdef CONFIG_PCSC 1013 # PC/SC interface for smartcards (USIM, GSM SIM) 1014 CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 1015 OBJS += ../src/utils/pcsc_funcs.o 1016 ifdef CONFIG_NATIVE_WINDOWS 1017 #Once MinGW gets support for WinScard, -lwinscard could be used instead of the 1018 #dynamic symbol loading that is now used in pcsc_funcs.c 1019 #LIBS += -lwinscard 1020 else 1021 ifdef CONFIG_OSX 1022 LIBS += -framework PCSC 1023 else 1024 LIBS += $(shell $(PKG_CONFIG) --libs libpcsclite) 1025 endif 1026 endif 1027 endif 1028 1029 ifdef CONFIG_SIM_SIMULATOR 1030 CFLAGS += -DCONFIG_SIM_SIMULATOR 1031 NEED_MILENAGE=y 1032 endif 1033 1034 ifdef CONFIG_USIM_SIMULATOR 1035 CFLAGS += -DCONFIG_USIM_SIMULATOR 1036 NEED_MILENAGE=y 1037 endif 1038 1039 ifdef NEED_MILENAGE 1040 OBJS += ../src/crypto/milenage.o 1041 NEED_AES_ENCBLOCK=y 1042 endif 1043 1044 ifdef CONFIG_PKCS12 1045 CFLAGS += -DPKCS12_FUNCS 1046 endif 1047 1048 ifdef CONFIG_SMARTCARD 1049 CFLAGS += -DCONFIG_SMARTCARD 1050 endif 1051 1052 ifdef NEED_DRAGONFLY 1053 OBJS += ../src/common/dragonfly.o 1054 endif 1055 1056 ifdef MS_FUNCS 1057 OBJS += ../src/crypto/ms_funcs.o 1058 NEED_DES=y 1059 NEED_MD4=y 1060 endif 1061 1062 ifdef CHAP 1063 OBJS += ../src/eap_common/chap.o 1064 endif 1065 1066 ifdef TLS_FUNCS 1067 NEED_DES=y 1068 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and 1069 # EAP_TEAP) 1070 OBJS += ../src/eap_peer/eap_tls_common.o 1071 ifndef CONFIG_FIPS 1072 NEED_TLS_PRF=y 1073 NEED_SHA1=y 1074 NEED_MD5=y 1075 endif 1076 endif 1077 1078 ifndef CONFIG_TLS 1079 CONFIG_TLS=openssl 1080 endif 1081 1082 ifdef CONFIG_TLSV11 1083 CFLAGS += -DCONFIG_TLSV11 1084 endif 1085 1086 ifdef CONFIG_TLSV12 1087 CFLAGS += -DCONFIG_TLSV12 1088 endif 1089 1090 ifeq ($(CONFIG_TLS), wolfssl) 1091 ifdef TLS_FUNCS 1092 CFLAGS += -DWOLFSSL_DER_LOAD 1093 OBJS += ../src/crypto/tls_wolfssl.o 1094 endif 1095 OBJS += ../src/crypto/crypto_wolfssl.o 1096 OBJS_p += ../src/crypto/crypto_wolfssl.o 1097 ifdef NEED_FIPS186_2_PRF 1098 OBJS += ../src/crypto/fips_prf_wolfssl.o 1099 endif 1100 NEED_TLS_PRF_SHA256=y 1101 LIBS += -lwolfssl -lm 1102 LIBS_p += -lwolfssl -lm 1103 endif 1104 1105 ifeq ($(CONFIG_TLS), openssl) 1106 ifdef TLS_FUNCS 1107 CFLAGS += -DEAP_TLS_OPENSSL 1108 OBJS += ../src/crypto/tls_openssl.o 1109 OBJS += ../src/crypto/tls_openssl_ocsp.o 1110 LIBS += -lssl 1111 endif 1112 OBJS += ../src/crypto/crypto_openssl.o 1113 OBJS_p += ../src/crypto/crypto_openssl.o 1114 OBJS_priv += ../src/crypto/crypto_openssl.o 1115 ifdef NEED_FIPS186_2_PRF 1116 OBJS += ../src/crypto/fips_prf_openssl.o 1117 endif 1118 NEED_TLS_PRF_SHA256=y 1119 LIBS += -lcrypto 1120 LIBS_p += -lcrypto 1121 ifdef CONFIG_TLS_ADD_DL 1122 LIBS += -ldl 1123 LIBS_p += -ldl 1124 endif 1125 ifndef CONFIG_TLS_DEFAULT_CIPHERS 1126 CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 1127 endif 1128 CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 1129 endif 1130 1131 ifeq ($(CONFIG_TLS), gnutls) 1132 ifndef CONFIG_CRYPTO 1133 # default to libgcrypt 1134 CONFIG_CRYPTO=gnutls 1135 endif 1136 ifdef TLS_FUNCS 1137 OBJS += ../src/crypto/tls_gnutls.o 1138 LIBS += -lgnutls -lgpg-error 1139 endif 1140 OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1141 OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1142 OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1143 ifdef NEED_FIPS186_2_PRF 1144 OBJS += ../src/crypto/fips_prf_internal.o 1145 SHA1OBJS += ../src/crypto/sha1-internal.o 1146 endif 1147 ifeq ($(CONFIG_CRYPTO), gnutls) 1148 LIBS += -lgcrypt 1149 LIBS_p += -lgcrypt 1150 CONFIG_INTERNAL_RC4=y 1151 CONFIG_INTERNAL_DH_GROUP5=y 1152 endif 1153 ifeq ($(CONFIG_CRYPTO), nettle) 1154 LIBS += -lnettle -lgmp 1155 LIBS_p += -lnettle -lgmp 1156 CONFIG_INTERNAL_RC4=y 1157 CONFIG_INTERNAL_DH_GROUP5=y 1158 endif 1159 endif 1160 1161 ifeq ($(CONFIG_TLS), internal) 1162 ifndef CONFIG_CRYPTO 1163 CONFIG_CRYPTO=internal 1164 endif 1165 ifdef TLS_FUNCS 1166 OBJS += ../src/crypto/crypto_internal-rsa.o 1167 OBJS += ../src/crypto/tls_internal.o 1168 OBJS += ../src/tls/tlsv1_common.o 1169 OBJS += ../src/tls/tlsv1_record.o 1170 OBJS += ../src/tls/tlsv1_cred.o 1171 OBJS += ../src/tls/tlsv1_client.o 1172 OBJS += ../src/tls/tlsv1_client_write.o 1173 OBJS += ../src/tls/tlsv1_client_read.o 1174 OBJS += ../src/tls/tlsv1_client_ocsp.o 1175 OBJS += ../src/tls/rsa.o 1176 OBJS += ../src/tls/x509v3.o 1177 OBJS += ../src/tls/pkcs1.o 1178 OBJS += ../src/tls/pkcs5.o 1179 OBJS += ../src/tls/pkcs8.o 1180 NEED_ASN1=y 1181 NEED_BASE64=y 1182 NEED_TLS_PRF=y 1183 ifdef CONFIG_TLSV12 1184 NEED_TLS_PRF_SHA256=y 1185 endif 1186 NEED_MODEXP=y 1187 NEED_CIPHER=y 1188 CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1189 endif 1190 ifdef NEED_CIPHER 1191 NEED_DES=y 1192 OBJS += ../src/crypto/crypto_internal-cipher.o 1193 endif 1194 ifdef NEED_MODEXP 1195 OBJS += ../src/crypto/crypto_internal-modexp.o 1196 OBJS += ../src/tls/bignum.o 1197 endif 1198 ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1199 OBJS += ../src/crypto/crypto_libtomcrypt.o 1200 OBJS_p += ../src/crypto/crypto_libtomcrypt.o 1201 LIBS += -ltomcrypt -ltfm 1202 LIBS_p += -ltomcrypt -ltfm 1203 CONFIG_INTERNAL_SHA256=y 1204 CONFIG_INTERNAL_RC4=y 1205 CONFIG_INTERNAL_DH_GROUP5=y 1206 endif 1207 ifeq ($(CONFIG_CRYPTO), internal) 1208 OBJS += ../src/crypto/crypto_internal.o 1209 OBJS_p += ../src/crypto/crypto_internal.o 1210 NEED_AES_ENC=y 1211 CFLAGS += -DCONFIG_CRYPTO_INTERNAL 1212 ifdef CONFIG_INTERNAL_LIBTOMMATH 1213 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1214 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 1215 CFLAGS += -DLTM_FAST 1216 endif 1217 else 1218 LIBS += -ltommath 1219 LIBS_p += -ltommath 1220 endif 1221 CONFIG_INTERNAL_AES=y 1222 CONFIG_INTERNAL_DES=y 1223 CONFIG_INTERNAL_SHA1=y 1224 CONFIG_INTERNAL_MD4=y 1225 CONFIG_INTERNAL_MD5=y 1226 CONFIG_INTERNAL_SHA256=y 1227 CONFIG_INTERNAL_SHA384=y 1228 CONFIG_INTERNAL_SHA512=y 1229 CONFIG_INTERNAL_RC4=y 1230 CONFIG_INTERNAL_DH_GROUP5=y 1231 endif 1232 ifeq ($(CONFIG_CRYPTO), cryptoapi) 1233 OBJS += ../src/crypto/crypto_cryptoapi.o 1234 OBJS_p += ../src/crypto/crypto_cryptoapi.o 1235 CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 1236 CONFIG_INTERNAL_SHA256=y 1237 CONFIG_INTERNAL_RC4=y 1238 endif 1239 endif 1240 1241 ifeq ($(CONFIG_TLS), linux) 1242 OBJS += ../src/crypto/crypto_linux.o 1243 OBJS_p += ../src/crypto/crypto_linux.o 1244 ifdef TLS_FUNCS 1245 OBJS += ../src/crypto/crypto_internal-rsa.o 1246 OBJS += ../src/crypto/tls_internal.o 1247 OBJS += ../src/tls/tlsv1_common.o 1248 OBJS += ../src/tls/tlsv1_record.o 1249 OBJS += ../src/tls/tlsv1_cred.o 1250 OBJS += ../src/tls/tlsv1_client.o 1251 OBJS += ../src/tls/tlsv1_client_write.o 1252 OBJS += ../src/tls/tlsv1_client_read.o 1253 OBJS += ../src/tls/tlsv1_client_ocsp.o 1254 OBJS += ../src/tls/rsa.o 1255 OBJS += ../src/tls/x509v3.o 1256 OBJS += ../src/tls/pkcs1.o 1257 OBJS += ../src/tls/pkcs5.o 1258 OBJS += ../src/tls/pkcs8.o 1259 NEED_ASN1=y 1260 NEED_BASE64=y 1261 NEED_TLS_PRF=y 1262 ifdef CONFIG_TLSV12 1263 NEED_TLS_PRF_SHA256=y 1264 endif 1265 NEED_MODEXP=y 1266 NEED_CIPHER=y 1267 CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1268 endif 1269 ifdef NEED_MODEXP 1270 OBJS += ../src/crypto/crypto_internal-modexp.o 1271 OBJS += ../src/tls/bignum.o 1272 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1273 CFLAGS += -DLTM_FAST 1274 endif 1275 CONFIG_INTERNAL_DH_GROUP5=y 1276 ifdef NEED_FIPS186_2_PRF 1277 OBJS += ../src/crypto/fips_prf_internal.o 1278 OBJS += ../src/crypto/sha1-internal.o 1279 endif 1280 endif 1281 1282 ifeq ($(CONFIG_TLS), none) 1283 ifdef TLS_FUNCS 1284 OBJS += ../src/crypto/tls_none.o 1285 CFLAGS += -DEAP_TLS_NONE 1286 CONFIG_INTERNAL_AES=y 1287 CONFIG_INTERNAL_SHA1=y 1288 CONFIG_INTERNAL_MD5=y 1289 endif 1290 OBJS += ../src/crypto/crypto_none.o 1291 OBJS_p += ../src/crypto/crypto_none.o 1292 CONFIG_INTERNAL_SHA256=y 1293 CONFIG_INTERNAL_RC4=y 1294 endif 1295 1296 ifdef TLS_FUNCS 1297 ifdef CONFIG_SMARTCARD 1298 ifndef CONFIG_NATIVE_WINDOWS 1299 ifneq ($(CONFIG_L2_PACKET), freebsd) 1300 LIBS += -ldl 1301 endif 1302 endif 1303 endif 1304 endif 1305 1306 ifndef TLS_FUNCS 1307 OBJS += ../src/crypto/tls_none.o 1308 ifeq ($(CONFIG_TLS), internal) 1309 CONFIG_INTERNAL_AES=y 1310 CONFIG_INTERNAL_SHA1=y 1311 CONFIG_INTERNAL_MD5=y 1312 CONFIG_INTERNAL_RC4=y 1313 endif 1314 endif 1315 1316 AESOBJS = # none so far (see below) 1317 ifdef CONFIG_INTERNAL_AES 1318 AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o 1319 endif 1320 1321 ifneq ($(CONFIG_TLS), openssl) 1322 ifneq ($(CONFIG_TLS), wolfssl) 1323 NEED_INTERNAL_AES_WRAP=y 1324 endif 1325 endif 1326 ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP 1327 # Seems to be needed at least with BoringSSL 1328 NEED_INTERNAL_AES_WRAP=y 1329 CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP 1330 endif 1331 ifdef CONFIG_FIPS 1332 # Have to use internal AES key wrap routines to use OpenSSL EVP since the 1333 # OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode. 1334 NEED_INTERNAL_AES_WRAP=y 1335 endif 1336 1337 ifdef NEED_INTERNAL_AES_WRAP 1338 ifneq ($(CONFIG_TLS), linux) 1339 AESOBJS += ../src/crypto/aes-unwrap.o 1340 endif 1341 endif 1342 ifdef NEED_AES_EAX 1343 AESOBJS += ../src/crypto/aes-eax.o 1344 NEED_AES_CTR=y 1345 endif 1346 ifdef NEED_AES_SIV 1347 AESOBJS += ../src/crypto/aes-siv.o 1348 NEED_AES_CTR=y 1349 endif 1350 ifdef NEED_AES_CTR 1351 AESOBJS += ../src/crypto/aes-ctr.o 1352 endif 1353 ifdef NEED_AES_ENCBLOCK 1354 AESOBJS += ../src/crypto/aes-encblock.o 1355 endif 1356 NEED_AES_ENC=y 1357 ifdef CONFIG_OPENSSL_CMAC 1358 CFLAGS += -DCONFIG_OPENSSL_CMAC 1359 else 1360 ifneq ($(CONFIG_TLS), linux) 1361 ifneq ($(CONFIG_TLS), wolfssl) 1362 AESOBJS += ../src/crypto/aes-omac1.o 1363 endif 1364 endif 1365 endif 1366 ifdef NEED_AES_WRAP 1367 NEED_AES_ENC=y 1368 ifdef NEED_INTERNAL_AES_WRAP 1369 AESOBJS += ../src/crypto/aes-wrap.o 1370 endif 1371 endif 1372 ifdef NEED_AES_CBC 1373 NEED_AES_ENC=y 1374 ifneq ($(CONFIG_TLS), openssl) 1375 ifneq ($(CONFIG_TLS), linux) 1376 ifneq ($(CONFIG_TLS), wolfssl) 1377 AESOBJS += ../src/crypto/aes-cbc.o 1378 endif 1379 endif 1380 endif 1381 endif 1382 ifdef NEED_AES_ENC 1383 ifdef CONFIG_INTERNAL_AES 1384 AESOBJS += ../src/crypto/aes-internal-enc.o 1385 endif 1386 endif 1387 ifdef NEED_AES 1388 OBJS += $(AESOBJS) 1389 endif 1390 1391 ifdef NEED_SHA1 1392 ifneq ($(CONFIG_TLS), openssl) 1393 ifneq ($(CONFIG_TLS), linux) 1394 ifneq ($(CONFIG_TLS), gnutls) 1395 ifneq ($(CONFIG_TLS), wolfssl) 1396 SHA1OBJS += ../src/crypto/sha1.o 1397 endif 1398 endif 1399 endif 1400 endif 1401 SHA1OBJS += ../src/crypto/sha1-prf.o 1402 ifdef CONFIG_INTERNAL_SHA1 1403 SHA1OBJS += ../src/crypto/sha1-internal.o 1404 ifdef NEED_FIPS186_2_PRF 1405 SHA1OBJS += ../src/crypto/fips_prf_internal.o 1406 endif 1407 endif 1408 ifdef CONFIG_NO_WPA_PASSPHRASE 1409 CFLAGS += -DCONFIG_NO_PBKDF2 1410 else 1411 ifneq ($(CONFIG_TLS), openssl) 1412 ifneq ($(CONFIG_TLS), wolfssl) 1413 SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1414 endif 1415 endif 1416 endif 1417 ifdef NEED_T_PRF 1418 SHA1OBJS += ../src/crypto/sha1-tprf.o 1419 endif 1420 ifdef NEED_TLS_PRF 1421 SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1422 endif 1423 endif 1424 1425 ifndef CONFIG_FIPS 1426 ifneq ($(CONFIG_TLS), openssl) 1427 ifneq ($(CONFIG_TLS), linux) 1428 ifneq ($(CONFIG_TLS), gnutls) 1429 ifneq ($(CONFIG_TLS), wolfssl) 1430 MD5OBJS += ../src/crypto/md5.o 1431 endif 1432 endif 1433 endif 1434 endif 1435 endif 1436 ifdef NEED_MD5 1437 ifdef CONFIG_INTERNAL_MD5 1438 MD5OBJS += ../src/crypto/md5-internal.o 1439 endif 1440 OBJS += $(MD5OBJS) 1441 OBJS_p += $(MD5OBJS) 1442 OBJS_priv += $(MD5OBJS) 1443 endif 1444 1445 ifdef NEED_MD4 1446 ifdef CONFIG_INTERNAL_MD4 1447 OBJS += ../src/crypto/md4-internal.o 1448 endif 1449 endif 1450 1451 DESOBJS = # none needed when not internal 1452 ifdef NEED_DES 1453 ifndef CONFIG_FIPS 1454 CFLAGS += -DCONFIG_DES 1455 endif 1456 ifdef CONFIG_INTERNAL_DES 1457 DESOBJS += ../src/crypto/des-internal.o 1458 endif 1459 endif 1460 1461 ifdef CONFIG_NO_RC4 1462 CFLAGS += -DCONFIG_NO_RC4 1463 endif 1464 1465 ifdef NEED_RC4 1466 ifdef CONFIG_INTERNAL_RC4 1467 ifndef CONFIG_NO_RC4 1468 OBJS += ../src/crypto/rc4.o 1469 endif 1470 endif 1471 endif 1472 1473 SHA256OBJS = # none by default 1474 CFLAGS += -DCONFIG_SHA256 1475 ifneq ($(CONFIG_TLS), openssl) 1476 ifneq ($(CONFIG_TLS), linux) 1477 ifneq ($(CONFIG_TLS), gnutls) 1478 ifneq ($(CONFIG_TLS), wolfssl) 1479 SHA256OBJS += ../src/crypto/sha256.o 1480 endif 1481 endif 1482 endif 1483 endif 1484 SHA256OBJS += ../src/crypto/sha256-prf.o 1485 ifdef CONFIG_INTERNAL_SHA256 1486 SHA256OBJS += ../src/crypto/sha256-internal.o 1487 endif 1488 ifdef CONFIG_INTERNAL_SHA384 1489 CFLAGS += -DCONFIG_INTERNAL_SHA384 1490 SHA256OBJS += ../src/crypto/sha384-internal.o 1491 endif 1492 ifdef CONFIG_INTERNAL_SHA512 1493 CFLAGS += -DCONFIG_INTERNAL_SHA512 1494 SHA256OBJS += ../src/crypto/sha512-internal.o 1495 endif 1496 ifdef NEED_TLS_PRF_SHA256 1497 SHA256OBJS += ../src/crypto/sha256-tlsprf.o 1498 endif 1499 ifdef NEED_TLS_PRF_SHA384 1500 SHA256OBJS += ../src/crypto/sha384-tlsprf.o 1501 endif 1502 ifdef NEED_HMAC_SHA256_KDF 1503 CFLAGS += -DCONFIG_HMAC_SHA256_KDF 1504 OBJS += ../src/crypto/sha256-kdf.o 1505 endif 1506 ifdef NEED_HMAC_SHA384_KDF 1507 CFLAGS += -DCONFIG_HMAC_SHA384_KDF 1508 OBJS += ../src/crypto/sha384-kdf.o 1509 endif 1510 ifdef NEED_HMAC_SHA512_KDF 1511 CFLAGS += -DCONFIG_HMAC_SHA512_KDF 1512 OBJS += ../src/crypto/sha512-kdf.o 1513 endif 1514 OBJS += $(SHA256OBJS) 1515 ifdef NEED_SHA384 1516 ifneq ($(CONFIG_TLS), openssl) 1517 ifneq ($(CONFIG_TLS), linux) 1518 ifneq ($(CONFIG_TLS), gnutls) 1519 ifneq ($(CONFIG_TLS), wolfssl) 1520 OBJS += ../src/crypto/sha384.o 1521 endif 1522 endif 1523 endif 1524 endif 1525 CFLAGS += -DCONFIG_SHA384 1526 OBJS += ../src/crypto/sha384-prf.o 1527 endif 1528 ifdef NEED_SHA512 1529 ifneq ($(CONFIG_TLS), openssl) 1530 ifneq ($(CONFIG_TLS), linux) 1531 ifneq ($(CONFIG_TLS), gnutls) 1532 ifneq ($(CONFIG_TLS), wolfssl) 1533 OBJS += ../src/crypto/sha512.o 1534 endif 1535 endif 1536 endif 1537 endif 1538 CFLAGS += -DCONFIG_SHA512 1539 OBJS += ../src/crypto/sha512-prf.o 1540 endif 1541 1542 ifdef NEED_ASN1 1543 OBJS += ../src/tls/asn1.o 1544 endif 1545 1546 ifdef NEED_DH_GROUPS 1547 OBJS += ../src/crypto/dh_groups.o 1548 endif 1549 ifdef NEED_DH_GROUPS_ALL 1550 CFLAGS += -DALL_DH_GROUPS 1551 endif 1552 ifdef CONFIG_INTERNAL_DH_GROUP5 1553 ifdef NEED_DH_GROUPS 1554 OBJS += ../src/crypto/dh_group5.o 1555 endif 1556 endif 1557 1558 ifdef NEED_ECC 1559 CFLAGS += -DCONFIG_ECC 1560 endif 1561 1562 ifdef CONFIG_NO_RANDOM_POOL 1563 CFLAGS += -DCONFIG_NO_RANDOM_POOL 1564 else 1565 ifdef CONFIG_GETRANDOM 1566 CFLAGS += -DCONFIG_GETRANDOM 1567 endif 1568 OBJS += ../src/crypto/random.o 1569 endif 1570 1571 ifdef CONFIG_CTRL_IFACE 1572 ifeq ($(CONFIG_CTRL_IFACE), y) 1573 ifdef CONFIG_NATIVE_WINDOWS 1574 CONFIG_CTRL_IFACE=named_pipe 1575 else 1576 CONFIG_CTRL_IFACE=unix 1577 endif 1578 endif 1579 CFLAGS += -DCONFIG_CTRL_IFACE 1580 ifeq ($(CONFIG_CTRL_IFACE), unix) 1581 CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1582 OBJS += ../src/common/ctrl_iface_common.o 1583 endif 1584 ifeq ($(CONFIG_CTRL_IFACE), udp) 1585 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1586 endif 1587 ifeq ($(CONFIG_CTRL_IFACE), udp6) 1588 CONFIG_CTRL_IFACE=udp 1589 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1590 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 1591 endif 1592 ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1593 CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1594 endif 1595 ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 1596 CONFIG_CTRL_IFACE=udp 1597 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1598 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1599 endif 1600 ifeq ($(CONFIG_CTRL_IFACE), udp6-remote) 1601 CONFIG_CTRL_IFACE=udp 1602 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1603 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1604 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 1605 endif 1606 OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o 1607 endif 1608 1609 ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1610 CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1611 OBJS += dbus/dbus_dict_helpers.o 1612 OBJS += dbus/dbus_new_helpers.o 1613 OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o 1614 OBJS += dbus/dbus_common.o 1615 ifdef CONFIG_WPS 1616 OBJS += dbus/dbus_new_handlers_wps.o 1617 endif 1618 ifdef CONFIG_P2P 1619 OBJS += dbus/dbus_new_handlers_p2p.o 1620 endif 1621 ifndef DBUS_LIBS 1622 DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1623 endif 1624 ifndef DBUS_INCLUDE 1625 DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1626 endif 1627 ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1628 OBJS += dbus/dbus_new_introspect.o 1629 CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1630 endif 1631 CFLAGS += $(DBUS_INCLUDE) 1632 LIBS += $(DBUS_LIBS) 1633 endif 1634 1635 ifdef CONFIG_READLINE 1636 OBJS_c += ../src/utils/edit_readline.o 1637 LIBS_c += -lreadline -lncurses 1638 else 1639 ifdef CONFIG_WPA_CLI_EDIT 1640 OBJS_c += ../src/utils/edit.o 1641 else 1642 OBJS_c += ../src/utils/edit_simple.o 1643 endif 1644 endif 1645 1646 ifdef CONFIG_NATIVE_WINDOWS 1647 CFLAGS += -DCONFIG_NATIVE_WINDOWS 1648 LIBS += -lws2_32 -lgdi32 -lcrypt32 1649 LIBS_c += -lws2_32 1650 LIBS_p += -lws2_32 -lgdi32 1651 ifeq ($(CONFIG_CRYPTO), cryptoapi) 1652 LIBS_p += -lcrypt32 1653 endif 1654 endif 1655 1656 ifdef CONFIG_NO_STDOUT_DEBUG 1657 CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1658 ifndef CONFIG_CTRL_IFACE 1659 CFLAGS += -DCONFIG_NO_WPA_MSG 1660 endif 1661 endif 1662 1663 ifdef CONFIG_IPV6 1664 # for eapol_test only 1665 CFLAGS += -DCONFIG_IPV6 1666 endif 1667 1668 ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR 1669 CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR 1670 endif 1671 1672 ifdef NEED_BASE64 1673 OBJS += ../src/utils/base64.o 1674 endif 1675 1676 ifdef NEED_SME 1677 OBJS += sme.o 1678 CFLAGS += -DCONFIG_SME 1679 endif 1680 1681 OBJS += ../src/common/ieee802_11_common.o 1682 OBJS += ../src/common/hw_features_common.o 1683 1684 ifdef NEED_EAP_COMMON 1685 OBJS += ../src/eap_common/eap_common.o 1686 endif 1687 1688 ifndef CONFIG_MAIN 1689 CONFIG_MAIN=main 1690 endif 1691 1692 ifdef CONFIG_DEBUG_SYSLOG 1693 CFLAGS += -DCONFIG_DEBUG_SYSLOG 1694 ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1695 CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1696 endif 1697 endif 1698 1699 ifdef CONFIG_DEBUG_LINUX_TRACING 1700 CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1701 endif 1702 1703 ifdef CONFIG_DEBUG_FILE 1704 CFLAGS += -DCONFIG_DEBUG_FILE 1705 endif 1706 1707 ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1708 CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1709 endif 1710 1711 ifdef CONFIG_FIPS 1712 CFLAGS += -DCONFIG_FIPS 1713 ifneq ($(CONFIG_TLS), openssl) 1714 ifneq ($(CONFIG_TLS), wolfssl) 1715 $(error CONFIG_FIPS=y requires CONFIG_TLS=openssl) 1716 endif 1717 endif 1718 endif 1719 1720 OBJS += $(SHA1OBJS) $(DESOBJS) 1721 1722 OBJS_p += $(SHA1OBJS) 1723 OBJS_p += $(SHA256OBJS) 1724 OBJS_priv += $(SHA1OBJS) 1725 1726 ifdef CONFIG_BGSCAN_SIMPLE 1727 CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1728 OBJS += bgscan_simple.o 1729 NEED_BGSCAN=y 1730 endif 1731 1732 ifdef CONFIG_BGSCAN_LEARN 1733 CFLAGS += -DCONFIG_BGSCAN_LEARN 1734 OBJS += bgscan_learn.o 1735 NEED_BGSCAN=y 1736 endif 1737 1738 ifdef NEED_BGSCAN 1739 CFLAGS += -DCONFIG_BGSCAN 1740 OBJS += bgscan.o 1741 endif 1742 1743 ifdef CONFIG_AUTOSCAN_EXPONENTIAL 1744 CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL 1745 OBJS += autoscan_exponential.o 1746 NEED_AUTOSCAN=y 1747 endif 1748 1749 ifdef CONFIG_AUTOSCAN_PERIODIC 1750 CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC 1751 OBJS += autoscan_periodic.o 1752 NEED_AUTOSCAN=y 1753 endif 1754 1755 ifdef NEED_AUTOSCAN 1756 CFLAGS += -DCONFIG_AUTOSCAN 1757 OBJS += autoscan.o 1758 endif 1759 1760 ifdef CONFIG_EXT_PASSWORD_TEST 1761 OBJS += ../src/utils/ext_password_test.o 1762 CFLAGS += -DCONFIG_EXT_PASSWORD_TEST 1763 NEED_EXT_PASSWORD=y 1764 endif 1765 1766 ifdef CONFIG_EXT_PASSWORD_FILE 1767 OBJS += ../src/utils/ext_password_file.o 1768 CFLAGS += -DCONFIG_EXT_PASSWORD_FILE 1769 NEED_EXT_PASSWORD=y 1770 endif 1771 1772 ifdef NEED_EXT_PASSWORD 1773 OBJS += ../src/utils/ext_password.o 1774 CFLAGS += -DCONFIG_EXT_PASSWORD 1775 endif 1776 1777 ifdef NEED_GAS_SERVER 1778 OBJS += ../src/common/gas_server.o 1779 CFLAGS += -DCONFIG_GAS_SERVER 1780 NEED_GAS=y 1781 endif 1782 1783 ifdef NEED_GAS 1784 OBJS += ../src/common/gas.o 1785 OBJS += gas_query.o 1786 CFLAGS += -DCONFIG_GAS 1787 NEED_OFFCHANNEL=y 1788 endif 1789 1790 ifdef NEED_OFFCHANNEL 1791 OBJS += offchannel.o 1792 CFLAGS += -DCONFIG_OFFCHANNEL 1793 endif 1794 1795 ifdef NEED_JSON 1796 OBJS += ../src/utils/json.o 1797 CFLAGS += -DCONFIG_JSON 1798 endif 1799 1800 ifdef CONFIG_MODULE_TESTS 1801 CFLAGS += -DCONFIG_MODULE_TESTS 1802 OBJS += wpas_module_tests.o 1803 OBJS += ../src/utils/utils_module_tests.o 1804 OBJS += ../src/common/common_module_tests.o 1805 OBJS += ../src/crypto/crypto_module_tests.o 1806 ifdef CONFIG_WPS 1807 OBJS += ../src/wps/wps_module_tests.o 1808 endif 1809 endif 1810 1811 OBJS += ../src/drivers/driver_common.o 1812 OBJS_priv += ../src/drivers/driver_common.o 1813 1814 OBJS += wpa_supplicant.o events.o bssid_ignore.o wpas_glue.o scan.o 1815 OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o 1816 OBJS_t += ../src/radius/radius_client.o 1817 OBJS_t += ../src/radius/radius.o 1818 OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o 1819 1820 OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o 1821 OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o 1822 1823 OBJS += $(CONFIG_MAIN).o 1824 1825 ifdef CONFIG_PRIVSEP 1826 OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o 1827 OBJS_priv += $(OBJS_l2) 1828 OBJS_priv += ../src/utils/os_$(CONFIG_OS).o 1829 OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o 1830 OBJS_priv += ../src/utils/common.o 1831 OBJS_priv += ../src/utils/wpa_debug.o 1832 OBJS_priv += ../src/utils/wpabuf.o 1833 OBJS_priv += wpa_priv.o 1834 ifdef CONFIG_DRIVER_NL80211 1835 OBJS_priv += ../src/common/ieee802_11_common.o 1836 endif 1837 OBJS += ../src/l2_packet/l2_packet_privsep.o 1838 OBJS += ../src/drivers/driver_privsep.o 1839 EXTRA_progs += wpa_priv 1840 else 1841 OBJS += $(OBJS_d) ../src/drivers/drivers.o 1842 OBJS += $(OBJS_l2) 1843 endif 1844 1845 ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1846 CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1847 OBJS += ../src/drivers/ndis_events.o 1848 EXTRALIBS += -loleaut32 -lole32 -luuid 1849 ifdef PLATFORMSDKLIB 1850 EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1851 else 1852 EXTRALIBS += WbemUuid.Lib 1853 endif 1854 endif 1855 1856 ifdef CONFIG_FST 1857 CFLAGS += -DCONFIG_FST 1858 ifdef CONFIG_FST_TEST 1859 CFLAGS += -DCONFIG_FST_TEST 1860 endif 1861 FST_OBJS += ../src/fst/fst.o 1862 FST_OBJS += ../src/fst/fst_session.o 1863 FST_OBJS += ../src/fst/fst_iface.o 1864 FST_OBJS += ../src/fst/fst_group.o 1865 FST_OBJS += ../src/fst/fst_ctrl_aux.o 1866 ifdef CONFIG_CTRL_IFACE 1867 FST_OBJS += ../src/fst/fst_ctrl_iface.o 1868 endif 1869 OBJS += $(FST_OBJS) 1870 OBJS_t += $(FST_OBJS) 1871 OBJS_t2 += $(FST_OBJS) 1872 OBJS_nfc += $(FST_OBJS) 1873 endif 1874 1875 ifdef CONFIG_WEP 1876 CFLAGS += -DCONFIG_WEP 1877 endif 1878 1879 ifdef CONFIG_NO_TKIP 1880 CFLAGS += -DCONFIG_NO_TKIP 1881 endif 1882 1883 dynamic_eap_methods: $(EAPDYN) 1884 1885 _OBJS_VAR := OBJS_priv 1886 include ../src/objs.mk 1887 wpa_priv: $(BCHECK) $(OBJS_priv) 1888 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) 1889 @$(E) " LD " $@ 1890 1891 _OBJS_VAR := OBJS 1892 include ../src/objs.mk 1893 wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) 1894 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) 1895 @$(E) " LD " $@ 1896 1897 _OBJS_VAR := OBJS_t 1898 include ../src/objs.mk 1899 eapol_test: $(OBJS_t) 1900 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) 1901 @$(E) " LD " $@ 1902 1903 _OBJS_VAR := OBJS_t2 1904 include ../src/objs.mk 1905 preauth_test: $(OBJS_t2) 1906 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) 1907 @$(E) " LD " $@ 1908 1909 _OBJS_VAR := OBJS_p 1910 include ../src/objs.mk 1911 wpa_passphrase: $(OBJS_p) 1912 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS) 1913 @$(E) " LD " $@ 1914 1915 _OBJS_VAR := OBJS_c 1916 include ../src/objs.mk 1917 wpa_cli: $(OBJS_c) 1918 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c) 1919 @$(E) " LD " $@ 1920 1921 LIBCTRL += ../src/common/wpa_ctrl.o 1922 LIBCTRL += ../src/utils/os_$(CONFIG_OS).o 1923 LIBCTRL += ../src/utils/common.o 1924 LIBCTRL += ../src/utils/wpa_debug.o 1925 LIBCTRLSO += ../src/common/wpa_ctrl.c 1926 LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c 1927 LIBCTRLSO += ../src/utils/common.c 1928 LIBCTRLSO += ../src/utils/wpa_debug.c 1929 1930 _OBJS_VAR := LIBCTRL 1931 include ../src/objs.mk 1932 libwpa_client.a: $(LIBCTRL) 1933 $(Q)rm -f $@ 1934 $(Q)$(AR) crs $@ $? 1935 @$(E) " AR " $@ 1936 1937 libwpa_client.so: $(LIBCTRLSO) 1938 @$(E) " CC $@ ($^)" 1939 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^ 1940 1941 OBJS_wpatest := libwpa_test.o 1942 _OBJS_VAR := OBJS_wpatest 1943 include ../src/objs.mk 1944 libwpa_test1: $(OBJS_wpatest) libwpa_client.a 1945 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c) 1946 @$(E) " LD " $@ 1947 1948 libwpa_test2: $(OBJS_wpatest) libwpa_client.so 1949 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c) 1950 @$(E) " LD " $@ 1951 1952 _OBJS_VAR := OBJS_nfc 1953 include ../src/objs.mk 1954 nfc_pw_token: $(OBJS_nfc) 1955 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS) 1956 @$(E) " LD " $@ 1957 1958 win_if_list: win_if_list.c 1959 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) 1960 @$(E) " LD " $@ 1961 1962 eap_psk.so: $(SRC_EAP_PSK) 1963 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1964 -Deap_peer_psk_register=eap_peer_method_dynamic_init 1965 @$(E) " CC/LD " $@ 1966 1967 eap_pax.so: $(SRC_EAP_PAX) 1968 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1969 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1970 @$(E) " CC/LD " $@ 1971 1972 eap_peap.so: $(SRC_EAP_PEAP) 1973 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1974 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1975 @$(E) " CC/LD " $@ 1976 1977 eap_sake.so: $(SRC_EAP_SAKE) 1978 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1979 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1980 @$(E) " CC/LD " $@ 1981 1982 eap_ikev2.so: $(SRC_EAP_IKEV2) 1983 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1984 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1985 @$(E) " CC/LD " $@ 1986 1987 eap_eke.so: $(SRC_EAP_EKE) 1988 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1989 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1990 @$(E) " CC/LD " $@ 1991 1992 eap_mschapv2.so: $(SRC_EAP_MSCHAPV2) 1993 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1994 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 1995 @$(E) " CC/LD " $@ 1996 1997 eap_fast.so: $(SRC_EAP_FAST) 1998 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1999 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2000 @$(E) " CC/LD " $@ 2001 2002 eap_teap.so: $(SRC_EAP_TEAP) 2003 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2004 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2005 @$(E) " CC/LD " $@ 2006 2007 eap_gpsk.so: $(SRC_EAP_GPSK) 2008 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2009 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2010 @$(E) " CC/LD " $@ 2011 2012 %.so: ../src/eap_peer/%.c 2013 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ 2014 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init 2015 @$(E) " CC/LD " $@ 2016 2017 %.service: %.service.in 2018 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 2019 @$(E) " sed" $< 2020 2021 %@.service: %.service.arg.in 2022 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 2023 @$(E) " sed" $< 2024 2025 wpa_supplicant.exe: wpa_supplicant 2026 mv -f $< $@ 2027 wpa_cli.exe: wpa_cli 2028 mv -f $< $@ 2029 wpa_passphrase.exe: wpa_passphrase 2030 mv -f $< $@ 2031 win_if_list.exe: win_if_list 2032 mv -f $< $@ 2033 eapol_test.exe: eapol_test 2034 mv -f $< $@ 2035 2036 WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe 2037 2038 windows-bin: $(WINALL) 2039 $(STRIP) $(WINALL) 2040 2041 wpa_gui: 2042 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement" 2043 2044 wpa_gui-qt4/Makefile: 2045 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 2046 2047 wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts 2048 lrelease wpa_gui-qt4/wpa_gui.pro 2049 2050 wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm 2051 $(MAKE) -C wpa_gui-qt4 2052 2053 FIPSDIR=/ssl/fips-2.0 2054 FIPSLD=$(FIPSDIR)/bin/fipsld 2055 fips: 2056 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)" 2057 2058 .PHONY: lcov-html 2059 lcov-html: $(call BUILDOBJ,wpa_supplicant.gcda) 2060 lcov -c -d $(BUILDDIR) > lcov.info 2061 genhtml lcov.info --output-directory lcov-html 2062 2063 clean: common-clean 2064 $(MAKE) -C ../src clean 2065 $(MAKE) -C dbus clean 2066 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov 2067 rm -f eap_*.so $(WINALL) eapol_test preauth_test 2068 rm -f wpa_priv 2069 rm -f nfc_pw_token 2070 rm -f lcov.info 2071 rm -rf lcov-html 2072 rm -f libwpa_client.a 2073 rm -f libwpa_client.so 2074 rm -f libwpa_test1 libwpa_test2