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 87OBJS += ../src/common/ptksa_cache.o 88 89OBJS_c = hostapd_cli.o 90OBJS_c += ../src/common/wpa_ctrl.o 91OBJS_c += ../src/utils/os_$(CONFIG_OS).o 92OBJS_c += ../src/common/cli.o 93 94NEED_RC4=y 95NEED_AES=y 96NEED_MD5=y 97NEED_SHA1=y 98 99OBJS += ../src/drivers/drivers.o 100CFLAGS += -DHOSTAPD 101 102ifdef CONFIG_TAXONOMY 103CFLAGS += -DCONFIG_TAXONOMY 104OBJS += ../src/ap/taxonomy.o 105endif 106 107ifdef CONFIG_MODULE_TESTS 108CFLAGS += -DCONFIG_MODULE_TESTS 109OBJS += hapd_module_tests.o 110endif 111 112ifdef CONFIG_WPA_TRACE 113CFLAGS += -DWPA_TRACE 114OBJS += ../src/utils/trace.o 115HOBJS += ../src/utils/trace.o 116LDFLAGS += -rdynamic 117CFLAGS += -funwind-tables 118ifdef CONFIG_WPA_TRACE_BFD 119CFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD -fno-inline -fno-optimize-sibling-calls 120LIBS += -lbfd -ldl -liberty -lz 121LIBS_c += -lbfd -ldl -liberty -lz 122LIBS_h += -lbfd -ldl -liberty -lz 123LIBS_n += -lbfd -ldl -liberty -lz 124LIBS_s += -lbfd -ldl -liberty -lz 125endif 126endif 127 128ifndef CONFIG_ELOOP 129CONFIG_ELOOP=eloop 130endif 131OBJS += ../src/utils/$(CONFIG_ELOOP).o 132OBJS_c += ../src/utils/$(CONFIG_ELOOP).o 133 134ifeq ($(CONFIG_ELOOP), eloop) 135# Using glibc < 2.17 requires -lrt for clock_gettime() 136LIBS += -lrt 137LIBS_c += -lrt 138LIBS_h += -lrt 139LIBS_n += -lrt 140endif 141 142ifdef CONFIG_ELOOP_POLL 143CFLAGS += -DCONFIG_ELOOP_POLL 144endif 145 146ifdef CONFIG_ELOOP_EPOLL 147CFLAGS += -DCONFIG_ELOOP_EPOLL 148endif 149 150ifdef CONFIG_ELOOP_KQUEUE 151CFLAGS += -DCONFIG_ELOOP_KQUEUE 152endif 153 154OBJS += ../src/utils/common.o 155OBJS_c += ../src/utils/common.o 156OBJS += ../src/utils/wpa_debug.o 157OBJS_c += ../src/utils/wpa_debug.o 158OBJS += ../src/utils/wpabuf.o 159OBJS += ../src/utils/os_$(CONFIG_OS).o 160OBJS += ../src/utils/ip_addr.o 161OBJS += ../src/utils/crc32.o 162 163OBJS += ../src/common/ieee802_11_common.o 164OBJS += ../src/common/wpa_common.o 165OBJS += ../src/common/hw_features_common.o 166 167OBJS += ../src/eapol_auth/eapol_auth_sm.o 168 169 170ifdef CONFIG_CODE_COVERAGE 171CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE 172LIBS += -lgcov 173LIBS_c += -lgcov 174LIBS_h += -lgcov 175LIBS_n += -lgcov 176endif 177 178ifndef CONFIG_NO_DUMP_STATE 179# define HOSTAPD_DUMP_STATE to include support for dumping internal state 180# through control interface commands (undefine it, if you want to save in 181# binary size) 182CFLAGS += -DHOSTAPD_DUMP_STATE 183OBJS += ../src/eapol_auth/eapol_auth_dump.o 184endif 185 186ifdef CONFIG_NO_RADIUS 187CFLAGS += -DCONFIG_NO_RADIUS 188CONFIG_NO_ACCOUNTING=y 189else 190OBJS += ../src/radius/radius.o 191OBJS += ../src/radius/radius_client.o 192OBJS += ../src/radius/radius_das.o 193endif 194 195ifdef CONFIG_NO_ACCOUNTING 196CFLAGS += -DCONFIG_NO_ACCOUNTING 197else 198OBJS += ../src/ap/accounting.o 199endif 200 201ifdef CONFIG_NO_VLAN 202CFLAGS += -DCONFIG_NO_VLAN 203else 204OBJS += ../src/ap/vlan_init.o 205OBJS += ../src/ap/vlan_ifconfig.o 206OBJS += ../src/ap/vlan.o 207ifdef CONFIG_FULL_DYNAMIC_VLAN 208# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 209# and VLAN interfaces for the VLAN feature. 210CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 211OBJS += ../src/ap/vlan_full.o 212ifdef CONFIG_VLAN_NETLINK 213OBJS += ../src/ap/vlan_util.o 214else 215OBJS += ../src/ap/vlan_ioctl.o 216endif 217endif 218endif 219 220ifdef CONFIG_NO_CTRL_IFACE 221CFLAGS += -DCONFIG_NO_CTRL_IFACE 222else 223ifeq ($(CONFIG_CTRL_IFACE), udp) 224CFLAGS += -DCONFIG_CTRL_IFACE_UDP 225else 226ifeq ($(CONFIG_CTRL_IFACE), udp6) 227CFLAGS += -DCONFIG_CTRL_IFACE_UDP 228CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 229else 230ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 231CFLAGS += -DCONFIG_CTRL_IFACE_UDP 232CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 233else 234ifeq ($(CONFIG_CTRL_IFACE), udp6-remote) 235CFLAGS += -DCONFIG_CTRL_IFACE_UDP 236CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 237CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 238else 239CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 240endif 241endif 242endif 243endif 244OBJS += ../src/common/ctrl_iface_common.o 245OBJS += ctrl_iface.o 246OBJS += ../src/ap/ctrl_iface_ap.o 247endif 248 249ifndef CONFIG_NO_CTRL_IFACE 250CFLAGS += -DCONFIG_CTRL_IFACE 251endif 252 253ifdef CONFIG_RSN_PREAUTH 254CFLAGS += -DCONFIG_RSN_PREAUTH 255CONFIG_L2_PACKET=y 256endif 257 258ifdef CONFIG_HS20 259CONFIG_PROXYARP=y 260endif 261 262ifdef CONFIG_PROXYARP 263CONFIG_L2_PACKET=y 264endif 265 266ifdef CONFIG_SUITEB 267CFLAGS += -DCONFIG_SUITEB 268endif 269 270ifdef CONFIG_SUITEB192 271CFLAGS += -DCONFIG_SUITEB192 272NEED_SHA384=y 273endif 274 275ifdef CONFIG_OCV 276CFLAGS += -DCONFIG_OCV 277OBJS += ../src/common/ocv.o 278endif 279 280NEED_AES_UNWRAP=y 281 282ifdef CONFIG_IEEE80211R 283CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP 284OBJS += ../src/ap/wpa_auth_ft.o 285NEED_AES_UNWRAP=y 286NEED_AES_SIV=y 287NEED_ETH_P_OUI=y 288NEED_HMAC_SHA256_KDF=y 289endif 290 291ifdef NEED_ETH_P_OUI 292CFLAGS += -DCONFIG_ETH_P_OUI 293OBJS += ../src/ap/eth_p_oui.o 294endif 295 296ifdef CONFIG_SAE 297CFLAGS += -DCONFIG_SAE 298OBJS += ../src/common/sae.o 299ifdef CONFIG_SAE_PK 300CFLAGS += -DCONFIG_SAE_PK 301NEED_AES_SIV=y 302NEED_BASE64=y 303OBJS += ../src/common/sae_pk.o 304endif 305NEED_ECC=y 306NEED_DH_GROUPS=y 307NEED_HMAC_SHA256_KDF=y 308NEED_AP_MLME=y 309NEED_DRAGONFLY=y 310endif 311 312ifdef CONFIG_OWE 313CFLAGS += -DCONFIG_OWE 314NEED_ECC=y 315NEED_HMAC_SHA256_KDF=y 316NEED_HMAC_SHA384_KDF=y 317NEED_HMAC_SHA512_KDF=y 318NEED_SHA384=y 319NEED_SHA512=y 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_NAN_USD 613OBJS += ../src/common/nan_de.o 614OBJS += ../src/ap/nan_usd_ap.o 615CFLAGS += -DCONFIG_NAN_USD 616endif 617 618ifdef CONFIG_PASN 619CFLAGS += -DCONFIG_PASN 620CFLAGS += -DCONFIG_PTKSA_CACHE 621NEED_HMAC_SHA256_KDF=y 622NEED_HMAC_SHA384_KDF=y 623NEED_SHA256=y 624NEED_SHA384=y 625endif 626 627ifdef CONFIG_EAP_IKEV2 628CFLAGS += -DEAP_SERVER_IKEV2 629OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o 630OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 631NEED_DH_GROUPS=y 632NEED_DH_GROUPS_ALL=y 633NEED_MODEXP=y 634NEED_CIPHER=y 635endif 636 637ifdef CONFIG_EAP_TNC 638CFLAGS += -DEAP_SERVER_TNC 639OBJS += ../src/eap_server/eap_server_tnc.o 640OBJS += ../src/eap_server/tncs.o 641NEED_BASE64=y 642ifndef CONFIG_DRIVER_BSD 643LIBS += -ldl 644endif 645endif 646 647ifdef CONFIG_MACSEC 648CFLAGS += -DCONFIG_MACSEC 649OBJS += ../src/ap/wpa_auth_kay.o 650OBJS += ../src/pae/ieee802_1x_cp.o 651OBJS += ../src/pae/ieee802_1x_kay.o 652OBJS += ../src/pae/ieee802_1x_key.o 653OBJS += ../src/pae/ieee802_1x_secy_ops.o 654endif 655 656# Basic EAP functionality is needed for EAPOL 657OBJS += eap_register.o 658OBJS += ../src/eap_server/eap_server.o 659OBJS += ../src/eap_common/eap_common.o 660OBJS += ../src/eap_server/eap_server_methods.o 661OBJS += ../src/eap_server/eap_server_identity.o 662CFLAGS += -DEAP_SERVER_IDENTITY 663 664ifdef CONFIG_EAP 665CFLAGS += -DEAP_SERVER 666endif 667 668ifdef CONFIG_PKCS12 669CFLAGS += -DPKCS12_FUNCS 670endif 671 672ifdef NEED_DRAGONFLY 673OBJS += ../src/common/dragonfly.o 674endif 675 676ifdef MS_FUNCS 677OBJS += ../src/crypto/ms_funcs.o 678NEED_DES=y 679NEED_MD4=y 680endif 681 682ifdef CHAP 683OBJS += ../src/eap_common/chap.o 684endif 685 686ifdef CONFIG_RADIUS_TLS 687TLS_FUNCS=y 688CFLAGS += -DCONFIG_RADIUS_TLS 689endif 690 691ifdef TLS_FUNCS 692NEED_DES=y 693# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 694CFLAGS += -DEAP_TLS_FUNCS 695OBJS += ../src/eap_server/eap_server_tls_common.o 696NEED_TLS_PRF=y 697endif 698 699ifndef CONFIG_TLS 700CONFIG_TLS=openssl 701endif 702 703ifdef CONFIG_TLSV11 704CFLAGS += -DCONFIG_TLSV11 705endif 706 707ifdef CONFIG_TLSV12 708CFLAGS += -DCONFIG_TLSV12 709endif 710 711ifeq ($(CONFIG_TLS), wolfssl) 712CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 713CONFIG_CRYPTO=wolfssl 714ifdef TLS_FUNCS 715OBJS += ../src/crypto/tls_wolfssl.o 716LIBS += -lwolfssl -lm 717endif 718OBJS += ../src/crypto/crypto_wolfssl.o 719HOBJS += ../src/crypto/crypto_wolfssl.o 720ifdef NEED_FIPS186_2_PRF 721OBJS += ../src/crypto/fips_prf_wolfssl.o 722endif 723NEED_TLS_PRF_SHA256=y 724LIBS += -lwolfssl -lm 725LIBS_h += -lwolfssl -lm 726ifdef CONFIG_TLS_ADD_DL 727LIBS += -ldl 728LIBS_h += -ldl 729endif 730endif 731 732ifeq ($(CONFIG_TLS), openssl) 733CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 734CONFIG_CRYPTO=openssl 735ifdef TLS_FUNCS 736OBJS += ../src/crypto/tls_openssl.o 737OBJS += ../src/crypto/tls_openssl_ocsp.o 738LIBS += -lssl 739endif 740OBJS += ../src/crypto/crypto_openssl.o 741HOBJS += ../src/crypto/crypto_openssl.o 742SOBJS += ../src/crypto/crypto_openssl.o 743ifdef NEED_FIPS186_2_PRF 744OBJS += ../src/crypto/fips_prf_openssl.o 745endif 746NEED_TLS_PRF_SHA256=y 747LIBS += -lcrypto 748LIBS_h += -lcrypto 749LIBS_n += -lcrypto 750LIBS_s += -lcrypto 751ifdef CONFIG_TLS_ADD_DL 752LIBS += -ldl 753LIBS_h += -ldl 754LIBS_s += -ldl 755endif 756ifndef CONFIG_TLS_DEFAULT_CIPHERS 757CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 758endif 759CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 760endif 761 762ifeq ($(CONFIG_TLS), gnutls) 763ifndef CONFIG_CRYPTO 764# default to libgcrypt 765CONFIG_CRYPTO=gnutls 766endif 767ifdef TLS_FUNCS 768OBJS += ../src/crypto/tls_gnutls.o 769LIBS += -lgnutls -lgpg-error 770endif 771OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 772HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 773ifdef NEED_FIPS186_2_PRF 774OBJS += ../src/crypto/fips_prf_internal.o 775SHA1OBJS += ../src/crypto/sha1-internal.o 776endif 777ifeq ($(CONFIG_CRYPTO), gnutls) 778LIBS += -lgcrypt 779LIBS_h += -lgcrypt 780LIBS_n += -lgcrypt 781CONFIG_INTERNAL_RC4=y 782CONFIG_INTERNAL_DH_GROUP5=y 783endif 784ifeq ($(CONFIG_CRYPTO), nettle) 785LIBS += -lnettle -lgmp 786LIBS_p += -lnettle -lgmp 787CONFIG_INTERNAL_RC4=y 788CONFIG_INTERNAL_DH_GROUP5=y 789endif 790endif 791 792ifeq ($(CONFIG_TLS), internal) 793ifndef CONFIG_CRYPTO 794CONFIG_CRYPTO=internal 795endif 796ifdef TLS_FUNCS 797OBJS += ../src/crypto/crypto_internal-rsa.o 798OBJS += ../src/crypto/tls_internal.o 799OBJS += ../src/tls/tlsv1_common.o 800OBJS += ../src/tls/tlsv1_record.o 801OBJS += ../src/tls/tlsv1_cred.o 802OBJS += ../src/tls/tlsv1_server.o 803OBJS += ../src/tls/tlsv1_server_write.o 804OBJS += ../src/tls/tlsv1_server_read.o 805OBJS += ../src/tls/rsa.o 806OBJS += ../src/tls/x509v3.o 807OBJS += ../src/tls/pkcs1.o 808OBJS += ../src/tls/pkcs5.o 809OBJS += ../src/tls/pkcs8.o 810NEED_ASN1=y 811NEED_BASE64=y 812NEED_TLS_PRF=y 813ifdef CONFIG_TLSV12 814NEED_TLS_PRF_SHA256=y 815endif 816NEED_MODEXP=y 817NEED_CIPHER=y 818CFLAGS += -DCONFIG_TLS_INTERNAL 819CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 820endif 821ifdef NEED_CIPHER 822NEED_DES=y 823OBJS += ../src/crypto/crypto_internal-cipher.o 824endif 825ifdef NEED_MODEXP 826OBJS += ../src/crypto/crypto_internal-modexp.o 827OBJS += ../src/tls/bignum.o 828endif 829ifeq ($(CONFIG_CRYPTO), libtomcrypt) 830OBJS += ../src/crypto/crypto_libtomcrypt.o 831LIBS += -ltomcrypt -ltfm 832LIBS_h += -ltomcrypt -ltfm 833CONFIG_INTERNAL_SHA256=y 834CONFIG_INTERNAL_RC4=y 835CONFIG_INTERNAL_DH_GROUP5=y 836endif 837ifeq ($(CONFIG_CRYPTO), internal) 838OBJS += ../src/crypto/crypto_internal.o 839NEED_AES_DEC=y 840CFLAGS += -DCONFIG_CRYPTO_INTERNAL 841ifdef CONFIG_INTERNAL_LIBTOMMATH 842CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 843ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 844CFLAGS += -DLTM_FAST 845endif 846else 847LIBS += -ltommath 848LIBS_h += -ltommath 849endif 850CONFIG_INTERNAL_AES=y 851CONFIG_INTERNAL_DES=y 852CONFIG_INTERNAL_SHA1=y 853CONFIG_INTERNAL_MD4=y 854CONFIG_INTERNAL_MD5=y 855CONFIG_INTERNAL_SHA256=y 856CONFIG_INTERNAL_SHA384=y 857CONFIG_INTERNAL_SHA512=y 858CONFIG_INTERNAL_RC4=y 859CONFIG_INTERNAL_DH_GROUP5=y 860endif 861ifeq ($(CONFIG_CRYPTO), cryptoapi) 862OBJS += ../src/crypto/crypto_cryptoapi.o 863OBJS_p += ../src/crypto/crypto_cryptoapi.o 864CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 865CONFIG_INTERNAL_SHA256=y 866CONFIG_INTERNAL_RC4=y 867endif 868endif 869 870ifeq ($(CONFIG_TLS), linux) 871OBJS += ../src/crypto/crypto_linux.o 872ifdef TLS_FUNCS 873OBJS += ../src/crypto/crypto_internal-rsa.o 874OBJS += ../src/crypto/tls_internal.o 875OBJS += ../src/tls/tlsv1_common.o 876OBJS += ../src/tls/tlsv1_record.o 877OBJS += ../src/tls/tlsv1_cred.o 878OBJS += ../src/tls/tlsv1_server.o 879OBJS += ../src/tls/tlsv1_server_write.o 880OBJS += ../src/tls/tlsv1_server_read.o 881OBJS += ../src/tls/rsa.o 882OBJS += ../src/tls/x509v3.o 883OBJS += ../src/tls/pkcs1.o 884OBJS += ../src/tls/pkcs5.o 885OBJS += ../src/tls/pkcs8.o 886NEED_ASN1=y 887NEED_BASE64=y 888NEED_TLS_PRF=y 889ifdef CONFIG_TLSV12 890NEED_TLS_PRF_SHA256=y 891endif 892NEED_MODEXP=y 893NEED_CIPHER=y 894CFLAGS += -DCONFIG_TLS_INTERNAL 895CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 896endif 897ifdef NEED_MODEXP 898OBJS += ../src/crypto/crypto_internal-modexp.o 899OBJS += ../src/tls/bignum.o 900CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 901CFLAGS += -DLTM_FAST 902endif 903CONFIG_INTERNAL_DH_GROUP5=y 904ifdef NEED_FIPS186_2_PRF 905OBJS += ../src/crypto/fips_prf_internal.o 906OBJS += ../src/crypto/sha1-internal.o 907endif 908endif 909 910ifeq ($(CONFIG_TLS), none) 911ifdef TLS_FUNCS 912OBJS += ../src/crypto/tls_none.o 913CFLAGS += -DEAP_TLS_NONE 914CONFIG_INTERNAL_AES=y 915CONFIG_INTERNAL_SHA1=y 916CONFIG_INTERNAL_MD5=y 917endif 918OBJS += ../src/crypto/crypto_none.o 919OBJS_p += ../src/crypto/crypto_none.o 920CONFIG_INTERNAL_SHA256=y 921CONFIG_INTERNAL_RC4=y 922endif 923 924ifndef TLS_FUNCS 925OBJS += ../src/crypto/tls_none.o 926ifeq ($(CONFIG_TLS), internal) 927CONFIG_INTERNAL_AES=y 928CONFIG_INTERNAL_SHA1=y 929CONFIG_INTERNAL_MD5=y 930CONFIG_INTERNAL_RC4=y 931endif 932endif 933 934AESOBJS = # none so far 935ifdef CONFIG_INTERNAL_AES 936AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o 937endif 938 939ifneq ($(CONFIG_TLS), openssl) 940ifneq ($(CONFIG_TLS), wolfssl) 941AESOBJS += ../src/crypto/aes-wrap.o 942endif 943endif 944ifdef NEED_AES_EAX 945AESOBJS += ../src/crypto/aes-eax.o 946NEED_AES_CTR=y 947endif 948ifdef NEED_AES_SIV 949AESOBJS += ../src/crypto/aes-siv.o 950NEED_AES_CTR=y 951endif 952ifdef NEED_AES_CTR 953AESOBJS += ../src/crypto/aes-ctr.o 954endif 955ifdef NEED_AES_ENCBLOCK 956AESOBJS += ../src/crypto/aes-encblock.o 957endif 958ifneq ($(CONFIG_TLS), openssl) 959ifneq ($(CONFIG_TLS), linux) 960ifneq ($(CONFIG_TLS), wolfssl) 961AESOBJS += ../src/crypto/aes-omac1.o 962endif 963endif 964endif 965ifdef NEED_AES_UNWRAP 966ifneq ($(CONFIG_TLS), openssl) 967ifneq ($(CONFIG_TLS), linux) 968ifneq ($(CONFIG_TLS), wolfssl) 969NEED_AES_DEC=y 970AESOBJS += ../src/crypto/aes-unwrap.o 971endif 972endif 973endif 974endif 975ifdef NEED_AES_CBC 976NEED_AES_DEC=y 977ifneq ($(CONFIG_TLS), openssl) 978ifneq ($(CONFIG_TLS), linux) 979ifneq ($(CONFIG_TLS), wolfssl) 980AESOBJS += ../src/crypto/aes-cbc.o 981endif 982endif 983endif 984endif 985ifdef NEED_AES_DEC 986ifdef CONFIG_INTERNAL_AES 987AESOBJS += ../src/crypto/aes-internal-dec.o 988endif 989endif 990ifdef NEED_AES 991OBJS += $(AESOBJS) 992endif 993 994ifdef NEED_SHA1 995ifneq ($(CONFIG_TLS), openssl) 996ifneq ($(CONFIG_TLS), linux) 997ifneq ($(CONFIG_TLS), gnutls) 998ifneq ($(CONFIG_TLS), wolfssl) 999SHA1OBJS += ../src/crypto/sha1.o 1000endif 1001endif 1002endif 1003endif 1004SHA1OBJS += ../src/crypto/sha1-prf.o 1005ifdef CONFIG_INTERNAL_SHA1 1006SHA1OBJS += ../src/crypto/sha1-internal.o 1007ifdef NEED_FIPS186_2_PRF 1008SHA1OBJS += ../src/crypto/fips_prf_internal.o 1009endif 1010endif 1011ifneq ($(CONFIG_TLS), openssl) 1012ifneq ($(CONFIG_TLS), wolfssl) 1013SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1014endif 1015endif 1016ifdef NEED_T_PRF 1017SHA1OBJS += ../src/crypto/sha1-tprf.o 1018endif 1019ifdef NEED_TLS_PRF 1020SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1021endif 1022endif 1023 1024ifdef NEED_SHA1 1025OBJS += $(SHA1OBJS) 1026endif 1027 1028ifneq ($(CONFIG_TLS), openssl) 1029ifneq ($(CONFIG_TLS), linux) 1030ifneq ($(CONFIG_TLS), gnutls) 1031ifneq ($(CONFIG_TLS), wolfssl) 1032OBJS += ../src/crypto/md5.o 1033endif 1034endif 1035endif 1036endif 1037 1038ifdef NEED_MD5 1039ifdef CONFIG_INTERNAL_MD5 1040OBJS += ../src/crypto/md5-internal.o 1041HOBJS += ../src/crypto/md5-internal.o 1042endif 1043endif 1044 1045ifdef NEED_MD4 1046ifdef CONFIG_INTERNAL_MD4 1047OBJS += ../src/crypto/md4-internal.o 1048endif 1049endif 1050 1051ifdef NEED_DES 1052CFLAGS += -DCONFIG_DES 1053ifdef CONFIG_INTERNAL_DES 1054OBJS += ../src/crypto/des-internal.o 1055endif 1056endif 1057 1058ifdef CONFIG_NO_RC4 1059CFLAGS += -DCONFIG_NO_RC4 1060endif 1061 1062ifdef NEED_RC4 1063ifdef CONFIG_INTERNAL_RC4 1064ifndef CONFIG_NO_RC4 1065OBJS += ../src/crypto/rc4.o 1066endif 1067endif 1068endif 1069 1070ifdef CONFIG_SAE 1071ifdef NEED_SHA384 1072# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled. 1073NEED_HMAC_SHA384_KDF=y 1074endif 1075ifdef NEED_SHA512 1076# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled. 1077NEED_HMAC_SHA512_KDF=y 1078endif 1079endif 1080 1081CFLAGS += -DCONFIG_SHA256 1082ifneq ($(CONFIG_TLS), openssl) 1083ifneq ($(CONFIG_TLS), linux) 1084ifneq ($(CONFIG_TLS), gnutls) 1085ifneq ($(CONFIG_TLS), wolfssl) 1086OBJS += ../src/crypto/sha256.o 1087endif 1088endif 1089endif 1090endif 1091OBJS += ../src/crypto/sha256-prf.o 1092ifdef CONFIG_INTERNAL_SHA256 1093OBJS += ../src/crypto/sha256-internal.o 1094endif 1095ifdef NEED_TLS_PRF_SHA256 1096OBJS += ../src/crypto/sha256-tlsprf.o 1097endif 1098ifdef NEED_TLS_PRF_SHA384 1099OBJS += ../src/crypto/sha384-tlsprf.o 1100endif 1101ifdef NEED_HMAC_SHA256_KDF 1102OBJS += ../src/crypto/sha256-kdf.o 1103endif 1104ifdef NEED_HMAC_SHA384_KDF 1105OBJS += ../src/crypto/sha384-kdf.o 1106endif 1107ifdef NEED_HMAC_SHA512_KDF 1108OBJS += ../src/crypto/sha512-kdf.o 1109endif 1110ifdef NEED_SHA384 1111CFLAGS += -DCONFIG_SHA384 1112ifneq ($(CONFIG_TLS), openssl) 1113ifneq ($(CONFIG_TLS), linux) 1114ifneq ($(CONFIG_TLS), gnutls) 1115ifneq ($(CONFIG_TLS), wolfssl) 1116OBJS += ../src/crypto/sha384.o 1117endif 1118endif 1119endif 1120endif 1121OBJS += ../src/crypto/sha384-prf.o 1122endif 1123ifdef NEED_SHA512 1124CFLAGS += -DCONFIG_SHA512 1125ifneq ($(CONFIG_TLS), openssl) 1126ifneq ($(CONFIG_TLS), linux) 1127ifneq ($(CONFIG_TLS), gnutls) 1128ifneq ($(CONFIG_TLS), wolfssl) 1129OBJS += ../src/crypto/sha512.o 1130endif 1131endif 1132endif 1133endif 1134OBJS += ../src/crypto/sha512-prf.o 1135endif 1136 1137ifdef CONFIG_INTERNAL_SHA384 1138CFLAGS += -DCONFIG_INTERNAL_SHA384 1139OBJS += ../src/crypto/sha384-internal.o 1140endif 1141 1142ifdef CONFIG_INTERNAL_SHA512 1143CFLAGS += -DCONFIG_INTERNAL_SHA512 1144OBJS += ../src/crypto/sha512-internal.o 1145endif 1146 1147ifdef NEED_ASN1 1148OBJS += ../src/tls/asn1.o 1149endif 1150 1151ifdef NEED_DH_GROUPS 1152OBJS += ../src/crypto/dh_groups.o 1153endif 1154ifdef NEED_DH_GROUPS_ALL 1155CFLAGS += -DALL_DH_GROUPS 1156endif 1157ifdef CONFIG_INTERNAL_DH_GROUP5 1158ifdef NEED_DH_GROUPS 1159OBJS += ../src/crypto/dh_group5.o 1160endif 1161endif 1162 1163ifdef NEED_ECC 1164CFLAGS += -DCONFIG_ECC 1165endif 1166 1167ifdef CONFIG_NO_RANDOM_POOL 1168CFLAGS += -DCONFIG_NO_RANDOM_POOL 1169else 1170ifdef CONFIG_GETRANDOM 1171CFLAGS += -DCONFIG_GETRANDOM 1172endif 1173OBJS += ../src/crypto/random.o 1174HOBJS += ../src/crypto/random.o 1175HOBJS += ../src/utils/eloop.o 1176HOBJS += $(SHA1OBJS) 1177ifneq ($(CONFIG_TLS), openssl) 1178ifneq ($(CONFIG_TLS), linux) 1179ifneq ($(CONFIG_TLS), wolfssl) 1180HOBJS += ../src/crypto/md5.o 1181endif 1182endif 1183endif 1184endif 1185 1186ifdef CONFIG_RADIUS_SERVER 1187CFLAGS += -DRADIUS_SERVER 1188OBJS += ../src/radius/radius_server.o 1189endif 1190 1191ifdef CONFIG_IPV6 1192CFLAGS += -DCONFIG_IPV6 1193endif 1194 1195ifdef CONFIG_DRIVER_RADIUS_ACL 1196CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1197endif 1198 1199ifdef NEED_BASE64 1200OBJS += ../src/utils/base64.o 1201endif 1202 1203ifdef NEED_JSON 1204OBJS += ../src/utils/json.o 1205CFLAGS += -DCONFIG_JSON 1206endif 1207 1208ifdef NEED_AP_MLME 1209OBJS += ../src/ap/wmm.o 1210OBJS += ../src/ap/ap_list.o 1211OBJS += ../src/ap/comeback_token.o 1212OBJS += ../src/pasn/pasn_responder.o 1213OBJS += ../src/pasn/pasn_common.o 1214OBJS += ../src/ap/ieee802_11.o 1215OBJS += ../src/ap/hw_features.o 1216OBJS += ../src/ap/dfs.o 1217CFLAGS += -DNEED_AP_MLME 1218endif 1219OBJS += ../src/ap/ieee802_11_ht.o 1220 1221ifdef CONFIG_IEEE80211AC 1222OBJS += ../src/ap/ieee802_11_vht.o 1223endif 1224 1225ifdef CONFIG_P2P_MANAGER 1226CFLAGS += -DCONFIG_P2P_MANAGER 1227OBJS += ../src/ap/p2p_hostapd.o 1228endif 1229 1230ifdef CONFIG_HS20 1231CFLAGS += -DCONFIG_HS20 1232OBJS += ../src/ap/hs20.o 1233CONFIG_INTERWORKING=y 1234endif 1235 1236ifdef CONFIG_INTERWORKING 1237CFLAGS += -DCONFIG_INTERWORKING 1238NEED_GAS=y 1239endif 1240 1241ifdef NEED_GAS 1242OBJS += ../src/common/gas.o 1243OBJS += ../src/ap/gas_serv.o 1244endif 1245 1246ifdef CONFIG_PROXYARP 1247CFLAGS += -DCONFIG_PROXYARP 1248OBJS += ../src/ap/x_snoop.o 1249OBJS += ../src/ap/dhcp_snoop.o 1250ifdef CONFIG_IPV6 1251OBJS += ../src/ap/ndisc_snoop.o 1252endif 1253endif 1254 1255OBJS += ../src/drivers/driver_common.o 1256 1257ifdef CONFIG_WPA_CLI_EDIT 1258OBJS_c += ../src/utils/edit.o 1259else 1260OBJS_c += ../src/utils/edit_simple.o 1261endif 1262 1263ifdef CONFIG_ACS 1264CFLAGS += -DCONFIG_ACS 1265OBJS += ../src/ap/acs.o 1266LIBS += -lm 1267endif 1268 1269ifdef CONFIG_NO_STDOUT_DEBUG 1270CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1271endif 1272 1273ifdef CONFIG_DEBUG_SYSLOG 1274CFLAGS += -DCONFIG_DEBUG_SYSLOG 1275endif 1276 1277ifdef CONFIG_DEBUG_LINUX_TRACING 1278CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1279endif 1280 1281ifdef CONFIG_DEBUG_FILE 1282CFLAGS += -DCONFIG_DEBUG_FILE 1283endif 1284 1285ifdef CONFIG_SQLITE 1286CFLAGS += -DCONFIG_SQLITE 1287LIBS += -lsqlite3 1288LIBS_h += -lsqlite3 1289endif 1290 1291ifdef CONFIG_FST 1292CFLAGS += -DCONFIG_FST 1293OBJS += ../src/fst/fst.o 1294OBJS += ../src/fst/fst_group.o 1295OBJS += ../src/fst/fst_iface.o 1296OBJS += ../src/fst/fst_session.o 1297OBJS += ../src/fst/fst_ctrl_aux.o 1298ifdef CONFIG_FST_TEST 1299CFLAGS += -DCONFIG_FST_TEST 1300endif 1301ifndef CONFIG_NO_CTRL_IFACE 1302OBJS += ../src/fst/fst_ctrl_iface.o 1303endif 1304endif 1305 1306ifdef CONFIG_WEP 1307CFLAGS += -DCONFIG_WEP 1308endif 1309 1310ifdef CONFIG_NO_TKIP 1311CFLAGS += -DCONFIG_NO_TKIP 1312endif 1313 1314$(DESTDIR)$(BINDIR)/%: % 1315 install -D $(<) $(@) 1316 1317install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL)) 1318 1319_OBJS_VAR := OBJS 1320include ../src/objs.mk 1321 1322hostapd: $(OBJS) 1323 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) 1324 @$(E) " LD " $@ 1325 1326ifdef CONFIG_WPA_TRACE 1327OBJS_c += ../src/utils/trace.o 1328endif 1329 1330_OBJS_VAR := OBJS_c 1331include ../src/objs.mk 1332 1333hostapd_cli: $(OBJS_c) 1334 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c) 1335 @$(E) " LD " $@ 1336 1337NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) 1338NOBJS += ../src/utils/common.o 1339ifdef NEED_RC4 1340ifdef CONFIG_INTERNAL_RC4 1341ifndef CONFIG_NO_RC4 1342NOBJS += ../src/crypto/rc4.o 1343endif 1344endif 1345endif 1346ifdef CONFIG_INTERNAL_MD5 1347NOBJS += ../src/crypto/md5-internal.o 1348endif 1349NOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1350NOBJS += ../src/utils/os_$(CONFIG_OS).o 1351NOBJS += ../src/utils/wpa_debug.o 1352NOBJS += ../src/utils/wpabuf.o 1353ifdef CONFIG_WPA_TRACE 1354NOBJS += ../src/utils/trace.o 1355endif 1356 1357HOBJS += 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 1358HOBJS += ../src/crypto/aes-encblock.o 1359ifdef CONFIG_INTERNAL_AES 1360HOBJS += ../src/crypto/aes-internal.o 1361HOBJS += ../src/crypto/aes-internal-enc.o 1362endif 1363ifeq ($(CONFIG_TLS), linux) 1364HOBJS += ../src/crypto/crypto_linux.o 1365endif 1366 1367SOBJS += sae_pk_gen.o 1368SOBJS += ../src/utils/common.o 1369SOBJS += ../src/utils/os_$(CONFIG_OS).o 1370SOBJS += ../src/utils/base64.o 1371SOBJS += ../src/utils/wpa_debug.o 1372SOBJS += ../src/utils/wpabuf.o 1373ifdef CONFIG_WPA_TRACE 1374SOBJS += ../src/utils/trace.o 1375endif 1376SOBJS += ../src/common/ieee802_11_common.o 1377SOBJS += ../src/common/sae.o 1378SOBJS += ../src/common/sae_pk.o 1379SOBJS += ../src/common/dragonfly.o 1380SOBJS += $(AESOBJS) 1381SOBJS += ../src/crypto/sha384.o 1382SOBJS += ../src/crypto/sha512.o 1383SOBJS += ../src/crypto/sha256-prf.o 1384SOBJS += ../src/crypto/sha384-prf.o 1385SOBJS += ../src/crypto/sha512-prf.o 1386SOBJS += ../src/crypto/dh_groups.o 1387SOBJS += ../src/crypto/sha256-kdf.o 1388SOBJS += ../src/crypto/sha384-kdf.o 1389SOBJS += ../src/crypto/sha512-kdf.o 1390SOBJS += ../src/common/wpa_common.o 1391SOBJS += ../src/crypto/random.o 1392SOBJS += ../src/crypto/sha1-prf.o 1393SOBJS += ../src/utils/eloop.o 1394 1395_OBJS_VAR := NOBJS 1396include ../src/objs.mk 1397_OBJS_VAR := HOBJS 1398include ../src/objs.mk 1399_OBJS_VAR := SOBJS 1400include ../src/objs.mk 1401 1402nt_password_hash: $(NOBJS) 1403 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n) 1404 @$(E) " LD " $@ 1405 1406hlr_auc_gw: $(HOBJS) 1407 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h) 1408 @$(E) " LD " $@ 1409 1410sae_pk_gen: $(SOBJS) 1411 $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s) 1412 @$(E) " LD " $@ 1413 1414.PHONY: lcov-html 1415lcov-html: 1416 lcov -c -d $(BUILDDIR) > lcov.info 1417 genhtml lcov.info --output-directory lcov-html 1418 1419clean: common-clean 1420 rm -f core *~ nt_password_hash hlr_auc_gw 1421 rm -f sae_pk_gen 1422 rm -f lcov.info 1423 rm -rf lcov-html 1424