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