1 ALL=hostapd hostapd_cli 2 CONFIG_FILE = .config 3 4 include ../src/build.rules 5 6 ifdef LIBS 7 # If LIBS is set with some global build system defaults, clone those for 8 # LIBS_c, LIBS_h, and LIBS_n to cover hostapd_cli, hlr_auc_gw, and 9 # nt_password_hash as well. 10 ifndef LIBS_c 11 LIBS_c := $(LIBS) 12 endif 13 ifndef LIBS_h 14 LIBS_h := $(LIBS) 15 endif 16 ifndef LIBS_n 17 LIBS_n := $(LIBS) 18 endif 19 ifndef LIBS_s 20 LIBS_s := $(LIBS) 21 endif 22 endif 23 24 CFLAGS += $(EXTRA_CFLAGS) 25 CFLAGS += -I$(abspath ../src) 26 CFLAGS += -I$(abspath ../src/utils) 27 28 export BINDIR ?= /usr/local/bin/ 29 30 ifndef CONFIG_NO_GITVER 31 # Add VERSION_STR postfix for builds from a git repository 32 ifeq ($(wildcard ../.git),../.git) 33 GITVER := $(shell git describe --dirty=+) 34 ifneq ($(GITVER),) 35 CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\" 36 endif 37 endif 38 endif 39 40 ifdef CONFIG_TESTING_OPTIONS 41 CFLAGS += -DCONFIG_TESTING_OPTIONS 42 CONFIG_WPS_TESTING=y 43 endif 44 45 ifndef CONFIG_OS 46 ifdef CONFIG_NATIVE_WINDOWS 47 CONFIG_OS=win32 48 else 49 CONFIG_OS=unix 50 endif 51 endif 52 53 ifeq ($(CONFIG_OS), internal) 54 CFLAGS += -DOS_NO_C_LIB_DEFINES 55 endif 56 57 ifdef CONFIG_NATIVE_WINDOWS 58 CFLAGS += -DCONFIG_NATIVE_WINDOWS 59 LIBS += -lws2_32 60 endif 61 62 OBJS += main.o 63 OBJS += config_file.o 64 65 OBJS += ../src/ap/hostapd.o 66 OBJS += ../src/ap/wpa_auth_glue.o 67 OBJS += ../src/ap/drv_callbacks.o 68 OBJS += ../src/ap/ap_drv_ops.o 69 OBJS += ../src/ap/utils.o 70 OBJS += ../src/ap/authsrv.o 71 OBJS += ../src/ap/ieee802_1x.o 72 OBJS += ../src/ap/ap_config.o 73 OBJS += ../src/ap/eap_user_db.o 74 OBJS += ../src/ap/ieee802_11_auth.o 75 OBJS += ../src/ap/sta_info.o 76 OBJS += ../src/ap/wpa_auth.o 77 OBJS += ../src/ap/tkip_countermeasures.o 78 OBJS += ../src/ap/ap_mlme.o 79 OBJS += ../src/ap/wpa_auth_ie.o 80 OBJS += ../src/ap/preauth_auth.o 81 OBJS += ../src/ap/pmksa_cache_auth.o 82 OBJS += ../src/ap/ieee802_11_shared.o 83 OBJS += ../src/ap/beacon.o 84 OBJS += ../src/ap/bss_load.o 85 OBJS += ../src/ap/neighbor_db.o 86 OBJS += ../src/ap/rrm.o 87 OBJS += ../src/common/ptksa_cache.o 88 89 OBJS_c = hostapd_cli.o 90 OBJS_c += ../src/common/wpa_ctrl.o 91 OBJS_c += ../src/utils/os_$(CONFIG_OS).o 92 OBJS_c += ../src/common/cli.o 93 94 NEED_RC4=y 95 NEED_AES=y 96 NEED_MD5=y 97 NEED_SHA1=y 98 99 OBJS += ../src/drivers/drivers.o 100 CFLAGS += -DHOSTAPD 101 102 ifdef CONFIG_TAXONOMY 103 CFLAGS += -DCONFIG_TAXONOMY 104 OBJS += ../src/ap/taxonomy.o 105 endif 106 107 ifdef CONFIG_MODULE_TESTS 108 CFLAGS += -DCONFIG_MODULE_TESTS 109 OBJS += hapd_module_tests.o 110 endif 111 112 ifdef CONFIG_WPA_TRACE 113 CFLAGS += -DWPA_TRACE 114 OBJS += ../src/utils/trace.o 115 HOBJS += ../src/utils/trace.o 116 LDFLAGS += -rdynamic 117 CFLAGS += -funwind-tables 118 ifdef CONFIG_WPA_TRACE_BFD 119 CFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD 120 LIBS += -lbfd -ldl -liberty -lz 121 LIBS_c += -lbfd -ldl -liberty -lz 122 LIBS_h += -lbfd -ldl -liberty -lz 123 LIBS_n += -lbfd -ldl -liberty -lz 124 LIBS_s += -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_h += -lrt 139 LIBS_n += -lrt 140 endif 141 142 ifdef CONFIG_ELOOP_POLL 143 CFLAGS += -DCONFIG_ELOOP_POLL 144 endif 145 146 ifdef CONFIG_ELOOP_EPOLL 147 CFLAGS += -DCONFIG_ELOOP_EPOLL 148 endif 149 150 ifdef CONFIG_ELOOP_KQUEUE 151 CFLAGS += -DCONFIG_ELOOP_KQUEUE 152 endif 153 154 OBJS += ../src/utils/common.o 155 OBJS_c += ../src/utils/common.o 156 OBJS += ../src/utils/wpa_debug.o 157 OBJS_c += ../src/utils/wpa_debug.o 158 OBJS += ../src/utils/wpabuf.o 159 OBJS += ../src/utils/os_$(CONFIG_OS).o 160 OBJS += ../src/utils/ip_addr.o 161 OBJS += ../src/utils/crc32.o 162 163 OBJS += ../src/common/ieee802_11_common.o 164 OBJS += ../src/common/wpa_common.o 165 OBJS += ../src/common/hw_features_common.o 166 167 OBJS += ../src/eapol_auth/eapol_auth_sm.o 168 169 170 ifdef CONFIG_CODE_COVERAGE 171 CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE 172 LIBS += -lgcov 173 LIBS_c += -lgcov 174 LIBS_h += -lgcov 175 LIBS_n += -lgcov 176 endif 177 178 ifndef CONFIG_NO_DUMP_STATE 179 # define HOSTAPD_DUMP_STATE to include support for dumping internal state 180 # through control interface commands (undefine it, if you want to save in 181 # binary size) 182 CFLAGS += -DHOSTAPD_DUMP_STATE 183 OBJS += ../src/eapol_auth/eapol_auth_dump.o 184 endif 185 186 ifdef CONFIG_NO_RADIUS 187 CFLAGS += -DCONFIG_NO_RADIUS 188 CONFIG_NO_ACCOUNTING=y 189 else 190 OBJS += ../src/radius/radius.o 191 OBJS += ../src/radius/radius_client.o 192 OBJS += ../src/radius/radius_das.o 193 endif 194 195 ifdef CONFIG_NO_ACCOUNTING 196 CFLAGS += -DCONFIG_NO_ACCOUNTING 197 else 198 OBJS += ../src/ap/accounting.o 199 endif 200 201 ifdef CONFIG_NO_VLAN 202 CFLAGS += -DCONFIG_NO_VLAN 203 else 204 OBJS += ../src/ap/vlan_init.o 205 OBJS += ../src/ap/vlan_ifconfig.o 206 OBJS += ../src/ap/vlan.o 207 ifdef CONFIG_FULL_DYNAMIC_VLAN 208 # Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 209 # and VLAN interfaces for the VLAN feature. 210 CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 211 OBJS += ../src/ap/vlan_full.o 212 ifdef CONFIG_VLAN_NETLINK 213 OBJS += ../src/ap/vlan_util.o 214 else 215 OBJS += ../src/ap/vlan_ioctl.o 216 endif 217 endif 218 endif 219 220 ifdef CONFIG_NO_CTRL_IFACE 221 CFLAGS += -DCONFIG_NO_CTRL_IFACE 222 else 223 ifeq ($(CONFIG_CTRL_IFACE), udp) 224 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 225 else 226 ifeq ($(CONFIG_CTRL_IFACE), udp6) 227 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 228 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 229 else 230 ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 231 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 232 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 233 else 234 ifeq ($(CONFIG_CTRL_IFACE), udp6-remote) 235 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 236 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 237 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 238 else 239 CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 240 endif 241 endif 242 endif 243 endif 244 OBJS += ../src/common/ctrl_iface_common.o 245 OBJS += ctrl_iface.o 246 OBJS += ../src/ap/ctrl_iface_ap.o 247 endif 248 249 ifndef CONFIG_NO_CTRL_IFACE 250 CFLAGS += -DCONFIG_CTRL_IFACE 251 endif 252 253 ifdef CONFIG_RSN_PREAUTH 254 CFLAGS += -DCONFIG_RSN_PREAUTH 255 CONFIG_L2_PACKET=y 256 endif 257 258 ifdef CONFIG_HS20 259 CONFIG_PROXYARP=y 260 endif 261 262 ifdef CONFIG_PROXYARP 263 CONFIG_L2_PACKET=y 264 endif 265 266 ifdef CONFIG_SUITEB 267 CFLAGS += -DCONFIG_SUITEB 268 endif 269 270 ifdef CONFIG_SUITEB192 271 CFLAGS += -DCONFIG_SUITEB192 272 NEED_SHA384=y 273 endif 274 275 ifdef CONFIG_OCV 276 CFLAGS += -DCONFIG_OCV 277 OBJS += ../src/common/ocv.o 278 endif 279 280 NEED_AES_UNWRAP=y 281 282 ifdef CONFIG_IEEE80211R 283 CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP 284 OBJS += ../src/ap/wpa_auth_ft.o 285 NEED_AES_UNWRAP=y 286 NEED_AES_SIV=y 287 NEED_ETH_P_OUI=y 288 NEED_HMAC_SHA256_KDF=y 289 endif 290 291 ifdef NEED_ETH_P_OUI 292 CFLAGS += -DCONFIG_ETH_P_OUI 293 OBJS += ../src/ap/eth_p_oui.o 294 endif 295 296 ifdef CONFIG_SAE 297 CFLAGS += -DCONFIG_SAE 298 OBJS += ../src/common/sae.o 299 ifdef CONFIG_SAE_PK 300 CFLAGS += -DCONFIG_SAE_PK 301 NEED_AES_SIV=y 302 OBJS += ../src/common/sae_pk.o 303 endif 304 NEED_ECC=y 305 NEED_DH_GROUPS=y 306 NEED_HMAC_SHA256_KDF=y 307 NEED_AP_MLME=y 308 NEED_DRAGONFLY=y 309 endif 310 311 ifdef CONFIG_OWE 312 CFLAGS += -DCONFIG_OWE 313 NEED_ECC=y 314 NEED_HMAC_SHA256_KDF=y 315 NEED_HMAC_SHA384_KDF=y 316 NEED_HMAC_SHA512_KDF=y 317 NEED_SHA384=y 318 NEED_SHA512=y 319 endif 320 321 ifdef CONFIG_AIRTIME_POLICY 322 CFLAGS += -DCONFIG_AIRTIME_POLICY 323 OBJS += ../src/ap/airtime_policy.o 324 endif 325 326 ifdef CONFIG_FILS 327 CFLAGS += -DCONFIG_FILS 328 OBJS += ../src/ap/fils_hlp.o 329 NEED_SHA384=y 330 NEED_AES_SIV=y 331 ifdef CONFIG_FILS_SK_PFS 332 CFLAGS += -DCONFIG_FILS_SK_PFS 333 NEED_ECC=y 334 endif 335 endif 336 337 ifdef CONFIG_WNM 338 CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP 339 OBJS += ../src/ap/wnm_ap.o 340 endif 341 342 ifdef CONFIG_IEEE80211AC 343 CFLAGS += -DCONFIG_IEEE80211AC 344 endif 345 346 ifdef CONFIG_IEEE80211BE 347 CONFIG_IEEE80211AX=y 348 CFLAGS += -DCONFIG_IEEE80211BE 349 OBJS += ../src/ap/ieee802_11_eht.o 350 endif 351 352 ifdef CONFIG_IEEE80211AX 353 CFLAGS += -DCONFIG_IEEE80211AX 354 OBJS += ../src/ap/ieee802_11_he.o 355 endif 356 357 ifdef CONFIG_MBO 358 CFLAGS += -DCONFIG_MBO 359 OBJS += ../src/ap/mbo_ap.o 360 endif 361 362 include ../src/drivers/drivers.mak 363 OBJS += $(DRV_AP_OBJS) 364 CFLAGS += $(DRV_AP_CFLAGS) 365 LDFLAGS += $(DRV_AP_LDFLAGS) 366 LIBS += $(DRV_AP_LIBS) 367 368 ifdef CONFIG_L2_PACKET 369 ifdef CONFIG_DNET_PCAP 370 ifdef CONFIG_L2_FREEBSD 371 LIBS += -lpcap 372 OBJS += ../src/l2_packet/l2_packet_freebsd.o 373 else 374 LIBS += -ldnet -lpcap 375 OBJS += ../src/l2_packet/l2_packet_pcap.o 376 endif 377 else 378 OBJS += ../src/l2_packet/l2_packet_linux.o 379 endif 380 else 381 OBJS += ../src/l2_packet/l2_packet_none.o 382 endif 383 384 385 ifdef CONFIG_ERP 386 CFLAGS += -DCONFIG_ERP 387 NEED_HMAC_SHA256_KDF=y 388 endif 389 390 ifdef CONFIG_EAP_MD5 391 CFLAGS += -DEAP_SERVER_MD5 392 OBJS += ../src/eap_server/eap_server_md5.o 393 CHAP=y 394 endif 395 396 ifdef CONFIG_EAP_TLS 397 CFLAGS += -DEAP_SERVER_TLS 398 OBJS += ../src/eap_server/eap_server_tls.o 399 TLS_FUNCS=y 400 endif 401 402 ifdef CONFIG_EAP_UNAUTH_TLS 403 CFLAGS += -DEAP_SERVER_UNAUTH_TLS 404 ifndef CONFIG_EAP_TLS 405 OBJS += ../src/eap_server/eap_server_tls.o 406 TLS_FUNCS=y 407 endif 408 endif 409 410 ifdef CONFIG_EAP_PEAP 411 CFLAGS += -DEAP_SERVER_PEAP 412 OBJS += ../src/eap_server/eap_server_peap.o 413 OBJS += ../src/eap_common/eap_peap_common.o 414 TLS_FUNCS=y 415 CONFIG_EAP_MSCHAPV2=y 416 endif 417 418 ifdef CONFIG_EAP_TTLS 419 CFLAGS += -DEAP_SERVER_TTLS 420 OBJS += ../src/eap_server/eap_server_ttls.o 421 TLS_FUNCS=y 422 CHAP=y 423 endif 424 425 ifdef CONFIG_EAP_MSCHAPV2 426 CFLAGS += -DEAP_SERVER_MSCHAPV2 427 OBJS += ../src/eap_server/eap_server_mschapv2.o 428 MS_FUNCS=y 429 endif 430 431 ifdef CONFIG_EAP_GTC 432 CFLAGS += -DEAP_SERVER_GTC 433 OBJS += ../src/eap_server/eap_server_gtc.o 434 endif 435 436 ifdef CONFIG_EAP_SIM 437 CFLAGS += -DEAP_SERVER_SIM 438 OBJS += ../src/eap_server/eap_server_sim.o 439 CONFIG_EAP_SIM_COMMON=y 440 NEED_AES_CBC=y 441 endif 442 443 ifdef CONFIG_EAP_AKA 444 CFLAGS += -DEAP_SERVER_AKA 445 OBJS += ../src/eap_server/eap_server_aka.o 446 CONFIG_EAP_SIM_COMMON=y 447 NEED_AES_CBC=y 448 endif 449 450 ifdef CONFIG_EAP_AKA_PRIME 451 CFLAGS += -DEAP_SERVER_AKA_PRIME 452 endif 453 454 ifdef CONFIG_EAP_SIM_COMMON 455 OBJS += ../src/eap_common/eap_sim_common.o 456 # Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 457 # replaced with another file implementing the interface specified in 458 # eap_sim_db.h. 459 OBJS += ../src/eap_server/eap_sim_db.o 460 NEED_FIPS186_2_PRF=y 461 endif 462 463 ifdef CONFIG_EAP_PAX 464 CFLAGS += -DEAP_SERVER_PAX 465 OBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o 466 endif 467 468 ifdef CONFIG_EAP_PSK 469 CFLAGS += -DEAP_SERVER_PSK 470 OBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o 471 NEED_AES_ENCBLOCK=y 472 NEED_AES_EAX=y 473 endif 474 475 ifdef CONFIG_EAP_SAKE 476 CFLAGS += -DEAP_SERVER_SAKE 477 OBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o 478 endif 479 480 ifdef CONFIG_EAP_GPSK 481 CFLAGS += -DEAP_SERVER_GPSK 482 OBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o 483 ifdef CONFIG_EAP_GPSK_SHA256 484 CFLAGS += -DEAP_GPSK_SHA256 485 endif 486 endif 487 488 ifdef CONFIG_EAP_PWD 489 CFLAGS += -DEAP_SERVER_PWD 490 OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o 491 NEED_ECC=y 492 NEED_DRAGONFLY=y 493 endif 494 495 ifdef CONFIG_EAP_EKE 496 CFLAGS += -DEAP_SERVER_EKE 497 OBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o 498 NEED_DH_GROUPS=y 499 NEED_DH_GROUPS_ALL=y 500 endif 501 502 ifdef CONFIG_EAP_VENDOR_TEST 503 CFLAGS += -DEAP_SERVER_VENDOR_TEST 504 OBJS += ../src/eap_server/eap_server_vendor_test.o 505 endif 506 507 ifdef CONFIG_EAP_FAST 508 CFLAGS += -DEAP_SERVER_FAST 509 OBJS += ../src/eap_server/eap_server_fast.o 510 OBJS += ../src/eap_common/eap_fast_common.o 511 TLS_FUNCS=y 512 NEED_T_PRF=y 513 NEED_AES_UNWRAP=y 514 endif 515 516 ifdef CONFIG_EAP_TEAP 517 CFLAGS += -DEAP_SERVER_TEAP 518 OBJS += ../src/eap_server/eap_server_teap.o 519 OBJS += ../src/eap_common/eap_teap_common.o 520 TLS_FUNCS=y 521 NEED_T_PRF=y 522 NEED_SHA384=y 523 NEED_TLS_PRF_SHA256=y 524 NEED_TLS_PRF_SHA384=y 525 NEED_AES_UNWRAP=y 526 endif 527 528 ifdef CONFIG_WPS 529 CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 530 OBJS += ../src/utils/uuid.o 531 OBJS += ../src/ap/wps_hostapd.o 532 OBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o 533 OBJS += ../src/wps/wps.o 534 OBJS += ../src/wps/wps_common.o 535 OBJS += ../src/wps/wps_attr_parse.o 536 OBJS += ../src/wps/wps_attr_build.o 537 OBJS += ../src/wps/wps_attr_process.o 538 OBJS += ../src/wps/wps_dev_attr.o 539 OBJS += ../src/wps/wps_enrollee.o 540 OBJS += ../src/wps/wps_registrar.o 541 NEED_DH_GROUPS=y 542 NEED_BASE64=y 543 NEED_AES_CBC=y 544 NEED_MODEXP=y 545 CONFIG_EAP=y 546 547 ifdef CONFIG_WPS_NFC 548 CFLAGS += -DCONFIG_WPS_NFC 549 OBJS += ../src/wps/ndef.o 550 NEED_WPS_OOB=y 551 endif 552 553 ifdef NEED_WPS_OOB 554 CFLAGS += -DCONFIG_WPS_OOB 555 endif 556 557 ifdef CONFIG_WPS_UPNP 558 CFLAGS += -DCONFIG_WPS_UPNP 559 OBJS += ../src/wps/wps_upnp.o 560 OBJS += ../src/wps/wps_upnp_ssdp.o 561 OBJS += ../src/wps/wps_upnp_web.o 562 OBJS += ../src/wps/wps_upnp_event.o 563 OBJS += ../src/wps/wps_upnp_ap.o 564 OBJS += ../src/wps/upnp_xml.o 565 OBJS += ../src/wps/httpread.o 566 OBJS += ../src/wps/http_client.o 567 OBJS += ../src/wps/http_server.o 568 endif 569 570 ifdef CONFIG_WPS_STRICT 571 CFLAGS += -DCONFIG_WPS_STRICT 572 OBJS += ../src/wps/wps_validate.o 573 endif 574 575 ifdef CONFIG_WPS_TESTING 576 CFLAGS += -DCONFIG_WPS_TESTING 577 endif 578 579 endif 580 581 ifdef CONFIG_DPP 582 CFLAGS += -DCONFIG_DPP 583 OBJS += ../src/common/dpp.o 584 OBJS += ../src/common/dpp_auth.o 585 OBJS += ../src/common/dpp_backup.o 586 OBJS += ../src/common/dpp_crypto.o 587 OBJS += ../src/common/dpp_pkex.o 588 OBJS += ../src/common/dpp_reconfig.o 589 OBJS += ../src/common/dpp_tcp.o 590 OBJS += ../src/ap/dpp_hostapd.o 591 OBJS += ../src/ap/gas_query_ap.o 592 NEED_AES_SIV=y 593 NEED_HMAC_SHA256_KDF=y 594 NEED_HMAC_SHA384_KDF=y 595 NEED_HMAC_SHA512_KDF=y 596 NEED_SHA384=y 597 NEED_SHA512=y 598 NEED_ECC=y 599 NEED_JSON=y 600 NEED_GAS=y 601 NEED_BASE64=y 602 NEED_ASN1=y 603 ifdef CONFIG_DPP2 604 CFLAGS += -DCONFIG_DPP2 605 endif 606 ifdef CONFIG_DPP3 607 CFLAGS += -DCONFIG_DPP3 608 endif 609 endif 610 611 ifdef CONFIG_NAN_USD 612 OBJS += ../src/common/nan_de.o 613 OBJS += ../src/ap/nan_usd_ap.o 614 CFLAGS += -DCONFIG_NAN_USD 615 endif 616 617 ifdef CONFIG_PASN 618 CFLAGS += -DCONFIG_PASN 619 CFLAGS += -DCONFIG_PTKSA_CACHE 620 NEED_HMAC_SHA256_KDF=y 621 NEED_HMAC_SHA384_KDF=y 622 NEED_SHA256=y 623 NEED_SHA384=y 624 endif 625 626 ifdef CONFIG_EAP_IKEV2 627 CFLAGS += -DEAP_SERVER_IKEV2 628 OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o 629 OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 630 NEED_DH_GROUPS=y 631 NEED_DH_GROUPS_ALL=y 632 NEED_MODEXP=y 633 NEED_CIPHER=y 634 endif 635 636 ifdef CONFIG_EAP_TNC 637 CFLAGS += -DEAP_SERVER_TNC 638 OBJS += ../src/eap_server/eap_server_tnc.o 639 OBJS += ../src/eap_server/tncs.o 640 NEED_BASE64=y 641 ifndef CONFIG_DRIVER_BSD 642 LIBS += -ldl 643 endif 644 endif 645 646 ifdef CONFIG_MACSEC 647 CFLAGS += -DCONFIG_MACSEC 648 OBJS += ../src/ap/wpa_auth_kay.o 649 OBJS += ../src/pae/ieee802_1x_cp.o 650 OBJS += ../src/pae/ieee802_1x_kay.o 651 OBJS += ../src/pae/ieee802_1x_key.o 652 OBJS += ../src/pae/ieee802_1x_secy_ops.o 653 endif 654 655 # Basic EAP functionality is needed for EAPOL 656 OBJS += eap_register.o 657 OBJS += ../src/eap_server/eap_server.o 658 OBJS += ../src/eap_common/eap_common.o 659 OBJS += ../src/eap_server/eap_server_methods.o 660 OBJS += ../src/eap_server/eap_server_identity.o 661 CFLAGS += -DEAP_SERVER_IDENTITY 662 663 ifdef CONFIG_EAP 664 CFLAGS += -DEAP_SERVER 665 endif 666 667 ifdef CONFIG_PKCS12 668 CFLAGS += -DPKCS12_FUNCS 669 endif 670 671 ifdef NEED_DRAGONFLY 672 OBJS += ../src/common/dragonfly.o 673 endif 674 675 ifdef MS_FUNCS 676 OBJS += ../src/crypto/ms_funcs.o 677 NEED_DES=y 678 NEED_MD4=y 679 endif 680 681 ifdef CHAP 682 OBJS += ../src/eap_common/chap.o 683 endif 684 685 ifdef CONFIG_RADIUS_TLS 686 TLS_FUNCS=y 687 CFLAGS += -DCONFIG_RADIUS_TLS 688 endif 689 690 ifdef TLS_FUNCS 691 NEED_DES=y 692 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 693 CFLAGS += -DEAP_TLS_FUNCS 694 OBJS += ../src/eap_server/eap_server_tls_common.o 695 NEED_TLS_PRF=y 696 endif 697 698 ifndef CONFIG_TLS 699 CONFIG_TLS=openssl 700 endif 701 702 ifdef CONFIG_TLSV11 703 CFLAGS += -DCONFIG_TLSV11 704 endif 705 706 ifdef CONFIG_TLSV12 707 CFLAGS += -DCONFIG_TLSV12 708 endif 709 710 ifeq ($(CONFIG_TLS), wolfssl) 711 CONFIG_CRYPTO=wolfssl 712 ifdef TLS_FUNCS 713 OBJS += ../src/crypto/tls_wolfssl.o 714 LIBS += -lwolfssl -lm 715 endif 716 OBJS += ../src/crypto/crypto_wolfssl.o 717 HOBJS += ../src/crypto/crypto_wolfssl.o 718 ifdef NEED_FIPS186_2_PRF 719 OBJS += ../src/crypto/fips_prf_wolfssl.o 720 endif 721 NEED_TLS_PRF_SHA256=y 722 LIBS += -lwolfssl -lm 723 LIBS_h += -lwolfssl -lm 724 ifdef CONFIG_TLS_ADD_DL 725 LIBS += -ldl 726 LIBS_h += -ldl 727 endif 728 endif 729 730 ifeq ($(CONFIG_TLS), openssl) 731 CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 732 CONFIG_CRYPTO=openssl 733 ifdef TLS_FUNCS 734 OBJS += ../src/crypto/tls_openssl.o 735 OBJS += ../src/crypto/tls_openssl_ocsp.o 736 LIBS += -lssl 737 endif 738 OBJS += ../src/crypto/crypto_openssl.o 739 HOBJS += ../src/crypto/crypto_openssl.o 740 SOBJS += ../src/crypto/crypto_openssl.o 741 ifdef NEED_FIPS186_2_PRF 742 OBJS += ../src/crypto/fips_prf_openssl.o 743 endif 744 NEED_TLS_PRF_SHA256=y 745 LIBS += -lcrypto 746 LIBS_h += -lcrypto 747 LIBS_n += -lcrypto 748 LIBS_s += -lcrypto 749 ifdef CONFIG_TLS_ADD_DL 750 LIBS += -ldl 751 LIBS_h += -ldl 752 LIBS_s += -ldl 753 endif 754 ifndef CONFIG_TLS_DEFAULT_CIPHERS 755 CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 756 endif 757 CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 758 endif 759 760 ifeq ($(CONFIG_TLS), gnutls) 761 ifndef CONFIG_CRYPTO 762 # default to libgcrypt 763 CONFIG_CRYPTO=gnutls 764 endif 765 ifdef TLS_FUNCS 766 OBJS += ../src/crypto/tls_gnutls.o 767 LIBS += -lgnutls -lgpg-error 768 endif 769 OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 770 HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 771 ifdef NEED_FIPS186_2_PRF 772 OBJS += ../src/crypto/fips_prf_internal.o 773 SHA1OBJS += ../src/crypto/sha1-internal.o 774 endif 775 ifeq ($(CONFIG_CRYPTO), gnutls) 776 LIBS += -lgcrypt 777 LIBS_h += -lgcrypt 778 LIBS_n += -lgcrypt 779 CONFIG_INTERNAL_RC4=y 780 CONFIG_INTERNAL_DH_GROUP5=y 781 endif 782 ifeq ($(CONFIG_CRYPTO), nettle) 783 LIBS += -lnettle -lgmp 784 LIBS_p += -lnettle -lgmp 785 CONFIG_INTERNAL_RC4=y 786 CONFIG_INTERNAL_DH_GROUP5=y 787 endif 788 endif 789 790 ifeq ($(CONFIG_TLS), internal) 791 ifndef CONFIG_CRYPTO 792 CONFIG_CRYPTO=internal 793 endif 794 ifdef TLS_FUNCS 795 OBJS += ../src/crypto/crypto_internal-rsa.o 796 OBJS += ../src/crypto/tls_internal.o 797 OBJS += ../src/tls/tlsv1_common.o 798 OBJS += ../src/tls/tlsv1_record.o 799 OBJS += ../src/tls/tlsv1_cred.o 800 OBJS += ../src/tls/tlsv1_server.o 801 OBJS += ../src/tls/tlsv1_server_write.o 802 OBJS += ../src/tls/tlsv1_server_read.o 803 OBJS += ../src/tls/rsa.o 804 OBJS += ../src/tls/x509v3.o 805 OBJS += ../src/tls/pkcs1.o 806 OBJS += ../src/tls/pkcs5.o 807 OBJS += ../src/tls/pkcs8.o 808 NEED_ASN1=y 809 NEED_BASE64=y 810 NEED_TLS_PRF=y 811 ifdef CONFIG_TLSV12 812 NEED_TLS_PRF_SHA256=y 813 endif 814 NEED_MODEXP=y 815 NEED_CIPHER=y 816 CFLAGS += -DCONFIG_TLS_INTERNAL 817 CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 818 endif 819 ifdef NEED_CIPHER 820 NEED_DES=y 821 OBJS += ../src/crypto/crypto_internal-cipher.o 822 endif 823 ifdef NEED_MODEXP 824 OBJS += ../src/crypto/crypto_internal-modexp.o 825 OBJS += ../src/tls/bignum.o 826 endif 827 ifeq ($(CONFIG_CRYPTO), libtomcrypt) 828 OBJS += ../src/crypto/crypto_libtomcrypt.o 829 LIBS += -ltomcrypt -ltfm 830 LIBS_h += -ltomcrypt -ltfm 831 CONFIG_INTERNAL_SHA256=y 832 CONFIG_INTERNAL_RC4=y 833 CONFIG_INTERNAL_DH_GROUP5=y 834 endif 835 ifeq ($(CONFIG_CRYPTO), internal) 836 OBJS += ../src/crypto/crypto_internal.o 837 NEED_AES_DEC=y 838 CFLAGS += -DCONFIG_CRYPTO_INTERNAL 839 ifdef CONFIG_INTERNAL_LIBTOMMATH 840 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 841 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 842 CFLAGS += -DLTM_FAST 843 endif 844 else 845 LIBS += -ltommath 846 LIBS_h += -ltommath 847 endif 848 CONFIG_INTERNAL_AES=y 849 CONFIG_INTERNAL_DES=y 850 CONFIG_INTERNAL_SHA1=y 851 CONFIG_INTERNAL_MD4=y 852 CONFIG_INTERNAL_MD5=y 853 CONFIG_INTERNAL_SHA256=y 854 CONFIG_INTERNAL_SHA384=y 855 CONFIG_INTERNAL_SHA512=y 856 CONFIG_INTERNAL_RC4=y 857 CONFIG_INTERNAL_DH_GROUP5=y 858 endif 859 ifeq ($(CONFIG_CRYPTO), cryptoapi) 860 OBJS += ../src/crypto/crypto_cryptoapi.o 861 OBJS_p += ../src/crypto/crypto_cryptoapi.o 862 CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 863 CONFIG_INTERNAL_SHA256=y 864 CONFIG_INTERNAL_RC4=y 865 endif 866 endif 867 868 ifeq ($(CONFIG_TLS), linux) 869 OBJS += ../src/crypto/crypto_linux.o 870 ifdef TLS_FUNCS 871 OBJS += ../src/crypto/crypto_internal-rsa.o 872 OBJS += ../src/crypto/tls_internal.o 873 OBJS += ../src/tls/tlsv1_common.o 874 OBJS += ../src/tls/tlsv1_record.o 875 OBJS += ../src/tls/tlsv1_cred.o 876 OBJS += ../src/tls/tlsv1_server.o 877 OBJS += ../src/tls/tlsv1_server_write.o 878 OBJS += ../src/tls/tlsv1_server_read.o 879 OBJS += ../src/tls/rsa.o 880 OBJS += ../src/tls/x509v3.o 881 OBJS += ../src/tls/pkcs1.o 882 OBJS += ../src/tls/pkcs5.o 883 OBJS += ../src/tls/pkcs8.o 884 NEED_ASN1=y 885 NEED_BASE64=y 886 NEED_TLS_PRF=y 887 ifdef CONFIG_TLSV12 888 NEED_TLS_PRF_SHA256=y 889 endif 890 NEED_MODEXP=y 891 NEED_CIPHER=y 892 CFLAGS += -DCONFIG_TLS_INTERNAL 893 CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 894 endif 895 ifdef NEED_MODEXP 896 OBJS += ../src/crypto/crypto_internal-modexp.o 897 OBJS += ../src/tls/bignum.o 898 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 899 CFLAGS += -DLTM_FAST 900 endif 901 CONFIG_INTERNAL_DH_GROUP5=y 902 ifdef NEED_FIPS186_2_PRF 903 OBJS += ../src/crypto/fips_prf_internal.o 904 OBJS += ../src/crypto/sha1-internal.o 905 endif 906 endif 907 908 ifeq ($(CONFIG_TLS), none) 909 ifdef TLS_FUNCS 910 OBJS += ../src/crypto/tls_none.o 911 CFLAGS += -DEAP_TLS_NONE 912 CONFIG_INTERNAL_AES=y 913 CONFIG_INTERNAL_SHA1=y 914 CONFIG_INTERNAL_MD5=y 915 endif 916 OBJS += ../src/crypto/crypto_none.o 917 OBJS_p += ../src/crypto/crypto_none.o 918 CONFIG_INTERNAL_SHA256=y 919 CONFIG_INTERNAL_RC4=y 920 endif 921 922 ifndef TLS_FUNCS 923 OBJS += ../src/crypto/tls_none.o 924 ifeq ($(CONFIG_TLS), internal) 925 CONFIG_INTERNAL_AES=y 926 CONFIG_INTERNAL_SHA1=y 927 CONFIG_INTERNAL_MD5=y 928 CONFIG_INTERNAL_RC4=y 929 endif 930 endif 931 932 AESOBJS = # none so far 933 ifdef CONFIG_INTERNAL_AES 934 AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o 935 endif 936 937 ifneq ($(CONFIG_TLS), openssl) 938 ifneq ($(CONFIG_TLS), wolfssl) 939 AESOBJS += ../src/crypto/aes-wrap.o 940 endif 941 endif 942 ifdef NEED_AES_EAX 943 AESOBJS += ../src/crypto/aes-eax.o 944 NEED_AES_CTR=y 945 endif 946 ifdef NEED_AES_SIV 947 AESOBJS += ../src/crypto/aes-siv.o 948 NEED_AES_CTR=y 949 endif 950 ifdef NEED_AES_CTR 951 AESOBJS += ../src/crypto/aes-ctr.o 952 endif 953 ifdef NEED_AES_ENCBLOCK 954 AESOBJS += ../src/crypto/aes-encblock.o 955 endif 956 ifneq ($(CONFIG_TLS), openssl) 957 ifneq ($(CONFIG_TLS), linux) 958 ifneq ($(CONFIG_TLS), wolfssl) 959 AESOBJS += ../src/crypto/aes-omac1.o 960 endif 961 endif 962 endif 963 ifdef NEED_AES_UNWRAP 964 ifneq ($(CONFIG_TLS), openssl) 965 ifneq ($(CONFIG_TLS), linux) 966 ifneq ($(CONFIG_TLS), wolfssl) 967 NEED_AES_DEC=y 968 AESOBJS += ../src/crypto/aes-unwrap.o 969 endif 970 endif 971 endif 972 endif 973 ifdef NEED_AES_CBC 974 NEED_AES_DEC=y 975 ifneq ($(CONFIG_TLS), openssl) 976 ifneq ($(CONFIG_TLS), linux) 977 ifneq ($(CONFIG_TLS), wolfssl) 978 AESOBJS += ../src/crypto/aes-cbc.o 979 endif 980 endif 981 endif 982 endif 983 ifdef NEED_AES_DEC 984 ifdef CONFIG_INTERNAL_AES 985 AESOBJS += ../src/crypto/aes-internal-dec.o 986 endif 987 endif 988 ifdef NEED_AES 989 OBJS += $(AESOBJS) 990 endif 991 992 ifdef NEED_SHA1 993 ifneq ($(CONFIG_TLS), openssl) 994 ifneq ($(CONFIG_TLS), linux) 995 ifneq ($(CONFIG_TLS), gnutls) 996 ifneq ($(CONFIG_TLS), wolfssl) 997 SHA1OBJS += ../src/crypto/sha1.o 998 endif 999 endif 1000 endif 1001 endif 1002 SHA1OBJS += ../src/crypto/sha1-prf.o 1003 ifdef CONFIG_INTERNAL_SHA1 1004 SHA1OBJS += ../src/crypto/sha1-internal.o 1005 ifdef NEED_FIPS186_2_PRF 1006 SHA1OBJS += ../src/crypto/fips_prf_internal.o 1007 endif 1008 endif 1009 ifneq ($(CONFIG_TLS), openssl) 1010 ifneq ($(CONFIG_TLS), wolfssl) 1011 SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1012 endif 1013 endif 1014 ifdef NEED_T_PRF 1015 SHA1OBJS += ../src/crypto/sha1-tprf.o 1016 endif 1017 ifdef NEED_TLS_PRF 1018 SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1019 endif 1020 endif 1021 1022 ifdef NEED_SHA1 1023 OBJS += $(SHA1OBJS) 1024 endif 1025 1026 ifneq ($(CONFIG_TLS), openssl) 1027 ifneq ($(CONFIG_TLS), linux) 1028 ifneq ($(CONFIG_TLS), gnutls) 1029 ifneq ($(CONFIG_TLS), wolfssl) 1030 OBJS += ../src/crypto/md5.o 1031 endif 1032 endif 1033 endif 1034 endif 1035 1036 ifdef NEED_MD5 1037 ifdef CONFIG_INTERNAL_MD5 1038 OBJS += ../src/crypto/md5-internal.o 1039 HOBJS += ../src/crypto/md5-internal.o 1040 endif 1041 endif 1042 1043 ifdef NEED_MD4 1044 ifdef CONFIG_INTERNAL_MD4 1045 OBJS += ../src/crypto/md4-internal.o 1046 endif 1047 endif 1048 1049 ifdef NEED_DES 1050 CFLAGS += -DCONFIG_DES 1051 ifdef CONFIG_INTERNAL_DES 1052 OBJS += ../src/crypto/des-internal.o 1053 endif 1054 endif 1055 1056 ifdef CONFIG_NO_RC4 1057 CFLAGS += -DCONFIG_NO_RC4 1058 endif 1059 1060 ifdef NEED_RC4 1061 ifdef CONFIG_INTERNAL_RC4 1062 ifndef CONFIG_NO_RC4 1063 OBJS += ../src/crypto/rc4.o 1064 endif 1065 endif 1066 endif 1067 1068 CFLAGS += -DCONFIG_SHA256 1069 ifneq ($(CONFIG_TLS), openssl) 1070 ifneq ($(CONFIG_TLS), linux) 1071 ifneq ($(CONFIG_TLS), gnutls) 1072 ifneq ($(CONFIG_TLS), wolfssl) 1073 OBJS += ../src/crypto/sha256.o 1074 endif 1075 endif 1076 endif 1077 endif 1078 OBJS += ../src/crypto/sha256-prf.o 1079 ifdef CONFIG_INTERNAL_SHA256 1080 OBJS += ../src/crypto/sha256-internal.o 1081 endif 1082 ifdef NEED_TLS_PRF_SHA256 1083 OBJS += ../src/crypto/sha256-tlsprf.o 1084 endif 1085 ifdef NEED_TLS_PRF_SHA384 1086 OBJS += ../src/crypto/sha384-tlsprf.o 1087 endif 1088 ifdef NEED_HMAC_SHA256_KDF 1089 OBJS += ../src/crypto/sha256-kdf.o 1090 endif 1091 ifdef NEED_HMAC_SHA384_KDF 1092 OBJS += ../src/crypto/sha384-kdf.o 1093 endif 1094 ifdef NEED_HMAC_SHA512_KDF 1095 OBJS += ../src/crypto/sha512-kdf.o 1096 endif 1097 ifdef NEED_SHA384 1098 CFLAGS += -DCONFIG_SHA384 1099 ifneq ($(CONFIG_TLS), openssl) 1100 ifneq ($(CONFIG_TLS), linux) 1101 ifneq ($(CONFIG_TLS), gnutls) 1102 ifneq ($(CONFIG_TLS), wolfssl) 1103 OBJS += ../src/crypto/sha384.o 1104 endif 1105 endif 1106 endif 1107 endif 1108 OBJS += ../src/crypto/sha384-prf.o 1109 endif 1110 ifdef NEED_SHA512 1111 CFLAGS += -DCONFIG_SHA512 1112 ifneq ($(CONFIG_TLS), openssl) 1113 ifneq ($(CONFIG_TLS), linux) 1114 ifneq ($(CONFIG_TLS), gnutls) 1115 ifneq ($(CONFIG_TLS), wolfssl) 1116 OBJS += ../src/crypto/sha512.o 1117 endif 1118 endif 1119 endif 1120 endif 1121 OBJS += ../src/crypto/sha512-prf.o 1122 endif 1123 1124 ifdef CONFIG_INTERNAL_SHA384 1125 CFLAGS += -DCONFIG_INTERNAL_SHA384 1126 OBJS += ../src/crypto/sha384-internal.o 1127 endif 1128 1129 ifdef CONFIG_INTERNAL_SHA512 1130 CFLAGS += -DCONFIG_INTERNAL_SHA512 1131 OBJS += ../src/crypto/sha512-internal.o 1132 endif 1133 1134 ifdef NEED_ASN1 1135 OBJS += ../src/tls/asn1.o 1136 endif 1137 1138 ifdef NEED_DH_GROUPS 1139 OBJS += ../src/crypto/dh_groups.o 1140 endif 1141 ifdef NEED_DH_GROUPS_ALL 1142 CFLAGS += -DALL_DH_GROUPS 1143 endif 1144 ifdef CONFIG_INTERNAL_DH_GROUP5 1145 ifdef NEED_DH_GROUPS 1146 OBJS += ../src/crypto/dh_group5.o 1147 endif 1148 endif 1149 1150 ifdef NEED_ECC 1151 CFLAGS += -DCONFIG_ECC 1152 endif 1153 1154 ifdef CONFIG_NO_RANDOM_POOL 1155 CFLAGS += -DCONFIG_NO_RANDOM_POOL 1156 else 1157 ifdef CONFIG_GETRANDOM 1158 CFLAGS += -DCONFIG_GETRANDOM 1159 endif 1160 OBJS += ../src/crypto/random.o 1161 HOBJS += ../src/crypto/random.o 1162 HOBJS += ../src/utils/eloop.o 1163 HOBJS += $(SHA1OBJS) 1164 ifneq ($(CONFIG_TLS), openssl) 1165 ifneq ($(CONFIG_TLS), linux) 1166 ifneq ($(CONFIG_TLS), wolfssl) 1167 HOBJS += ../src/crypto/md5.o 1168 endif 1169 endif 1170 endif 1171 endif 1172 1173 ifdef CONFIG_RADIUS_SERVER 1174 CFLAGS += -DRADIUS_SERVER 1175 OBJS += ../src/radius/radius_server.o 1176 endif 1177 1178 ifdef CONFIG_IPV6 1179 CFLAGS += -DCONFIG_IPV6 1180 endif 1181 1182 ifdef CONFIG_DRIVER_RADIUS_ACL 1183 CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1184 endif 1185 1186 ifdef NEED_BASE64 1187 OBJS += ../src/utils/base64.o 1188 endif 1189 1190 ifdef NEED_JSON 1191 OBJS += ../src/utils/json.o 1192 CFLAGS += -DCONFIG_JSON 1193 endif 1194 1195 ifdef NEED_AP_MLME 1196 OBJS += ../src/ap/wmm.o 1197 OBJS += ../src/ap/ap_list.o 1198 OBJS += ../src/ap/comeback_token.o 1199 OBJS += ../src/pasn/pasn_responder.o 1200 OBJS += ../src/pasn/pasn_common.o 1201 OBJS += ../src/ap/ieee802_11.o 1202 OBJS += ../src/ap/hw_features.o 1203 OBJS += ../src/ap/dfs.o 1204 CFLAGS += -DNEED_AP_MLME 1205 endif 1206 OBJS += ../src/ap/ieee802_11_ht.o 1207 1208 ifdef CONFIG_IEEE80211AC 1209 OBJS += ../src/ap/ieee802_11_vht.o 1210 endif 1211 1212 ifdef CONFIG_P2P_MANAGER 1213 CFLAGS += -DCONFIG_P2P_MANAGER 1214 OBJS += ../src/ap/p2p_hostapd.o 1215 endif 1216 1217 ifdef CONFIG_HS20 1218 CFLAGS += -DCONFIG_HS20 1219 OBJS += ../src/ap/hs20.o 1220 CONFIG_INTERWORKING=y 1221 endif 1222 1223 ifdef CONFIG_INTERWORKING 1224 CFLAGS += -DCONFIG_INTERWORKING 1225 NEED_GAS=y 1226 endif 1227 1228 ifdef NEED_GAS 1229 OBJS += ../src/common/gas.o 1230 OBJS += ../src/ap/gas_serv.o 1231 endif 1232 1233 ifdef CONFIG_PROXYARP 1234 CFLAGS += -DCONFIG_PROXYARP 1235 OBJS += ../src/ap/x_snoop.o 1236 OBJS += ../src/ap/dhcp_snoop.o 1237 ifdef CONFIG_IPV6 1238 OBJS += ../src/ap/ndisc_snoop.o 1239 endif 1240 endif 1241 1242 OBJS += ../src/drivers/driver_common.o 1243 1244 ifdef CONFIG_WPA_CLI_EDIT 1245 OBJS_c += ../src/utils/edit.o 1246 else 1247 OBJS_c += ../src/utils/edit_simple.o 1248 endif 1249 1250 ifdef CONFIG_ACS 1251 CFLAGS += -DCONFIG_ACS 1252 OBJS += ../src/ap/acs.o 1253 LIBS += -lm 1254 endif 1255 1256 ifdef CONFIG_NO_STDOUT_DEBUG 1257 CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1258 endif 1259 1260 ifdef CONFIG_DEBUG_SYSLOG 1261 CFLAGS += -DCONFIG_DEBUG_SYSLOG 1262 endif 1263 1264 ifdef CONFIG_DEBUG_LINUX_TRACING 1265 CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1266 endif 1267 1268 ifdef CONFIG_DEBUG_FILE 1269 CFLAGS += -DCONFIG_DEBUG_FILE 1270 endif 1271 1272 ifdef CONFIG_SQLITE 1273 CFLAGS += -DCONFIG_SQLITE 1274 LIBS += -lsqlite3 1275 LIBS_h += -lsqlite3 1276 endif 1277 1278 ifdef CONFIG_FST 1279 CFLAGS += -DCONFIG_FST 1280 OBJS += ../src/fst/fst.o 1281 OBJS += ../src/fst/fst_group.o 1282 OBJS += ../src/fst/fst_iface.o 1283 OBJS += ../src/fst/fst_session.o 1284 OBJS += ../src/fst/fst_ctrl_aux.o 1285 ifdef CONFIG_FST_TEST 1286 CFLAGS += -DCONFIG_FST_TEST 1287 endif 1288 ifndef CONFIG_NO_CTRL_IFACE 1289 OBJS += ../src/fst/fst_ctrl_iface.o 1290 endif 1291 endif 1292 1293 ifdef CONFIG_WEP 1294 CFLAGS += -DCONFIG_WEP 1295 endif 1296 1297 ifdef CONFIG_NO_TKIP 1298 CFLAGS += -DCONFIG_NO_TKIP 1299 endif 1300 1301 $(DESTDIR)$(BINDIR)/%: % 1302 install -D $(<) $(@) 1303 1304 install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL)) 1305 1306 _OBJS_VAR := OBJS 1307 include ../src/objs.mk 1308 1309 hostapd: $(OBJS) 1310 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) 1311 @$(E) " LD " $@ 1312 1313 ifdef CONFIG_WPA_TRACE 1314 OBJS_c += ../src/utils/trace.o 1315 endif 1316 1317 _OBJS_VAR := OBJS_c 1318 include ../src/objs.mk 1319 1320 hostapd_cli: $(OBJS_c) 1321 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c) 1322 @$(E) " LD " $@ 1323 1324 NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) 1325 NOBJS += ../src/utils/common.o 1326 ifdef NEED_RC4 1327 ifdef CONFIG_INTERNAL_RC4 1328 ifndef CONFIG_NO_RC4 1329 NOBJS += ../src/crypto/rc4.o 1330 endif 1331 endif 1332 endif 1333 ifdef CONFIG_INTERNAL_MD5 1334 NOBJS += ../src/crypto/md5-internal.o 1335 endif 1336 NOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1337 NOBJS += ../src/utils/os_$(CONFIG_OS).o 1338 NOBJS += ../src/utils/wpa_debug.o 1339 NOBJS += ../src/utils/wpabuf.o 1340 ifdef CONFIG_WPA_TRACE 1341 NOBJS += ../src/utils/trace.o 1342 endif 1343 1344 HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o 1345 HOBJS += ../src/crypto/aes-encblock.o 1346 ifdef CONFIG_INTERNAL_AES 1347 HOBJS += ../src/crypto/aes-internal.o 1348 HOBJS += ../src/crypto/aes-internal-enc.o 1349 endif 1350 ifeq ($(CONFIG_TLS), linux) 1351 HOBJS += ../src/crypto/crypto_linux.o 1352 endif 1353 1354 SOBJS += sae_pk_gen.o 1355 SOBJS += ../src/utils/common.o 1356 SOBJS += ../src/utils/os_$(CONFIG_OS).o 1357 SOBJS += ../src/utils/base64.o 1358 SOBJS += ../src/utils/wpa_debug.o 1359 SOBJS += ../src/utils/wpabuf.o 1360 ifdef CONFIG_WPA_TRACE 1361 SOBJS += ../src/utils/trace.o 1362 endif 1363 SOBJS += ../src/common/ieee802_11_common.o 1364 SOBJS += ../src/common/sae.o 1365 SOBJS += ../src/common/sae_pk.o 1366 SOBJS += ../src/common/dragonfly.o 1367 SOBJS += $(AESOBJS) 1368 SOBJS += ../src/crypto/sha256-prf.o 1369 SOBJS += ../src/crypto/sha384-prf.o 1370 SOBJS += ../src/crypto/sha512-prf.o 1371 SOBJS += ../src/crypto/dh_groups.o 1372 SOBJS += ../src/crypto/sha256-kdf.o 1373 SOBJS += ../src/crypto/sha384-kdf.o 1374 SOBJS += ../src/crypto/sha512-kdf.o 1375 1376 _OBJS_VAR := NOBJS 1377 include ../src/objs.mk 1378 _OBJS_VAR := HOBJS 1379 include ../src/objs.mk 1380 _OBJS_VAR := SOBJS 1381 include ../src/objs.mk 1382 1383 nt_password_hash: $(NOBJS) 1384 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n) 1385 @$(E) " LD " $@ 1386 1387 hlr_auc_gw: $(HOBJS) 1388 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h) 1389 @$(E) " LD " $@ 1390 1391 sae_pk_gen: $(SOBJS) 1392 $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s) 1393 @$(E) " LD " $@ 1394 1395 .PHONY: lcov-html 1396 lcov-html: 1397 lcov -c -d $(BUILDDIR) > lcov.info 1398 genhtml lcov.info --output-directory lcov-html 1399 1400 clean: common-clean 1401 rm -f core *~ nt_password_hash hlr_auc_gw 1402 rm -f sae_pk_gen 1403 rm -f lcov.info 1404 rm -rf lcov-html 1405