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