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