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 298OBJS += ../src/common/sae_pk.o 299endif 300NEED_ECC=y 301NEED_DH_GROUPS=y 302NEED_HMAC_SHA256_KDF=y 303NEED_AP_MLME=y 304NEED_DRAGONFLY=y 305endif 306 307ifdef CONFIG_OWE 308CFLAGS += -DCONFIG_OWE 309NEED_ECC=y 310NEED_HMAC_SHA256_KDF=y 311NEED_HMAC_SHA384_KDF=y 312NEED_HMAC_SHA512_KDF=y 313NEED_SHA384=y 314NEED_SHA512=y 315endif 316 317ifdef CONFIG_WAPI_INTERFACE 318L_CFLAGS += -DCONFIG_WAPI_INTERFACE 319endif 320 321ifdef CONFIG_AIRTIME_POLICY 322CFLAGS += -DCONFIG_AIRTIME_POLICY 323OBJS += ../src/ap/airtime_policy.o 324endif 325 326ifdef CONFIG_FILS 327CFLAGS += -DCONFIG_FILS 328OBJS += ../src/ap/fils_hlp.o 329NEED_SHA384=y 330NEED_AES_SIV=y 331ifdef CONFIG_FILS_SK_PFS 332CFLAGS += -DCONFIG_FILS_SK_PFS 333NEED_ECC=y 334endif 335endif 336 337ifdef CONFIG_WNM 338CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP 339OBJS += ../src/ap/wnm_ap.o 340endif 341 342ifdef CONFIG_IEEE80211AC 343CFLAGS += -DCONFIG_IEEE80211AC 344endif 345 346ifdef CONFIG_IEEE80211BE 347CONFIG_IEEE80211AX=y 348CFLAGS += -DCONFIG_IEEE80211BE 349OBJS += ../src/ap/ieee802_11_eht.o 350endif 351 352ifdef CONFIG_IEEE80211AX 353CFLAGS += -DCONFIG_IEEE80211AX 354OBJS += ../src/ap/ieee802_11_he.o 355endif 356 357ifdef CONFIG_MBO 358CFLAGS += -DCONFIG_MBO 359OBJS += ../src/ap/mbo_ap.o 360endif 361 362include ../src/drivers/drivers.mak 363OBJS += $(DRV_AP_OBJS) 364CFLAGS += $(DRV_AP_CFLAGS) 365LDFLAGS += $(DRV_AP_LDFLAGS) 366LIBS += $(DRV_AP_LIBS) 367 368ifdef CONFIG_L2_PACKET 369ifdef CONFIG_DNET_PCAP 370ifdef CONFIG_L2_FREEBSD 371LIBS += -lpcap 372OBJS += ../src/l2_packet/l2_packet_freebsd.o 373else 374LIBS += -ldnet -lpcap 375OBJS += ../src/l2_packet/l2_packet_pcap.o 376endif 377else 378OBJS += ../src/l2_packet/l2_packet_linux.o 379endif 380else 381OBJS += ../src/l2_packet/l2_packet_none.o 382endif 383 384 385ifdef CONFIG_ERP 386CFLAGS += -DCONFIG_ERP 387NEED_HMAC_SHA256_KDF=y 388endif 389 390ifdef CONFIG_EAP_MD5 391CFLAGS += -DEAP_SERVER_MD5 392OBJS += ../src/eap_server/eap_server_md5.o 393CHAP=y 394endif 395 396ifdef CONFIG_EAP_TLS 397CFLAGS += -DEAP_SERVER_TLS 398OBJS += ../src/eap_server/eap_server_tls.o 399TLS_FUNCS=y 400endif 401 402ifdef CONFIG_EAP_UNAUTH_TLS 403CFLAGS += -DEAP_SERVER_UNAUTH_TLS 404ifndef CONFIG_EAP_TLS 405OBJS += ../src/eap_server/eap_server_tls.o 406TLS_FUNCS=y 407endif 408endif 409 410ifdef CONFIG_EAP_PEAP 411CFLAGS += -DEAP_SERVER_PEAP 412OBJS += ../src/eap_server/eap_server_peap.o 413OBJS += ../src/eap_common/eap_peap_common.o 414TLS_FUNCS=y 415CONFIG_EAP_MSCHAPV2=y 416endif 417 418ifdef CONFIG_EAP_TTLS 419CFLAGS += -DEAP_SERVER_TTLS 420OBJS += ../src/eap_server/eap_server_ttls.o 421TLS_FUNCS=y 422CHAP=y 423endif 424 425ifdef CONFIG_EAP_MSCHAPV2 426CFLAGS += -DEAP_SERVER_MSCHAPV2 427OBJS += ../src/eap_server/eap_server_mschapv2.o 428MS_FUNCS=y 429endif 430 431ifdef CONFIG_EAP_GTC 432CFLAGS += -DEAP_SERVER_GTC 433OBJS += ../src/eap_server/eap_server_gtc.o 434endif 435 436ifdef CONFIG_EAP_SIM 437CFLAGS += -DEAP_SERVER_SIM 438OBJS += ../src/eap_server/eap_server_sim.o 439CONFIG_EAP_SIM_COMMON=y 440NEED_AES_CBC=y 441endif 442 443ifdef CONFIG_EAP_AKA 444CFLAGS += -DEAP_SERVER_AKA 445OBJS += ../src/eap_server/eap_server_aka.o 446CONFIG_EAP_SIM_COMMON=y 447NEED_AES_CBC=y 448endif 449 450ifdef CONFIG_EAP_AKA_PRIME 451CFLAGS += -DEAP_SERVER_AKA_PRIME 452endif 453 454ifdef CONFIG_EAP_SIM_COMMON 455OBJS += ../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. 459OBJS += ../src/eap_server/eap_sim_db.o 460NEED_FIPS186_2_PRF=y 461endif 462 463ifdef CONFIG_EAP_PAX 464CFLAGS += -DEAP_SERVER_PAX 465OBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o 466endif 467 468ifdef CONFIG_EAP_PSK 469CFLAGS += -DEAP_SERVER_PSK 470OBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o 471NEED_AES_ENCBLOCK=y 472NEED_AES_EAX=y 473endif 474 475ifdef CONFIG_EAP_SAKE 476CFLAGS += -DEAP_SERVER_SAKE 477OBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o 478endif 479 480ifdef CONFIG_EAP_GPSK 481CFLAGS += -DEAP_SERVER_GPSK 482OBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o 483ifdef CONFIG_EAP_GPSK_SHA256 484CFLAGS += -DEAP_GPSK_SHA256 485endif 486endif 487 488ifdef CONFIG_EAP_PWD 489CFLAGS += -DEAP_SERVER_PWD 490OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o 491NEED_ECC=y 492NEED_DRAGONFLY=y 493endif 494 495ifdef CONFIG_EAP_EKE 496CFLAGS += -DEAP_SERVER_EKE 497OBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o 498NEED_DH_GROUPS=y 499NEED_DH_GROUPS_ALL=y 500endif 501 502ifdef CONFIG_EAP_VENDOR_TEST 503CFLAGS += -DEAP_SERVER_VENDOR_TEST 504OBJS += ../src/eap_server/eap_server_vendor_test.o 505endif 506 507ifdef CONFIG_EAP_FAST 508CFLAGS += -DEAP_SERVER_FAST 509OBJS += ../src/eap_server/eap_server_fast.o 510OBJS += ../src/eap_common/eap_fast_common.o 511TLS_FUNCS=y 512NEED_T_PRF=y 513NEED_AES_UNWRAP=y 514endif 515 516ifdef CONFIG_EAP_TEAP 517CFLAGS += -DEAP_SERVER_TEAP 518OBJS += ../src/eap_server/eap_server_teap.o 519OBJS += ../src/eap_common/eap_teap_common.o 520TLS_FUNCS=y 521NEED_T_PRF=y 522NEED_SHA384=y 523NEED_TLS_PRF_SHA256=y 524NEED_TLS_PRF_SHA384=y 525NEED_AES_UNWRAP=y 526endif 527 528ifdef CONFIG_WPS 529CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 530OBJS += ../src/utils/uuid.o 531OBJS += ../src/ap/wps_hostapd.o 532OBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o 533OBJS += ../src/wps/wps.o 534OBJS += ../src/wps/wps_common.o 535OBJS += ../src/wps/wps_attr_parse.o 536OBJS += ../src/wps/wps_attr_build.o 537OBJS += ../src/wps/wps_attr_process.o 538OBJS += ../src/wps/wps_dev_attr.o 539OBJS += ../src/wps/wps_enrollee.o 540OBJS += ../src/wps/wps_registrar.o 541NEED_DH_GROUPS=y 542NEED_BASE64=y 543NEED_AES_CBC=y 544NEED_MODEXP=y 545CONFIG_EAP=y 546 547ifdef CONFIG_WPS_NFC 548CFLAGS += -DCONFIG_WPS_NFC 549OBJS += ../src/wps/ndef.o 550NEED_WPS_OOB=y 551endif 552 553ifdef NEED_WPS_OOB 554CFLAGS += -DCONFIG_WPS_OOB 555endif 556 557ifdef CONFIG_WPS_UPNP 558CFLAGS += -DCONFIG_WPS_UPNP 559OBJS += ../src/wps/wps_upnp.o 560OBJS += ../src/wps/wps_upnp_ssdp.o 561OBJS += ../src/wps/wps_upnp_web.o 562OBJS += ../src/wps/wps_upnp_event.o 563OBJS += ../src/wps/wps_upnp_ap.o 564OBJS += ../src/wps/upnp_xml.o 565OBJS += ../src/wps/httpread.o 566OBJS += ../src/wps/http_client.o 567OBJS += ../src/wps/http_server.o 568endif 569 570ifdef CONFIG_WPS_STRICT 571CFLAGS += -DCONFIG_WPS_STRICT 572OBJS += ../src/wps/wps_validate.o 573endif 574 575ifdef CONFIG_WPS_TESTING 576CFLAGS += -DCONFIG_WPS_TESTING 577endif 578 579endif 580 581ifdef CONFIG_DPP 582CFLAGS += -DCONFIG_DPP 583OBJS += ../src/common/dpp.o 584OBJS += ../src/common/dpp_auth.o 585OBJS += ../src/common/dpp_backup.o 586OBJS += ../src/common/dpp_crypto.o 587OBJS += ../src/common/dpp_pkex.o 588OBJS += ../src/common/dpp_reconfig.o 589OBJS += ../src/common/dpp_tcp.o 590OBJS += ../src/ap/dpp_hostapd.o 591OBJS += ../src/ap/gas_query_ap.o 592NEED_AES_SIV=y 593NEED_HMAC_SHA256_KDF=y 594NEED_HMAC_SHA384_KDF=y 595NEED_HMAC_SHA512_KDF=y 596NEED_SHA384=y 597NEED_SHA512=y 598NEED_ECC=y 599NEED_JSON=y 600NEED_GAS=y 601NEED_BASE64=y 602NEED_ASN1=y 603ifdef CONFIG_DPP2 604CFLAGS += -DCONFIG_DPP2 605endif 606ifdef CONFIG_DPP3 607CFLAGS += -DCONFIG_DPP3 608endif 609endif 610 611ifdef CONFIG_PASN 612CFLAGS += -DCONFIG_PASN 613CFLAGS += -DCONFIG_PTKSA_CACHE 614NEED_HMAC_SHA256_KDF=y 615NEED_HMAC_SHA384_KDF=y 616NEED_SHA256=y 617NEED_SHA384=y 618OBJS += ../src/common/ptksa_cache.o 619endif 620 621ifdef CONFIG_EAP_IKEV2 622CFLAGS += -DEAP_SERVER_IKEV2 623OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o 624OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 625NEED_DH_GROUPS=y 626NEED_DH_GROUPS_ALL=y 627NEED_MODEXP=y 628NEED_CIPHER=y 629endif 630 631ifdef CONFIG_EAP_TNC 632CFLAGS += -DEAP_SERVER_TNC 633OBJS += ../src/eap_server/eap_server_tnc.o 634OBJS += ../src/eap_server/tncs.o 635NEED_BASE64=y 636ifndef CONFIG_DRIVER_BSD 637LIBS += -ldl 638endif 639endif 640 641ifdef CONFIG_MACSEC 642CFLAGS += -DCONFIG_MACSEC 643OBJS += ../src/ap/wpa_auth_kay.o 644OBJS += ../src/pae/ieee802_1x_cp.o 645OBJS += ../src/pae/ieee802_1x_kay.o 646OBJS += ../src/pae/ieee802_1x_key.o 647OBJS += ../src/pae/ieee802_1x_secy_ops.o 648endif 649 650# Basic EAP functionality is needed for EAPOL 651OBJS += eap_register.o 652OBJS += ../src/eap_server/eap_server.o 653OBJS += ../src/eap_common/eap_common.o 654OBJS += ../src/eap_server/eap_server_methods.o 655OBJS += ../src/eap_server/eap_server_identity.o 656CFLAGS += -DEAP_SERVER_IDENTITY 657 658ifdef CONFIG_EAP 659CFLAGS += -DEAP_SERVER 660endif 661 662ifdef CONFIG_PKCS12 663CFLAGS += -DPKCS12_FUNCS 664endif 665 666ifdef NEED_DRAGONFLY 667OBJS += ../src/common/dragonfly.o 668endif 669 670ifdef MS_FUNCS 671OBJS += ../src/crypto/ms_funcs.o 672NEED_DES=y 673NEED_MD4=y 674endif 675 676ifdef CHAP 677OBJS += ../src/eap_common/chap.o 678endif 679 680ifdef TLS_FUNCS 681NEED_DES=y 682# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 683CFLAGS += -DEAP_TLS_FUNCS 684OBJS += ../src/eap_server/eap_server_tls_common.o 685NEED_TLS_PRF=y 686endif 687 688ifndef CONFIG_TLS 689CONFIG_TLS=openssl 690endif 691 692ifdef CONFIG_TLSV11 693CFLAGS += -DCONFIG_TLSV11 694endif 695 696ifdef CONFIG_TLSV12 697CFLAGS += -DCONFIG_TLSV12 698endif 699 700ifeq ($(CONFIG_TLS), wolfssl) 701CONFIG_CRYPTO=wolfssl 702ifdef TLS_FUNCS 703OBJS += ../src/crypto/tls_wolfssl.o 704LIBS += -lwolfssl -lm 705endif 706OBJS += ../src/crypto/crypto_wolfssl.o 707HOBJS += ../src/crypto/crypto_wolfssl.o 708ifdef NEED_FIPS186_2_PRF 709OBJS += ../src/crypto/fips_prf_wolfssl.o 710endif 711NEED_TLS_PRF_SHA256=y 712LIBS += -lwolfssl -lm 713LIBS_h += -lwolfssl -lm 714ifdef CONFIG_TLS_ADD_DL 715LIBS += -ldl 716LIBS_h += -ldl 717endif 718endif 719 720ifeq ($(CONFIG_TLS), openssl) 721CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 722CONFIG_CRYPTO=openssl 723ifdef TLS_FUNCS 724OBJS += ../src/crypto/tls_openssl.o 725OBJS += ../src/crypto/tls_openssl_ocsp.o 726LIBS += -lssl 727endif 728OBJS += ../src/crypto/crypto_openssl.o 729HOBJS += ../src/crypto/crypto_openssl.o 730SOBJS += ../src/crypto/crypto_openssl.o 731ifdef NEED_FIPS186_2_PRF 732OBJS += ../src/crypto/fips_prf_openssl.o 733endif 734NEED_TLS_PRF_SHA256=y 735LIBS += -lcrypto 736LIBS_h += -lcrypto 737LIBS_n += -lcrypto 738LIBS_s += -lcrypto 739ifdef CONFIG_TLS_ADD_DL 740LIBS += -ldl 741LIBS_h += -ldl 742LIBS_s += -ldl 743endif 744ifndef CONFIG_TLS_DEFAULT_CIPHERS 745CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 746endif 747CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 748endif 749 750ifeq ($(CONFIG_TLS), gnutls) 751ifndef CONFIG_CRYPTO 752# default to libgcrypt 753CONFIG_CRYPTO=gnutls 754endif 755ifdef TLS_FUNCS 756OBJS += ../src/crypto/tls_gnutls.o 757LIBS += -lgnutls -lgpg-error 758endif 759OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 760HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 761ifdef NEED_FIPS186_2_PRF 762OBJS += ../src/crypto/fips_prf_internal.o 763SHA1OBJS += ../src/crypto/sha1-internal.o 764endif 765ifeq ($(CONFIG_CRYPTO), gnutls) 766LIBS += -lgcrypt 767LIBS_h += -lgcrypt 768LIBS_n += -lgcrypt 769CONFIG_INTERNAL_RC4=y 770CONFIG_INTERNAL_DH_GROUP5=y 771endif 772ifeq ($(CONFIG_CRYPTO), nettle) 773LIBS += -lnettle -lgmp 774LIBS_p += -lnettle -lgmp 775CONFIG_INTERNAL_RC4=y 776CONFIG_INTERNAL_DH_GROUP5=y 777endif 778endif 779 780ifeq ($(CONFIG_TLS), internal) 781ifndef CONFIG_CRYPTO 782CONFIG_CRYPTO=internal 783endif 784ifdef TLS_FUNCS 785OBJS += ../src/crypto/crypto_internal-rsa.o 786OBJS += ../src/crypto/tls_internal.o 787OBJS += ../src/tls/tlsv1_common.o 788OBJS += ../src/tls/tlsv1_record.o 789OBJS += ../src/tls/tlsv1_cred.o 790OBJS += ../src/tls/tlsv1_server.o 791OBJS += ../src/tls/tlsv1_server_write.o 792OBJS += ../src/tls/tlsv1_server_read.o 793OBJS += ../src/tls/rsa.o 794OBJS += ../src/tls/x509v3.o 795OBJS += ../src/tls/pkcs1.o 796OBJS += ../src/tls/pkcs5.o 797OBJS += ../src/tls/pkcs8.o 798NEED_ASN1=y 799NEED_BASE64=y 800NEED_TLS_PRF=y 801ifdef CONFIG_TLSV12 802NEED_TLS_PRF_SHA256=y 803endif 804NEED_MODEXP=y 805NEED_CIPHER=y 806CFLAGS += -DCONFIG_TLS_INTERNAL 807CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 808endif 809ifdef NEED_CIPHER 810NEED_DES=y 811OBJS += ../src/crypto/crypto_internal-cipher.o 812endif 813ifdef NEED_MODEXP 814OBJS += ../src/crypto/crypto_internal-modexp.o 815OBJS += ../src/tls/bignum.o 816endif 817ifeq ($(CONFIG_CRYPTO), libtomcrypt) 818OBJS += ../src/crypto/crypto_libtomcrypt.o 819LIBS += -ltomcrypt -ltfm 820LIBS_h += -ltomcrypt -ltfm 821CONFIG_INTERNAL_SHA256=y 822CONFIG_INTERNAL_RC4=y 823CONFIG_INTERNAL_DH_GROUP5=y 824endif 825ifeq ($(CONFIG_CRYPTO), internal) 826OBJS += ../src/crypto/crypto_internal.o 827NEED_AES_DEC=y 828CFLAGS += -DCONFIG_CRYPTO_INTERNAL 829ifdef CONFIG_INTERNAL_LIBTOMMATH 830CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 831ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 832CFLAGS += -DLTM_FAST 833endif 834else 835LIBS += -ltommath 836LIBS_h += -ltommath 837endif 838CONFIG_INTERNAL_AES=y 839CONFIG_INTERNAL_DES=y 840CONFIG_INTERNAL_SHA1=y 841CONFIG_INTERNAL_MD4=y 842CONFIG_INTERNAL_MD5=y 843CONFIG_INTERNAL_SHA256=y 844CONFIG_INTERNAL_SHA384=y 845CONFIG_INTERNAL_SHA512=y 846CONFIG_INTERNAL_RC4=y 847CONFIG_INTERNAL_DH_GROUP5=y 848endif 849ifeq ($(CONFIG_CRYPTO), cryptoapi) 850OBJS += ../src/crypto/crypto_cryptoapi.o 851OBJS_p += ../src/crypto/crypto_cryptoapi.o 852CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 853CONFIG_INTERNAL_SHA256=y 854CONFIG_INTERNAL_RC4=y 855endif 856endif 857 858ifeq ($(CONFIG_TLS), linux) 859OBJS += ../src/crypto/crypto_linux.o 860ifdef TLS_FUNCS 861OBJS += ../src/crypto/crypto_internal-rsa.o 862OBJS += ../src/crypto/tls_internal.o 863OBJS += ../src/tls/tlsv1_common.o 864OBJS += ../src/tls/tlsv1_record.o 865OBJS += ../src/tls/tlsv1_cred.o 866OBJS += ../src/tls/tlsv1_server.o 867OBJS += ../src/tls/tlsv1_server_write.o 868OBJS += ../src/tls/tlsv1_server_read.o 869OBJS += ../src/tls/rsa.o 870OBJS += ../src/tls/x509v3.o 871OBJS += ../src/tls/pkcs1.o 872OBJS += ../src/tls/pkcs5.o 873OBJS += ../src/tls/pkcs8.o 874NEED_ASN1=y 875NEED_BASE64=y 876NEED_TLS_PRF=y 877ifdef CONFIG_TLSV12 878NEED_TLS_PRF_SHA256=y 879endif 880NEED_MODEXP=y 881NEED_CIPHER=y 882CFLAGS += -DCONFIG_TLS_INTERNAL 883CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 884endif 885ifdef NEED_MODEXP 886OBJS += ../src/crypto/crypto_internal-modexp.o 887OBJS += ../src/tls/bignum.o 888CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 889CFLAGS += -DLTM_FAST 890endif 891CONFIG_INTERNAL_DH_GROUP5=y 892ifdef NEED_FIPS186_2_PRF 893OBJS += ../src/crypto/fips_prf_internal.o 894OBJS += ../src/crypto/sha1-internal.o 895endif 896endif 897 898ifeq ($(CONFIG_TLS), none) 899ifdef TLS_FUNCS 900OBJS += ../src/crypto/tls_none.o 901CFLAGS += -DEAP_TLS_NONE 902CONFIG_INTERNAL_AES=y 903CONFIG_INTERNAL_SHA1=y 904CONFIG_INTERNAL_MD5=y 905endif 906OBJS += ../src/crypto/crypto_none.o 907OBJS_p += ../src/crypto/crypto_none.o 908CONFIG_INTERNAL_SHA256=y 909CONFIG_INTERNAL_RC4=y 910endif 911 912ifndef TLS_FUNCS 913OBJS += ../src/crypto/tls_none.o 914ifeq ($(CONFIG_TLS), internal) 915CONFIG_INTERNAL_AES=y 916CONFIG_INTERNAL_SHA1=y 917CONFIG_INTERNAL_MD5=y 918CONFIG_INTERNAL_RC4=y 919endif 920endif 921 922AESOBJS = # none so far 923ifdef CONFIG_INTERNAL_AES 924AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o 925endif 926 927ifneq ($(CONFIG_TLS), openssl) 928ifneq ($(CONFIG_TLS), wolfssl) 929AESOBJS += ../src/crypto/aes-wrap.o 930endif 931endif 932ifdef NEED_AES_EAX 933AESOBJS += ../src/crypto/aes-eax.o 934NEED_AES_CTR=y 935endif 936ifdef NEED_AES_SIV 937AESOBJS += ../src/crypto/aes-siv.o 938NEED_AES_CTR=y 939endif 940ifdef NEED_AES_CTR 941AESOBJS += ../src/crypto/aes-ctr.o 942endif 943ifdef NEED_AES_ENCBLOCK 944AESOBJS += ../src/crypto/aes-encblock.o 945endif 946ifneq ($(CONFIG_TLS), openssl) 947ifneq ($(CONFIG_TLS), linux) 948ifneq ($(CONFIG_TLS), wolfssl) 949AESOBJS += ../src/crypto/aes-omac1.o 950endif 951endif 952endif 953ifdef NEED_AES_UNWRAP 954ifneq ($(CONFIG_TLS), openssl) 955ifneq ($(CONFIG_TLS), linux) 956ifneq ($(CONFIG_TLS), wolfssl) 957NEED_AES_DEC=y 958AESOBJS += ../src/crypto/aes-unwrap.o 959endif 960endif 961endif 962endif 963ifdef NEED_AES_CBC 964NEED_AES_DEC=y 965ifneq ($(CONFIG_TLS), openssl) 966ifneq ($(CONFIG_TLS), linux) 967ifneq ($(CONFIG_TLS), wolfssl) 968AESOBJS += ../src/crypto/aes-cbc.o 969endif 970endif 971endif 972endif 973ifdef NEED_AES_DEC 974ifdef CONFIG_INTERNAL_AES 975AESOBJS += ../src/crypto/aes-internal-dec.o 976endif 977endif 978ifdef NEED_AES 979OBJS += $(AESOBJS) 980endif 981 982ifdef NEED_SHA1 983ifneq ($(CONFIG_TLS), openssl) 984ifneq ($(CONFIG_TLS), linux) 985ifneq ($(CONFIG_TLS), gnutls) 986ifneq ($(CONFIG_TLS), wolfssl) 987SHA1OBJS += ../src/crypto/sha1.o 988endif 989endif 990endif 991endif 992SHA1OBJS += ../src/crypto/sha1-prf.o 993ifdef CONFIG_INTERNAL_SHA1 994SHA1OBJS += ../src/crypto/sha1-internal.o 995ifdef NEED_FIPS186_2_PRF 996SHA1OBJS += ../src/crypto/fips_prf_internal.o 997endif 998endif 999ifneq ($(CONFIG_TLS), openssl) 1000ifneq ($(CONFIG_TLS), wolfssl) 1001SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1002endif 1003endif 1004ifdef NEED_T_PRF 1005SHA1OBJS += ../src/crypto/sha1-tprf.o 1006endif 1007ifdef NEED_TLS_PRF 1008SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1009endif 1010endif 1011 1012ifdef NEED_SHA1 1013OBJS += $(SHA1OBJS) 1014endif 1015 1016ifneq ($(CONFIG_TLS), openssl) 1017ifneq ($(CONFIG_TLS), linux) 1018ifneq ($(CONFIG_TLS), gnutls) 1019ifneq ($(CONFIG_TLS), wolfssl) 1020OBJS += ../src/crypto/md5.o 1021endif 1022endif 1023endif 1024endif 1025 1026ifdef NEED_MD5 1027ifdef CONFIG_INTERNAL_MD5 1028OBJS += ../src/crypto/md5-internal.o 1029HOBJS += ../src/crypto/md5-internal.o 1030endif 1031endif 1032 1033ifdef NEED_MD4 1034ifdef CONFIG_INTERNAL_MD4 1035OBJS += ../src/crypto/md4-internal.o 1036endif 1037endif 1038 1039ifdef NEED_DES 1040CFLAGS += -DCONFIG_DES 1041ifdef CONFIG_INTERNAL_DES 1042OBJS += ../src/crypto/des-internal.o 1043endif 1044endif 1045 1046ifdef CONFIG_NO_RC4 1047CFLAGS += -DCONFIG_NO_RC4 1048endif 1049 1050ifdef NEED_RC4 1051ifdef CONFIG_INTERNAL_RC4 1052ifndef CONFIG_NO_RC4 1053OBJS += ../src/crypto/rc4.o 1054endif 1055endif 1056endif 1057 1058CFLAGS += -DCONFIG_SHA256 1059ifneq ($(CONFIG_TLS), openssl) 1060ifneq ($(CONFIG_TLS), linux) 1061ifneq ($(CONFIG_TLS), gnutls) 1062ifneq ($(CONFIG_TLS), wolfssl) 1063OBJS += ../src/crypto/sha256.o 1064endif 1065endif 1066endif 1067endif 1068OBJS += ../src/crypto/sha256-prf.o 1069ifdef CONFIG_INTERNAL_SHA256 1070OBJS += ../src/crypto/sha256-internal.o 1071endif 1072ifdef NEED_TLS_PRF_SHA256 1073OBJS += ../src/crypto/sha256-tlsprf.o 1074endif 1075ifdef NEED_TLS_PRF_SHA384 1076OBJS += ../src/crypto/sha384-tlsprf.o 1077endif 1078ifdef NEED_HMAC_SHA256_KDF 1079OBJS += ../src/crypto/sha256-kdf.o 1080endif 1081ifdef NEED_HMAC_SHA384_KDF 1082OBJS += ../src/crypto/sha384-kdf.o 1083endif 1084ifdef NEED_HMAC_SHA512_KDF 1085OBJS += ../src/crypto/sha512-kdf.o 1086endif 1087ifdef NEED_SHA384 1088CFLAGS += -DCONFIG_SHA384 1089ifneq ($(CONFIG_TLS), openssl) 1090ifneq ($(CONFIG_TLS), linux) 1091ifneq ($(CONFIG_TLS), gnutls) 1092ifneq ($(CONFIG_TLS), wolfssl) 1093OBJS += ../src/crypto/sha384.o 1094endif 1095endif 1096endif 1097endif 1098OBJS += ../src/crypto/sha384-prf.o 1099endif 1100ifdef NEED_SHA512 1101CFLAGS += -DCONFIG_SHA512 1102ifneq ($(CONFIG_TLS), openssl) 1103ifneq ($(CONFIG_TLS), linux) 1104ifneq ($(CONFIG_TLS), gnutls) 1105ifneq ($(CONFIG_TLS), wolfssl) 1106OBJS += ../src/crypto/sha512.o 1107endif 1108endif 1109endif 1110endif 1111OBJS += ../src/crypto/sha512-prf.o 1112endif 1113 1114ifdef CONFIG_INTERNAL_SHA384 1115CFLAGS += -DCONFIG_INTERNAL_SHA384 1116OBJS += ../src/crypto/sha384-internal.o 1117endif 1118 1119ifdef CONFIG_INTERNAL_SHA512 1120CFLAGS += -DCONFIG_INTERNAL_SHA512 1121OBJS += ../src/crypto/sha512-internal.o 1122endif 1123 1124ifdef NEED_ASN1 1125OBJS += ../src/tls/asn1.o 1126endif 1127 1128ifdef NEED_DH_GROUPS 1129OBJS += ../src/crypto/dh_groups.o 1130endif 1131ifdef NEED_DH_GROUPS_ALL 1132CFLAGS += -DALL_DH_GROUPS 1133endif 1134ifdef CONFIG_INTERNAL_DH_GROUP5 1135ifdef NEED_DH_GROUPS 1136OBJS += ../src/crypto/dh_group5.o 1137endif 1138endif 1139 1140ifdef NEED_ECC 1141CFLAGS += -DCONFIG_ECC 1142endif 1143 1144ifdef CONFIG_NO_RANDOM_POOL 1145CFLAGS += -DCONFIG_NO_RANDOM_POOL 1146else 1147ifdef CONFIG_GETRANDOM 1148CFLAGS += -DCONFIG_GETRANDOM 1149endif 1150OBJS += ../src/crypto/random.o 1151HOBJS += ../src/crypto/random.o 1152HOBJS += ../src/utils/eloop.o 1153HOBJS += $(SHA1OBJS) 1154ifneq ($(CONFIG_TLS), openssl) 1155ifneq ($(CONFIG_TLS), linux) 1156ifneq ($(CONFIG_TLS), wolfssl) 1157HOBJS += ../src/crypto/md5.o 1158endif 1159endif 1160endif 1161endif 1162 1163ifdef CONFIG_RADIUS_SERVER 1164CFLAGS += -DRADIUS_SERVER 1165OBJS += ../src/radius/radius_server.o 1166endif 1167 1168ifdef CONFIG_IPV6 1169CFLAGS += -DCONFIG_IPV6 1170endif 1171 1172ifdef CONFIG_DRIVER_RADIUS_ACL 1173CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1174endif 1175 1176ifdef NEED_BASE64 1177OBJS += ../src/utils/base64.o 1178endif 1179 1180ifdef NEED_JSON 1181OBJS += ../src/utils/json.o 1182CFLAGS += -DCONFIG_JSON 1183endif 1184 1185ifdef NEED_AP_MLME 1186OBJS += ../src/ap/wmm.o 1187OBJS += ../src/ap/ap_list.o 1188OBJS += ../src/ap/ieee802_11.o 1189OBJS += ../src/ap/hw_features.o 1190OBJS += ../src/ap/dfs.o 1191CFLAGS += -DNEED_AP_MLME 1192endif 1193OBJS += ../src/ap/ieee802_11_ht.o 1194 1195ifdef CONFIG_IEEE80211AC 1196OBJS += ../src/ap/ieee802_11_vht.o 1197endif 1198 1199ifdef CONFIG_P2P_MANAGER 1200CFLAGS += -DCONFIG_P2P_MANAGER 1201OBJS += ../src/ap/p2p_hostapd.o 1202endif 1203 1204ifdef CONFIG_HS20 1205CFLAGS += -DCONFIG_HS20 1206OBJS += ../src/ap/hs20.o 1207CONFIG_INTERWORKING=y 1208endif 1209 1210ifdef CONFIG_INTERWORKING 1211CFLAGS += -DCONFIG_INTERWORKING 1212NEED_GAS=y 1213endif 1214 1215ifdef NEED_GAS 1216OBJS += ../src/common/gas.o 1217OBJS += ../src/ap/gas_serv.o 1218endif 1219 1220ifdef CONFIG_PROXYARP 1221CFLAGS += -DCONFIG_PROXYARP 1222OBJS += ../src/ap/x_snoop.o 1223OBJS += ../src/ap/dhcp_snoop.o 1224ifdef CONFIG_IPV6 1225OBJS += ../src/ap/ndisc_snoop.o 1226endif 1227endif 1228 1229OBJS += ../src/drivers/driver_common.o 1230 1231ifdef CONFIG_WPA_CLI_EDIT 1232OBJS_c += ../src/utils/edit.o 1233else 1234OBJS_c += ../src/utils/edit_simple.o 1235endif 1236 1237ifdef CONFIG_ACS 1238CFLAGS += -DCONFIG_ACS 1239OBJS += ../src/ap/acs.o 1240LIBS += -lm 1241endif 1242 1243ifdef CONFIG_NO_STDOUT_DEBUG 1244CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1245endif 1246 1247ifdef CONFIG_DEBUG_SYSLOG 1248CFLAGS += -DCONFIG_DEBUG_SYSLOG 1249endif 1250 1251ifdef CONFIG_DEBUG_LINUX_TRACING 1252CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1253endif 1254 1255ifdef CONFIG_DEBUG_FILE 1256CFLAGS += -DCONFIG_DEBUG_FILE 1257endif 1258 1259ifdef CONFIG_SQLITE 1260CFLAGS += -DCONFIG_SQLITE 1261LIBS += -lsqlite3 1262LIBS_h += -lsqlite3 1263endif 1264 1265ifdef CONFIG_FST 1266CFLAGS += -DCONFIG_FST 1267OBJS += ../src/fst/fst.o 1268OBJS += ../src/fst/fst_group.o 1269OBJS += ../src/fst/fst_iface.o 1270OBJS += ../src/fst/fst_session.o 1271OBJS += ../src/fst/fst_ctrl_aux.o 1272ifdef CONFIG_FST_TEST 1273CFLAGS += -DCONFIG_FST_TEST 1274endif 1275ifndef CONFIG_NO_CTRL_IFACE 1276OBJS += ../src/fst/fst_ctrl_iface.o 1277endif 1278endif 1279 1280ifdef CONFIG_WEP 1281CFLAGS += -DCONFIG_WEP 1282endif 1283 1284ifdef CONFIG_NO_TKIP 1285CFLAGS += -DCONFIG_NO_TKIP 1286endif 1287 1288$(DESTDIR)$(BINDIR)/%: % 1289 install -D $(<) $(@) 1290 1291install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL)) 1292 1293_OBJS_VAR := OBJS 1294include ../src/objs.mk 1295 1296hostapd: $(OBJS) 1297 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) 1298 @$(E) " LD " $@ 1299 1300ifdef CONFIG_WPA_TRACE 1301OBJS_c += ../src/utils/trace.o 1302endif 1303 1304_OBJS_VAR := OBJS_c 1305include ../src/objs.mk 1306 1307hostapd_cli: $(OBJS_c) 1308 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c) 1309 @$(E) " LD " $@ 1310 1311NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) 1312NOBJS += ../src/utils/common.o 1313ifdef NEED_RC4 1314ifdef CONFIG_INTERNAL_RC4 1315ifndef CONFIG_NO_RC4 1316NOBJS += ../src/crypto/rc4.o 1317endif 1318endif 1319endif 1320ifdef CONFIG_INTERNAL_MD5 1321NOBJS += ../src/crypto/md5-internal.o 1322endif 1323NOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1324NOBJS += ../src/utils/os_$(CONFIG_OS).o 1325NOBJS += ../src/utils/wpa_debug.o 1326NOBJS += ../src/utils/wpabuf.o 1327ifdef CONFIG_WPA_TRACE 1328NOBJS += ../src/utils/trace.o 1329endif 1330 1331HOBJS += 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 1332HOBJS += ../src/crypto/aes-encblock.o 1333ifdef CONFIG_INTERNAL_AES 1334HOBJS += ../src/crypto/aes-internal.o 1335HOBJS += ../src/crypto/aes-internal-enc.o 1336endif 1337ifeq ($(CONFIG_TLS), linux) 1338HOBJS += ../src/crypto/crypto_linux.o 1339endif 1340 1341SOBJS += sae_pk_gen.o 1342SOBJS += ../src/utils/common.o 1343SOBJS += ../src/utils/os_$(CONFIG_OS).o 1344SOBJS += ../src/utils/base64.o 1345SOBJS += ../src/utils/wpa_debug.o 1346SOBJS += ../src/utils/wpabuf.o 1347ifdef CONFIG_WPA_TRACE 1348SOBJS += ../src/utils/trace.o 1349endif 1350SOBJS += ../src/common/ieee802_11_common.o 1351SOBJS += ../src/common/sae.o 1352SOBJS += ../src/common/sae_pk.o 1353SOBJS += ../src/common/dragonfly.o 1354SOBJS += $(AESOBJS) 1355SOBJS += ../src/crypto/sha256-prf.o 1356SOBJS += ../src/crypto/sha384-prf.o 1357SOBJS += ../src/crypto/sha512-prf.o 1358SOBJS += ../src/crypto/dh_groups.o 1359SOBJS += ../src/crypto/sha256-kdf.o 1360SOBJS += ../src/crypto/sha384-kdf.o 1361SOBJS += ../src/crypto/sha512-kdf.o 1362 1363_OBJS_VAR := NOBJS 1364include ../src/objs.mk 1365_OBJS_VAR := HOBJS 1366include ../src/objs.mk 1367_OBJS_VAR := SOBJS 1368include ../src/objs.mk 1369 1370nt_password_hash: $(NOBJS) 1371 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n) 1372 @$(E) " LD " $@ 1373 1374hlr_auc_gw: $(HOBJS) 1375 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h) 1376 @$(E) " LD " $@ 1377 1378sae_pk_gen: $(SOBJS) 1379 $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s) 1380 @$(E) " LD " $@ 1381 1382.PHONY: lcov-html 1383lcov-html: 1384 lcov -c -d $(BUILDDIR) > lcov.info 1385 genhtml lcov.info --output-directory lcov-html 1386 1387clean: common-clean 1388 rm -f core *~ nt_password_hash hlr_auc_gw 1389 rm -f sae_pk_gen 1390 rm -f lcov.info 1391 rm -rf lcov-html 1392