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