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