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