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