1# 2# Copyright (C) 2008 The Android Open Source Project 3# 4# This software may be distributed under the terms of the BSD license. 5# See README for more details. 6# 7 8LOCAL_PATH := $(call my-dir) 9PKG_CONFIG ?= pkg-config 10 11$(eval $(call declare-copy-files-license-metadata,external/wpa_supplicant_8/wpa_supplicant,.conf,SPDX-license-identifier-BSD-3-Clause,notice,external/wpa_supplicant_8/LICENSE,)) 12 13ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),) 14 CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y 15endif 16 17ifeq ($(BOARD_WLAN_DEVICE), qcwcn) 18 CONFIG_DRIVER_NL80211_QCA=y 19endif 20 21include $(LOCAL_PATH)/android.config 22 23# To ignore possible wrong network configurations 24L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS 25 26L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\" 27 28# Set Android log name 29L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\" 30 31L_CFLAGS += -Wall -Werror 32 33# Keep sometimes uninitialized warnings 34L_CFLAGS += -Wno-error=sometimes-uninitialized 35 36# Disable incompatible pointer type warnings 37L_CFLAGS += -Wno-incompatible-pointer-types 38L_CFLAGS += -Wno-incompatible-pointer-types-discards-qualifiers 39 40# Disable extraneous parentheses warnings 41L_CFLAGS += -Wno-parentheses-equality 42 43# Disable sign compare warnings 44L_CFLAGS += -Wno-sign-compare 45 46# Disable unused function warnings 47L_CFLAGS += -Wno-unused-function 48 49# Disable unused variable warnings 50L_CFLAGS += -Wno-unused-variable 51 52# Disable unused parameter warnings 53L_CFLAGS += -Wno-unused-parameter 54 55# Disable redefined macro warnings 56L_CFLAGS += -Wno-macro-redefined 57 58# Set Android extended P2P functionality 59L_CFLAGS += -DANDROID_P2P 60 61ifeq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),) 62L_CFLAGS += -DANDROID_LIB_STUB 63endif 64 65ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB_EVENT),) 66L_CFLAGS += -DANDROID_LIB_EVENT 67endif 68 69# Disable roaming in wpa_supplicant 70ifdef CONFIG_NO_ROAMING 71L_CFLAGS += -DCONFIG_NO_ROAMING 72endif 73 74ifeq ($(WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS), enabled) 75L_CFLAGS += -DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS 76endif 77 78# Use Android specific directory for control interface sockets 79L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\" 80L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\" 81 82# Use Android specific directory for wpa_cli command completion history 83L_CFLAGS += -DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\" 84 85# To force sizeof(enum) = 4 86ifeq ($(TARGET_ARCH),arm) 87L_CFLAGS += -mabi=aapcs-linux 88endif 89 90# C++ flags for aidl interface 91L_CPPFLAGS := -Wall -Werror 92# TODO: Remove these allowed warnings later. 93L_CPPFLAGS += -Wno-unused-variable -Wno-unused-parameter 94L_CPPFLAGS += -Wno-unused-private-field 95 96INCLUDES = $(LOCAL_PATH) 97INCLUDES += $(LOCAL_PATH)/src 98INCLUDES += $(LOCAL_PATH)/src/common 99# INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes 100INCLUDES += $(LOCAL_PATH)/src/drivers 101INCLUDES += $(LOCAL_PATH)/src/eap_common 102INCLUDES += $(LOCAL_PATH)/src/eapol_supp 103INCLUDES += $(LOCAL_PATH)/src/eap_peer 104INCLUDES += $(LOCAL_PATH)/src/eap_server 105INCLUDES += $(LOCAL_PATH)/src/l2_packet 106INCLUDES += $(LOCAL_PATH)/src/radius 107INCLUDES += $(LOCAL_PATH)/src/rsn_supp 108INCLUDES += $(LOCAL_PATH)/src/tls 109INCLUDES += $(LOCAL_PATH)/src/utils 110INCLUDES += $(LOCAL_PATH)/src/wps 111INCLUDES += $(LOCAL_PATH)/src/pasn 112INCLUDES += system/security/keystore/include 113ifdef CONFIG_DRIVER_NL80211 114ifneq ($(wildcard external/libnl),) 115INCLUDES += external/libnl/include 116else 117INCLUDES += external/libnl-headers 118endif 119endif 120 121ifdef CONFIG_FIPS 122CONFIG_NO_RANDOM_POOL= 123endif 124 125OBJS = config.c 126OBJS += notify.c 127OBJS += bss.c 128OBJS += eap_register.c 129OBJS += src/utils/common.c 130OBJS += src/utils/config.c 131OBJS += src/utils/wpa_debug.c 132OBJS += src/utils/wpabuf.c 133OBJS += src/utils/bitfield.c 134OBJS += src/utils/ip_addr.c 135OBJS += src/utils/crc32.c 136OBJS += wmm_ac.c 137OBJS += op_classes.c 138OBJS += rrm.c 139OBJS += twt.c 140OBJS += robust_av.c 141OBJS_p = wpa_passphrase.c 142OBJS_p += src/utils/common.c 143OBJS_p += src/utils/wpa_debug.c 144OBJS_p += src/utils/wpabuf.c 145OBJS_c = wpa_cli.c src/common/wpa_ctrl.c 146OBJS_c += src/utils/wpa_debug.c 147OBJS_c += src/utils/common.c 148OBJS_c += src/common/cli.c 149OBJS_d = 150OBJS_priv = 151 152ifndef CONFIG_OS 153ifdef CONFIG_NATIVE_WINDOWS 154CONFIG_OS=win32 155else 156CONFIG_OS=unix 157endif 158endif 159 160ifeq ($(CONFIG_OS), internal) 161L_CFLAGS += -DOS_NO_C_LIB_DEFINES 162endif 163 164OBJS += src/utils/os_$(CONFIG_OS).c 165OBJS_p += src/utils/os_$(CONFIG_OS).c 166OBJS_c += src/utils/os_$(CONFIG_OS).c 167 168ifdef CONFIG_WPA_TRACE 169L_CFLAGS += -DWPA_TRACE 170OBJS += src/utils/trace.c 171OBJS_p += src/utils/trace.c 172OBJS_c += src/utils/trace.c 173LDFLAGS += -rdynamic 174L_CFLAGS += -funwind-tables 175ifdef CONFIG_WPA_TRACE_BFD 176L_CFLAGS += -DWPA_TRACE_BFD 177LIBS += -lbfd 178LIBS_p += -lbfd 179LIBS_c += -lbfd 180endif 181endif 182 183ifndef CONFIG_ELOOP 184CONFIG_ELOOP=eloop 185endif 186OBJS += src/utils/$(CONFIG_ELOOP).c 187OBJS_c += src/utils/$(CONFIG_ELOOP).c 188 189ifdef CONFIG_ELOOP_POLL 190L_CFLAGS += -DCONFIG_ELOOP_POLL 191endif 192 193ifdef CONFIG_ELOOP_EPOLL 194L_CFLAGS += -DCONFIG_ELOOP_EPOLL 195endif 196 197ifdef CONFIG_EAPOL_TEST 198L_CFLAGS += -Werror -DEAPOL_TEST 199endif 200 201ifdef CONFIG_HT_OVERRIDES 202L_CFLAGS += -DCONFIG_HT_OVERRIDES 203endif 204 205ifdef CONFIG_VHT_OVERRIDES 206L_CFLAGS += -DCONFIG_VHT_OVERRIDES 207endif 208 209ifdef CONFIG_HE_OVERRIDES 210L_CFLAGS += -DCONFIG_HE_OVERRIDES 211endif 212 213ifndef CONFIG_BACKEND 214CONFIG_BACKEND=file 215endif 216 217ifeq ($(CONFIG_BACKEND), file) 218OBJS += config_file.c 219ifndef CONFIG_NO_CONFIG_BLOBS 220NEED_BASE64=y 221endif 222L_CFLAGS += -DCONFIG_BACKEND_FILE 223endif 224 225ifeq ($(CONFIG_BACKEND), winreg) 226OBJS += config_winreg.c 227endif 228 229ifeq ($(CONFIG_BACKEND), none) 230OBJS += config_none.c 231endif 232 233ifdef CONFIG_NO_CONFIG_WRITE 234L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE 235endif 236 237ifdef CONFIG_NO_CONFIG_BLOBS 238L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 239endif 240 241ifdef CONFIG_NO_SCAN_PROCESSING 242L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 243endif 244 245ifdef CONFIG_SUITEB 246L_CFLAGS += -DCONFIG_SUITEB 247endif 248 249ifdef CONFIG_SUITEB192 250L_CFLAGS += -DCONFIG_SUITEB192 251NEED_SHA384=y 252endif 253 254ifdef CONFIG_OCV 255L_CFLAGS += -DCONFIG_OCV 256OBJS += src/common/ocv.c 257endif 258 259ifdef CONFIG_IEEE80211R 260L_CFLAGS += -DCONFIG_IEEE80211R 261OBJS += src/rsn_supp/wpa_ft.c 262endif 263 264ifdef CONFIG_MESH 265NEED_80211_COMMON=y 266NEED_AES_SIV=y 267CONFIG_SAE=y 268CONFIG_AP=y 269L_CFLAGS += -DCONFIG_MESH 270OBJS += mesh.c 271OBJS += mesh_mpm.c 272OBJS += mesh_rsn.c 273endif 274 275ifdef CONFIG_SAE 276L_CFLAGS += -DCONFIG_SAE 277OBJS += src/common/sae.c 278ifdef CONFIG_SAE_PK 279L_CFLAGS += -DCONFIG_SAE_PK 280NEED_AES_SIV=y 281OBJS += src/common/sae_pk.c 282endif 283NEED_ECC=y 284NEED_DH_GROUPS=y 285NEED_HMAC_SHA256_KDF=y 286NEED_DRAGONFLY=y 287ifdef CONFIG_TESTING_OPTIONS 288NEED_DH_GROUPS_ALL=y 289endif 290endif 291 292ifdef CONFIG_DPP 293L_CFLAGS += -DCONFIG_DPP 294OBJS += src/common/dpp.c 295OBJS += src/common/dpp_auth.c 296OBJS += src/common/dpp_backup.c 297OBJS += src/common/dpp_crypto.c 298OBJS += src/common/dpp_pkex.c 299OBJS += src/common/dpp_reconfig.c 300OBJS += src/common/dpp_tcp.c 301OBJS += dpp_supplicant.c 302NEED_AES_SIV=y 303NEED_HMAC_SHA256_KDF=y 304NEED_HMAC_SHA384_KDF=y 305NEED_HMAC_SHA512_KDF=y 306NEED_SHA384=y 307NEED_SHA512=y 308NEED_ECC=y 309NEED_JSON=y 310NEED_GAS_SERVER=y 311NEED_BASE64=y 312NEED_ASN1=y 313ifdef CONFIG_DPP2 314L_CFLAGS += -DCONFIG_DPP2 315endif 316ifdef CONFIG_DPP3 317L_CFLAGS += -DCONFIG_DPP3 318endif 319endif 320 321ifdef CONFIG_OWE 322L_CFLAGS += -DCONFIG_OWE 323NEED_ECC=y 324NEED_HMAC_SHA256_KDF=y 325NEED_HMAC_SHA384_KDF=y 326NEED_HMAC_SHA512_KDF=y 327NEED_SHA384=y 328NEED_SHA512=y 329endif 330 331ifdef CONFIG_WAPI_INTERFACE 332L_CFLAGS += -DCONFIG_WAPI_INTERFACE 333endif 334 335ifdef CONFIG_FILS 336L_CFLAGS += -DCONFIG_FILS 337NEED_SHA384=y 338NEED_AES_SIV=y 339ifdef CONFIG_FILS_SK_PFS 340L_CFLAGS += -DCONFIG_FILS_SK_PFS 341NEED_ECC=y 342endif 343endif 344 345ifdef CONFIG_MBO 346CONFIG_WNM=y 347endif 348 349ifdef CONFIG_WNM 350L_CFLAGS += -DCONFIG_WNM 351OBJS += wnm_sta.c 352endif 353 354ifdef CONFIG_TDLS 355L_CFLAGS += -DCONFIG_TDLS 356OBJS += src/rsn_supp/tdls.c 357endif 358 359ifdef CONFIG_TDLS_TESTING 360L_CFLAGS += -DCONFIG_TDLS_TESTING 361endif 362 363ifdef CONFIG_PMKSA_CACHE_EXTERNAL 364L_CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL 365endif 366 367ifndef CONFIG_NO_WPA 368OBJS += src/rsn_supp/wpa.c 369OBJS += src/rsn_supp/preauth.c 370OBJS += src/rsn_supp/pmksa_cache.c 371OBJS += src/rsn_supp/wpa_ie.c 372OBJS += src/common/wpa_common.c 373NEED_AES=y 374NEED_SHA1=y 375NEED_MD5=y 376NEED_RC4=y 377else 378L_CFLAGS += -DCONFIG_NO_WPA 379endif 380 381ifdef CONFIG_IBSS_RSN 382NEED_RSN_AUTHENTICATOR=y 383L_CFLAGS += -DCONFIG_IBSS_RSN 384L_CFLAGS += -DCONFIG_NO_VLAN 385OBJS += ibss_rsn.c 386endif 387 388ifdef CONFIG_P2P 389OBJS += p2p_supplicant.c 390OBJS += p2p_supplicant_sd.c 391OBJS += src/p2p/p2p.c 392OBJS += src/p2p/p2p_utils.c 393OBJS += src/p2p/p2p_parse.c 394OBJS += src/p2p/p2p_build.c 395OBJS += src/p2p/p2p_go_neg.c 396OBJS += src/p2p/p2p_sd.c 397OBJS += src/p2p/p2p_pd.c 398OBJS += src/p2p/p2p_invitation.c 399OBJS += src/p2p/p2p_dev_disc.c 400OBJS += src/p2p/p2p_group.c 401OBJS += src/ap/p2p_hostapd.c 402L_CFLAGS += -DCONFIG_P2P 403NEED_GAS=y 404NEED_OFFCHANNEL=y 405CONFIG_WPS=y 406CONFIG_AP=y 407ifdef CONFIG_P2P_STRICT 408L_CFLAGS += -DCONFIG_P2P_STRICT 409endif 410ifdef CONFIG_WIFI_DISPLAY 411L_CFLAGS += -DCONFIG_WIFI_DISPLAY 412OBJS += wifi_display.c 413endif 414endif 415 416ifdef CONFIG_PASN 417L_CFLAGS += -DCONFIG_PASN 418L_CFLAGS += -DCONFIG_PTKSA_CACHE 419NEED_HMAC_SHA256_KDF=y 420NEED_HMAC_SHA384_KDF=y 421NEED_SHA256=y 422NEED_SHA384=y 423OBJS += src/common/ptksa_cache.c 424OBJS += src/pasn/pasn_initiator.c 425OBJS += pasn_supplicant.c 426endif 427 428ifdef CONFIG_HS20 429OBJS += hs20_supplicant.c 430L_CFLAGS += -DCONFIG_HS20 431CONFIG_INTERWORKING=y 432endif 433 434ifdef CONFIG_INTERWORKING 435OBJS += interworking.c 436L_CFLAGS += -DCONFIG_INTERWORKING 437NEED_GAS=y 438endif 439 440ifdef CONFIG_FST 441L_CFLAGS += -DCONFIG_FST 442OBJS += src/fst/fst.c 443OBJS += src/fst/fst_session.c 444OBJS += src/fst/fst_iface.c 445OBJS += src/fst/fst_group.c 446OBJS += src/fst/fst_ctrl_aux.c 447ifdef CONFIG_FST_TEST 448L_CFLAGS += -DCONFIG_FST_TEST 449endif 450ifdef CONFIG_CTRL_IFACE 451OBJS += src/fst/fst_ctrl_iface.c 452endif 453endif 454 455ifdef CONFIG_WEP 456L_CFLAGS += -DCONFIG_WEP 457endif 458 459ifdef CONFIG_NO_TKIP 460L_CFLAGS += -DCONFIG_NO_TKIP 461endif 462 463 464include $(LOCAL_PATH)/src/drivers/drivers.mk 465 466ifdef CONFIG_AP 467OBJS_d += $(DRV_BOTH_OBJS) 468L_CFLAGS += $(DRV_BOTH_CFLAGS) 469LDFLAGS += $(DRV_BOTH_LDFLAGS) 470LIBS += $(DRV_BOTH_LIBS) 471else 472NEED_AP_MLME= 473OBJS_d += $(DRV_WPA_OBJS) 474L_CFLAGS += $(DRV_WPA_CFLAGS) 475LDFLAGS += $(DRV_WPA_LDFLAGS) 476LIBS += $(DRV_WPA_LIBS) 477endif 478 479ifndef CONFIG_L2_PACKET 480CONFIG_L2_PACKET=linux 481endif 482 483OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c 484 485ifeq ($(CONFIG_L2_PACKET), pcap) 486ifdef CONFIG_WINPCAP 487L_CFLAGS += -DCONFIG_WINPCAP 488LIBS += -lwpcap -lpacket 489LIBS_w += -lwpcap 490else 491LIBS += -ldnet -lpcap 492endif 493endif 494 495ifeq ($(CONFIG_L2_PACKET), winpcap) 496LIBS += -lwpcap -lpacket 497LIBS_w += -lwpcap 498endif 499 500ifeq ($(CONFIG_L2_PACKET), freebsd) 501LIBS += -lpcap 502endif 503 504ifdef CONFIG_ERP 505L_CFLAGS += -DCONFIG_ERP 506NEED_HMAC_SHA256_KDF=y 507endif 508 509ifdef CONFIG_EAP_TLS 510# EAP-TLS 511ifeq ($(CONFIG_EAP_TLS), dyn) 512L_CFLAGS += -DEAP_TLS_DYNAMIC 513EAPDYN += src/eap_peer/eap_tls.so 514else 515L_CFLAGS += -DEAP_TLS 516OBJS += src/eap_peer/eap_tls.c 517endif 518TLS_FUNCS=y 519CONFIG_IEEE8021X_EAPOL=y 520ifdef CONFIG_EAP_TLSV1_3 521L_CFLAGS += -DEAP_TLSV1_3 522endif 523endif 524 525ifdef CONFIG_EAP_UNAUTH_TLS 526# EAP-UNAUTH-TLS 527L_CFLAGS += -DEAP_UNAUTH_TLS 528ifndef CONFIG_EAP_TLS 529OBJS += src/eap_peer/eap_tls.c 530TLS_FUNCS=y 531endif 532CONFIG_IEEE8021X_EAPOL=y 533endif 534 535ifdef CONFIG_EAP_PEAP 536# EAP-PEAP 537ifeq ($(CONFIG_EAP_PEAP), dyn) 538L_CFLAGS += -DEAP_PEAP_DYNAMIC 539EAPDYN += src/eap_peer/eap_peap.so 540else 541L_CFLAGS += -DEAP_PEAP 542OBJS += src/eap_peer/eap_peap.c 543OBJS += src/eap_common/eap_peap_common.c 544endif 545TLS_FUNCS=y 546CONFIG_IEEE8021X_EAPOL=y 547endif 548 549ifdef CONFIG_EAP_TTLS 550# EAP-TTLS 551ifeq ($(CONFIG_EAP_TTLS), dyn) 552L_CFLAGS += -DEAP_TTLS_DYNAMIC 553EAPDYN += src/eap_peer/eap_ttls.so 554else 555L_CFLAGS += -DEAP_TTLS 556OBJS += src/eap_peer/eap_ttls.c 557endif 558TLS_FUNCS=y 559ifndef CONFIG_FIPS 560MS_FUNCS=y 561CHAP=y 562endif 563CONFIG_IEEE8021X_EAPOL=y 564endif 565 566ifdef CONFIG_EAP_MD5 567# EAP-MD5 568ifeq ($(CONFIG_EAP_MD5), dyn) 569L_CFLAGS += -DEAP_MD5_DYNAMIC 570EAPDYN += src/eap_peer/eap_md5.so 571else 572L_CFLAGS += -DEAP_MD5 573OBJS += src/eap_peer/eap_md5.c 574endif 575CHAP=y 576CONFIG_IEEE8021X_EAPOL=y 577endif 578 579# backwards compatibility for old spelling 580ifdef CONFIG_MSCHAPV2 581ifndef CONFIG_EAP_MSCHAPV2 582CONFIG_EAP_MSCHAPV2=y 583endif 584endif 585 586ifdef CONFIG_EAP_MSCHAPV2 587# EAP-MSCHAPv2 588ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 589L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 590EAPDYN += src/eap_peer/eap_mschapv2.so 591EAPDYN += src/eap_peer/mschapv2.so 592else 593L_CFLAGS += -DEAP_MSCHAPv2 594OBJS += src/eap_peer/eap_mschapv2.c 595OBJS += src/eap_peer/mschapv2.c 596endif 597MS_FUNCS=y 598CONFIG_IEEE8021X_EAPOL=y 599endif 600 601ifdef CONFIG_EAP_GTC 602# EAP-GTC 603ifeq ($(CONFIG_EAP_GTC), dyn) 604L_CFLAGS += -DEAP_GTC_DYNAMIC 605EAPDYN += src/eap_peer/eap_gtc.so 606else 607L_CFLAGS += -DEAP_GTC 608OBJS += src/eap_peer/eap_gtc.c 609endif 610CONFIG_IEEE8021X_EAPOL=y 611endif 612 613ifdef CONFIG_EAP_OTP 614# EAP-OTP 615ifeq ($(CONFIG_EAP_OTP), dyn) 616L_CFLAGS += -DEAP_OTP_DYNAMIC 617EAPDYN += src/eap_peer/eap_otp.so 618else 619L_CFLAGS += -DEAP_OTP 620OBJS += src/eap_peer/eap_otp.c 621endif 622CONFIG_IEEE8021X_EAPOL=y 623endif 624 625ifdef CONFIG_EAP_SIM 626# EAP-SIM 627ifeq ($(CONFIG_EAP_SIM), dyn) 628L_CFLAGS += -DEAP_SIM_DYNAMIC 629EAPDYN += src/eap_peer/eap_sim.so 630else 631L_CFLAGS += -DEAP_SIM 632OBJS += src/eap_peer/eap_sim.c 633endif 634CONFIG_IEEE8021X_EAPOL=y 635CONFIG_EAP_SIM_COMMON=y 636NEED_AES_CBC=y 637endif 638 639ifdef CONFIG_EAP_LEAP 640# EAP-LEAP 641ifeq ($(CONFIG_EAP_LEAP), dyn) 642L_CFLAGS += -DEAP_LEAP_DYNAMIC 643EAPDYN += src/eap_peer/eap_leap.so 644else 645L_CFLAGS += -DEAP_LEAP 646OBJS += src/eap_peer/eap_leap.c 647endif 648MS_FUNCS=y 649CONFIG_IEEE8021X_EAPOL=y 650endif 651 652ifdef CONFIG_EAP_PSK 653# EAP-PSK 654ifeq ($(CONFIG_EAP_PSK), dyn) 655L_CFLAGS += -DEAP_PSK_DYNAMIC 656EAPDYN += src/eap_peer/eap_psk.so 657else 658L_CFLAGS += -DEAP_PSK 659OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c 660endif 661CONFIG_IEEE8021X_EAPOL=y 662NEED_AES=y 663NEED_AES_ENCBLOCK=y 664NEED_AES_EAX=y 665endif 666 667ifdef CONFIG_EAP_AKA 668# EAP-AKA 669ifeq ($(CONFIG_EAP_AKA), dyn) 670L_CFLAGS += -DEAP_AKA_DYNAMIC 671EAPDYN += src/eap_peer/eap_aka.so 672else 673L_CFLAGS += -DEAP_AKA 674OBJS += src/eap_peer/eap_aka.c 675endif 676CONFIG_IEEE8021X_EAPOL=y 677CONFIG_EAP_SIM_COMMON=y 678NEED_AES_CBC=y 679endif 680 681ifdef CONFIG_EAP_PROXY 682L_CFLAGS += -DCONFIG_EAP_PROXY 683OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c 684include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk 685CONFIG_IEEE8021X_EAPOL=y 686endif 687 688ifdef CONFIG_EAP_AKA_PRIME 689# EAP-AKA' 690ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 691L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 692else 693L_CFLAGS += -DEAP_AKA_PRIME 694endif 695endif 696 697ifdef CONFIG_EAP_SIM_COMMON 698OBJS += src/eap_common/eap_sim_common.c 699NEED_AES=y 700NEED_FIPS186_2_PRF=y 701endif 702 703ifdef CONFIG_EAP_FAST 704# EAP-FAST 705ifeq ($(CONFIG_EAP_FAST), dyn) 706L_CFLAGS += -DEAP_FAST_DYNAMIC 707EAPDYN += src/eap_peer/eap_fast.so 708EAPDYN += src/eap_common/eap_fast_common.c 709else 710L_CFLAGS += -DEAP_FAST 711OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c 712OBJS += src/eap_common/eap_fast_common.c 713endif 714TLS_FUNCS=y 715CONFIG_IEEE8021X_EAPOL=y 716NEED_T_PRF=y 717endif 718 719ifdef CONFIG_EAP_TEAP 720# EAP-TEAP 721ifeq ($(CONFIG_EAP_TEAP), dyn) 722L_CFLAGS += -DEAP_YEAP_DYNAMIC 723EAPDYN += src/eap_peer/eap_teap.so 724EAPDYN += src/eap_common/eap_teap_common.c 725else 726L_CFLAGS += -DEAP_TEAP 727OBJS += src/eap_peer/eap_teap.c src/eap_peer/eap_teap_pac.c 728OBJS += src/eap_common/eap_teap_common.c 729endif 730TLS_FUNCS=y 731CONFIG_IEEE8021X_EAPOL=y 732NEED_T_PRF=y 733NEED_SHA384=y 734NEED_TLS_PRF_SHA256=y 735NEED_TLS_PRF_SHA384=y 736endif 737 738ifdef CONFIG_EAP_PAX 739# EAP-PAX 740ifeq ($(CONFIG_EAP_PAX), dyn) 741L_CFLAGS += -DEAP_PAX_DYNAMIC 742EAPDYN += src/eap_peer/eap_pax.so 743else 744L_CFLAGS += -DEAP_PAX 745OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c 746endif 747CONFIG_IEEE8021X_EAPOL=y 748endif 749 750ifdef CONFIG_EAP_SAKE 751# EAP-SAKE 752ifeq ($(CONFIG_EAP_SAKE), dyn) 753L_CFLAGS += -DEAP_SAKE_DYNAMIC 754EAPDYN += src/eap_peer/eap_sake.so 755else 756L_CFLAGS += -DEAP_SAKE 757OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c 758endif 759CONFIG_IEEE8021X_EAPOL=y 760endif 761 762ifdef CONFIG_EAP_GPSK 763# EAP-GPSK 764ifeq ($(CONFIG_EAP_GPSK), dyn) 765L_CFLAGS += -DEAP_GPSK_DYNAMIC 766EAPDYN += src/eap_peer/eap_gpsk.so 767else 768L_CFLAGS += -DEAP_GPSK 769OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c 770endif 771CONFIG_IEEE8021X_EAPOL=y 772ifdef CONFIG_EAP_GPSK_SHA256 773L_CFLAGS += -DEAP_GPSK_SHA256 774endif 775endif 776 777ifdef CONFIG_EAP_PWD 778L_CFLAGS += -DEAP_PWD 779OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c 780CONFIG_IEEE8021X_EAPOL=y 781NEED_ECC=y 782NEED_DRAGONFLY=y 783MS_FUNCS=y 784endif 785 786ifdef CONFIG_EAP_EKE 787# EAP-EKE 788ifeq ($(CONFIG_EAP_EKE), dyn) 789L_CFLAGS += -DEAP_EKE_DYNAMIC 790EAPDYN += src/eap_peer/eap_eke.so 791else 792L_CFLAGS += -DEAP_EKE 793OBJS += src/eap_peer/eap_eke.c src/eap_common/eap_eke_common.c 794endif 795CONFIG_IEEE8021X_EAPOL=y 796NEED_DH_GROUPS=y 797NEED_DH_GROUPS_ALL=y 798NEED_AES_CBC=y 799endif 800 801ifdef CONFIG_WPS 802# EAP-WSC 803L_CFLAGS += -DCONFIG_WPS -DEAP_WSC 804OBJS += wps_supplicant.c 805OBJS += src/utils/uuid.c 806OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c 807OBJS += src/wps/wps.c 808OBJS += src/wps/wps_common.c 809OBJS += src/wps/wps_attr_parse.c 810OBJS += src/wps/wps_attr_build.c 811OBJS += src/wps/wps_attr_process.c 812OBJS += src/wps/wps_dev_attr.c 813OBJS += src/wps/wps_enrollee.c 814OBJS += src/wps/wps_registrar.c 815CONFIG_IEEE8021X_EAPOL=y 816NEED_DH_GROUPS=y 817NEED_BASE64=y 818NEED_AES_CBC=y 819NEED_MODEXP=y 820 821ifdef CONFIG_WPS_NFC 822L_CFLAGS += -DCONFIG_WPS_NFC 823OBJS += src/wps/ndef.c 824NEED_WPS_OOB=y 825endif 826 827ifdef NEED_WPS_OOB 828L_CFLAGS += -DCONFIG_WPS_OOB 829endif 830 831ifdef CONFIG_WPS_ER 832CONFIG_WPS_UPNP=y 833L_CFLAGS += -DCONFIG_WPS_ER 834OBJS += src/wps/wps_er.c 835OBJS += src/wps/wps_er_ssdp.c 836endif 837 838ifdef CONFIG_WPS_UPNP 839L_CFLAGS += -DCONFIG_WPS_UPNP 840OBJS += src/wps/wps_upnp.c 841OBJS += src/wps/wps_upnp_ssdp.c 842OBJS += src/wps/wps_upnp_web.c 843OBJS += src/wps/wps_upnp_event.c 844OBJS += src/wps/wps_upnp_ap.c 845OBJS += src/wps/upnp_xml.c 846OBJS += src/wps/httpread.c 847OBJS += src/wps/http_client.c 848OBJS += src/wps/http_server.c 849endif 850 851ifdef CONFIG_WPS_STRICT 852L_CFLAGS += -DCONFIG_WPS_STRICT 853OBJS += src/wps/wps_validate.c 854endif 855 856ifdef CONFIG_WPS_TESTING 857L_CFLAGS += -DCONFIG_WPS_TESTING 858endif 859 860ifdef CONFIG_WPS_REG_DISABLE_OPEN 861L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 862endif 863 864endif 865 866ifdef CONFIG_EAP_IKEV2 867# EAP-IKEv2 868ifeq ($(CONFIG_EAP_IKEV2), dyn) 869L_CFLAGS += -DEAP_IKEV2_DYNAMIC 870EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c 871EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 872else 873L_CFLAGS += -DEAP_IKEV2 874OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c 875OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 876endif 877CONFIG_IEEE8021X_EAPOL=y 878NEED_DH_GROUPS=y 879NEED_DH_GROUPS_ALL=y 880NEED_MODEXP=y 881NEED_CIPHER=y 882endif 883 884ifdef CONFIG_EAP_VENDOR_TEST 885ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 886L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 887EAPDYN += src/eap_peer/eap_vendor_test.so 888else 889L_CFLAGS += -DEAP_VENDOR_TEST 890OBJS += src/eap_peer/eap_vendor_test.c 891endif 892CONFIG_IEEE8021X_EAPOL=y 893endif 894 895ifdef CONFIG_EAP_TNC 896# EAP-TNC 897L_CFLAGS += -DEAP_TNC 898OBJS += src/eap_peer/eap_tnc.c 899OBJS += src/eap_peer/tncc.c 900NEED_BASE64=y 901ifndef CONFIG_NATIVE_WINDOWS 902ifndef CONFIG_DRIVER_BSD 903LIBS += -ldl 904endif 905endif 906endif 907 908ifdef CONFIG_IEEE8021X_EAPOL 909# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 910L_CFLAGS += -DIEEE8021X_EAPOL 911OBJS += src/eapol_supp/eapol_supp_sm.c 912OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c 913NEED_EAP_COMMON=y 914ifdef CONFIG_DYNAMIC_EAP_METHODS 915L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 916LIBS += -ldl -rdynamic 917endif 918endif 919 920ifdef CONFIG_AP 921NEED_EAP_COMMON=y 922NEED_RSN_AUTHENTICATOR=y 923L_CFLAGS += -DCONFIG_AP 924OBJS += ap.c 925L_CFLAGS += -DCONFIG_NO_RADIUS 926L_CFLAGS += -DCONFIG_NO_ACCOUNTING 927L_CFLAGS += -DCONFIG_NO_VLAN 928OBJS += src/ap/hostapd.c 929OBJS += src/ap/wpa_auth_glue.c 930OBJS += src/ap/utils.c 931OBJS += src/ap/authsrv.c 932OBJS += src/ap/ap_config.c 933OBJS += src/ap/sta_info.c 934OBJS += src/ap/tkip_countermeasures.c 935OBJS += src/ap/ap_mlme.c 936OBJS += src/ap/ieee802_1x.c 937OBJS += src/eapol_auth/eapol_auth_sm.c 938OBJS += src/ap/ieee802_11_auth.c 939OBJS += src/ap/ieee802_11_shared.c 940OBJS += src/ap/drv_callbacks.c 941OBJS += src/ap/ap_drv_ops.c 942OBJS += src/ap/beacon.c 943OBJS += src/ap/bss_load.c 944OBJS += src/ap/eap_user_db.c 945OBJS += src/ap/neighbor_db.c 946OBJS += src/ap/rrm.c 947OBJS += src/ap/ieee802_11_ht.c 948ifdef CONFIG_IEEE80211AC 949OBJS += src/ap/ieee802_11_vht.c 950endif 951ifdef CONFIG_IEEE80211AX 952OBJS += src/ap/ieee802_11_he.c 953endif 954ifdef CONFIG_IEEE80211BE 955OBJS += src/ap/ieee802_11_eht.c 956endif 957ifdef CONFIG_WNM_AP 958L_CFLAGS += -DCONFIG_WNM_AP 959OBJS += src/ap/wnm_ap.c 960endif 961ifdef CONFIG_MBO 962OBJS += src/ap/mbo_ap.c 963endif 964ifdef CONFIG_FILS 965OBJS += src/ap/fils_hlp.c 966endif 967ifdef CONFIG_CTRL_IFACE 968OBJS += src/ap/ctrl_iface_ap.c 969endif 970 971L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 972OBJS += src/eap_server/eap_server.c 973OBJS += src/eap_server/eap_server_identity.c 974OBJS += src/eap_server/eap_server_methods.c 975 976ifdef CONFIG_IEEE80211AC 977L_CFLAGS += -DCONFIG_IEEE80211AC 978endif 979ifdef CONFIG_IEEE80211BE 980CONFIG_IEEE80211AX=y 981L_CFLAGS += -DCONFIG_IEEE80211BE 982endif 983ifdef CONFIG_IEEE80211AX 984L_CFLAGS += -DCONFIG_IEEE80211AX 985endif 986 987ifdef NEED_AP_MLME 988OBJS += src/ap/wmm.c 989OBJS += src/ap/ap_list.c 990OBJS += src/ap/comeback_token.c 991OBJS += src/pasn/pasn_responder.c 992OBJS += src/ap/ieee802_11.c 993OBJS += src/ap/hw_features.c 994OBJS += src/ap/dfs.c 995L_CFLAGS += -DNEED_AP_MLME 996endif 997ifdef CONFIG_WPS 998L_CFLAGS += -DEAP_SERVER_WSC 999OBJS += src/ap/wps_hostapd.c 1000OBJS += src/eap_server/eap_server_wsc.c 1001endif 1002ifdef CONFIG_DPP 1003OBJS += src/ap/dpp_hostapd.c 1004OBJS += src/ap/gas_query_ap.c 1005NEED_AP_GAS_SERV=y 1006endif 1007ifdef CONFIG_INTERWORKING 1008NEED_AP_GAS_SERV=y 1009endif 1010ifdef NEED_AP_GAS_SERV 1011OBJS += src/ap/gas_serv.c 1012endif 1013ifdef CONFIG_HS20 1014OBJS += src/ap/hs20.c 1015endif 1016endif 1017 1018ifdef CONFIG_MBO 1019OBJS += mbo.c 1020L_CFLAGS += -DCONFIG_MBO 1021endif 1022 1023ifdef CONFIG_TESTING_OPTIONS 1024L_CFLAGS += -DCONFIG_TESTING_OPTIONS 1025endif 1026 1027ifdef NEED_RSN_AUTHENTICATOR 1028L_CFLAGS += -DCONFIG_NO_RADIUS 1029NEED_AES_WRAP=y 1030OBJS += src/ap/wpa_auth.c 1031OBJS += src/ap/wpa_auth_ie.c 1032OBJS += src/ap/pmksa_cache_auth.c 1033endif 1034 1035ifdef CONFIG_ACS 1036L_CFLAGS += -DCONFIG_ACS 1037OBJS += src/ap/acs.c 1038LIBS += -lm 1039endif 1040 1041ifdef CONFIG_PCSC 1042# PC/SC interface for smartcards (USIM, GSM SIM) 1043L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 1044OBJS += src/utils/pcsc_funcs.c 1045# -lpthread may not be needed depending on how pcsc-lite was configured 1046ifdef CONFIG_NATIVE_WINDOWS 1047#Once MinGW gets support for WinScard, -lwinscard could be used instead of the 1048#dynamic symbol loading that is now used in pcsc_funcs.c 1049#LIBS += -lwinscard 1050else 1051LIBS += -lpcsclite -lpthread 1052endif 1053endif 1054 1055ifdef CONFIG_SIM_SIMULATOR 1056L_CFLAGS += -DCONFIG_SIM_SIMULATOR 1057NEED_MILENAGE=y 1058endif 1059 1060ifdef CONFIG_USIM_SIMULATOR 1061L_CFLAGS += -DCONFIG_USIM_SIMULATOR 1062NEED_MILENAGE=y 1063endif 1064 1065ifdef NEED_MILENAGE 1066OBJS += src/crypto/milenage.c 1067NEED_AES_ENCBLOCK=y 1068endif 1069 1070ifdef CONFIG_PKCS12 1071L_CFLAGS += -DPKCS12_FUNCS 1072endif 1073 1074ifdef CONFIG_SMARTCARD 1075L_CFLAGS += -DCONFIG_SMARTCARD 1076endif 1077 1078ifdef NEED_DRAGONFLY 1079OBJS += src/common/dragonfly.c 1080endif 1081 1082ifdef MS_FUNCS 1083OBJS += src/crypto/ms_funcs.c 1084NEED_DES=y 1085NEED_MD4=y 1086endif 1087 1088ifdef CHAP 1089OBJS += src/eap_common/chap.c 1090endif 1091 1092ifdef TLS_FUNCS 1093NEED_DES=y 1094# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST) 1095OBJS += src/eap_peer/eap_tls_common.c 1096ifndef CONFIG_FIPS 1097NEED_TLS_PRF=y 1098NEED_SHA1=y 1099NEED_MD5=y 1100endif 1101endif 1102 1103ifndef CONFIG_TLS 1104CONFIG_TLS=openssl 1105L_CFLAGS += -DCONFIG_USE_OPENSSL_RNG 1106endif 1107 1108ifdef CONFIG_TLSV11 1109L_CFLAGS += -DCONFIG_TLSV11 1110endif 1111 1112ifdef CONFIG_TLSV12 1113L_CFLAGS += -DCONFIG_TLSV12 1114endif 1115 1116ifeq ($(CONFIG_TLS), openssl) 1117L_CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 1118ifdef TLS_FUNCS 1119L_CFLAGS += -DEAP_TLS_OPENSSL 1120OBJS += src/crypto/tls_openssl.c 1121OBJS += src/crypto/tls_openssl_ocsp.c 1122LIBS += -lssl 1123endif 1124OBJS += src/crypto/crypto_openssl.c 1125OBJS_p += src/crypto/crypto_openssl.c 1126ifdef NEED_FIPS186_2_PRF 1127OBJS += src/crypto/fips_prf_openssl.c 1128endif 1129NEED_TLS_PRF_SHA256=y 1130LIBS += -lcrypto 1131LIBS_p += -lcrypto 1132ifdef CONFIG_TLS_ADD_DL 1133LIBS += -ldl 1134LIBS_p += -ldl 1135endif 1136ifndef CONFIG_TLS_DEFAULT_CIPHERS 1137CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 1138endif 1139L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 1140endif 1141 1142ifeq ($(CONFIG_TLS), gnutls) 1143ifndef CONFIG_CRYPTO 1144# default to libgcrypt 1145CONFIG_CRYPTO=gnutls 1146endif 1147ifdef TLS_FUNCS 1148OBJS += src/crypto/tls_gnutls.c 1149LIBS += -lgnutls -lgpg-error 1150endif 1151OBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 1152OBJS_p += src/crypto/crypto_$(CONFIG_CRYPTO).c 1153ifdef NEED_FIPS186_2_PRF 1154OBJS += src/crypto/fips_prf_internal.c 1155OBJS += src/crypto/sha1-internal.c 1156endif 1157ifeq ($(CONFIG_CRYPTO), gnutls) 1158LIBS += -lgcrypt 1159LIBS_p += -lgcrypt 1160CONFIG_INTERNAL_RC4=y 1161CONFIG_INTERNAL_DH_GROUP5=y 1162endif 1163ifeq ($(CONFIG_CRYPTO), nettle) 1164LIBS += -lnettle -lgmp 1165LIBS_p += -lnettle -lgmp 1166CONFIG_INTERNAL_RC4=y 1167CONFIG_INTERNAL_DH_GROUP5=y 1168endif 1169endif 1170 1171ifeq ($(CONFIG_TLS), internal) 1172ifndef CONFIG_CRYPTO 1173CONFIG_CRYPTO=internal 1174endif 1175ifdef TLS_FUNCS 1176OBJS += src/crypto/crypto_internal-rsa.c 1177OBJS += src/crypto/tls_internal.c 1178OBJS += src/tls/tlsv1_common.c 1179OBJS += src/tls/tlsv1_record.c 1180OBJS += src/tls/tlsv1_cred.c 1181OBJS += src/tls/tlsv1_client.c 1182OBJS += src/tls/tlsv1_client_write.c 1183OBJS += src/tls/tlsv1_client_read.c 1184OBJS += src/tls/tlsv1_client_ocsp.c 1185NEED_ASN1=y 1186OBJS += src/tls/rsa.c 1187OBJS += src/tls/x509v3.c 1188OBJS += src/tls/pkcs1.c 1189OBJS += src/tls/pkcs5.c 1190OBJS += src/tls/pkcs8.c 1191NEED_BASE64=y 1192NEED_TLS_PRF=y 1193ifdef CONFIG_TLSV12 1194NEED_TLS_PRF_SHA256=y 1195endif 1196NEED_MODEXP=y 1197NEED_CIPHER=y 1198L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1199endif 1200ifdef NEED_CIPHER 1201NEED_DES=y 1202OBJS += src/crypto/crypto_internal-cipher.c 1203endif 1204ifdef NEED_MODEXP 1205OBJS += src/crypto/crypto_internal-modexp.c 1206OBJS += src/tls/bignum.c 1207endif 1208ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1209OBJS += src/crypto/crypto_libtomcrypt.c 1210OBJS_p += src/crypto/crypto_libtomcrypt.c 1211LIBS += -ltomcrypt -ltfm 1212LIBS_p += -ltomcrypt -ltfm 1213CONFIG_INTERNAL_SHA256=y 1214CONFIG_INTERNAL_RC4=y 1215CONFIG_INTERNAL_DH_GROUP5=y 1216endif 1217ifeq ($(CONFIG_CRYPTO), internal) 1218OBJS += src/crypto/crypto_internal.c 1219OBJS_p += src/crypto/crypto_internal.c 1220NEED_AES_ENC=y 1221L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 1222ifdef CONFIG_INTERNAL_LIBTOMMATH 1223L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1224ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 1225L_CFLAGS += -DLTM_FAST 1226endif 1227else 1228LIBS += -ltommath 1229LIBS_p += -ltommath 1230endif 1231CONFIG_INTERNAL_AES=y 1232CONFIG_INTERNAL_DES=y 1233CONFIG_INTERNAL_SHA1=y 1234CONFIG_INTERNAL_MD4=y 1235CONFIG_INTERNAL_MD5=y 1236CONFIG_INTERNAL_SHA256=y 1237CONFIG_INTERNAL_SHA384=y 1238CONFIG_INTERNAL_SHA512=y 1239CONFIG_INTERNAL_RC4=y 1240CONFIG_INTERNAL_DH_GROUP5=y 1241endif 1242ifeq ($(CONFIG_CRYPTO), cryptoapi) 1243OBJS += src/crypto/crypto_cryptoapi.c 1244OBJS_p += src/crypto/crypto_cryptoapi.c 1245L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 1246CONFIG_INTERNAL_SHA256=y 1247CONFIG_INTERNAL_RC4=y 1248endif 1249endif 1250 1251ifeq ($(CONFIG_TLS), none) 1252ifdef TLS_FUNCS 1253OBJS += src/crypto/tls_none.c 1254L_CFLAGS += -DEAP_TLS_NONE 1255CONFIG_INTERNAL_AES=y 1256CONFIG_INTERNAL_SHA1=y 1257CONFIG_INTERNAL_MD5=y 1258endif 1259OBJS += src/crypto/crypto_none.c 1260OBJS_p += src/crypto/crypto_none.c 1261CONFIG_INTERNAL_SHA256=y 1262CONFIG_INTERNAL_RC4=y 1263endif 1264 1265ifdef TLS_FUNCS 1266ifdef CONFIG_SMARTCARD 1267ifndef CONFIG_NATIVE_WINDOWS 1268ifneq ($(CONFIG_L2_PACKET), freebsd) 1269LIBS += -ldl 1270endif 1271endif 1272endif 1273endif 1274 1275ifndef TLS_FUNCS 1276OBJS += src/crypto/tls_none.c 1277ifeq ($(CONFIG_TLS), internal) 1278CONFIG_INTERNAL_AES=y 1279CONFIG_INTERNAL_SHA1=y 1280CONFIG_INTERNAL_MD5=y 1281CONFIG_INTERNAL_RC4=y 1282endif 1283endif 1284 1285AESOBJS = # none so far (see below) 1286ifdef CONFIG_INTERNAL_AES 1287AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c 1288endif 1289 1290ifneq ($(CONFIG_TLS), openssl) 1291NEED_INTERNAL_AES_WRAP=y 1292endif 1293ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP 1294# Seems to be needed at least with BoringSSL 1295NEED_INTERNAL_AES_WRAP=y 1296L_CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP 1297endif 1298ifdef CONFIG_FIPS 1299# Have to use internal AES key wrap routines to use OpenSSL EVP since the 1300# OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode. 1301NEED_INTERNAL_AES_WRAP=y 1302endif 1303 1304ifdef NEED_INTERNAL_AES_WRAP 1305AESOBJS += src/crypto/aes-unwrap.c 1306endif 1307ifdef NEED_AES_EAX 1308AESOBJS += src/crypto/aes-eax.c 1309NEED_AES_CTR=y 1310endif 1311ifdef NEED_AES_SIV 1312AESOBJS += src/crypto/aes-siv.c 1313NEED_AES_CTR=y 1314endif 1315ifdef NEED_AES_CTR 1316AESOBJS += src/crypto/aes-ctr.c 1317endif 1318ifdef NEED_AES_ENCBLOCK 1319AESOBJS += src/crypto/aes-encblock.c 1320endif 1321NEED_AES_ENC=y 1322ifneq ($(CONFIG_TLS), openssl) 1323AESOBJS += src/crypto/aes-omac1.c 1324endif 1325ifdef NEED_AES_WRAP 1326NEED_AES_ENC=y 1327ifdef NEED_INTERNAL_AES_WRAP 1328AESOBJS += src/crypto/aes-wrap.c 1329endif 1330endif 1331ifdef NEED_AES_CBC 1332NEED_AES_ENC=y 1333ifneq ($(CONFIG_TLS), openssl) 1334AESOBJS += src/crypto/aes-cbc.c 1335endif 1336endif 1337ifdef NEED_AES_ENC 1338ifdef CONFIG_INTERNAL_AES 1339AESOBJS += src/crypto/aes-internal-enc.c 1340endif 1341endif 1342ifdef NEED_AES 1343OBJS += $(AESOBJS) 1344endif 1345 1346SHA1OBJS = 1347ifdef NEED_SHA1 1348ifneq ($(CONFIG_TLS), openssl) 1349ifneq ($(CONFIG_TLS), gnutls) 1350SHA1OBJS += src/crypto/sha1.c 1351endif 1352endif 1353SHA1OBJS += src/crypto/sha1-prf.c 1354ifdef CONFIG_INTERNAL_SHA1 1355SHA1OBJS += src/crypto/sha1-internal.c 1356ifdef NEED_FIPS186_2_PRF 1357SHA1OBJS += src/crypto/fips_prf_internal.c 1358endif 1359endif 1360ifdef CONFIG_NO_WPA_PASSPHRASE 1361L_CFLAGS += -DCONFIG_NO_PBKDF2 1362else 1363ifneq ($(CONFIG_TLS), openssl) 1364SHA1OBJS += src/crypto/sha1-pbkdf2.c 1365endif 1366endif 1367ifdef NEED_T_PRF 1368SHA1OBJS += src/crypto/sha1-tprf.c 1369endif 1370ifdef NEED_TLS_PRF 1371SHA1OBJS += src/crypto/sha1-tlsprf.c 1372endif 1373endif 1374 1375MD5OBJS = 1376ifndef CONFIG_FIPS 1377ifneq ($(CONFIG_TLS), openssl) 1378ifneq ($(CONFIG_TLS), gnutls) 1379MD5OBJS += src/crypto/md5.c 1380endif 1381endif 1382endif 1383ifdef NEED_MD5 1384ifdef CONFIG_INTERNAL_MD5 1385MD5OBJS += src/crypto/md5-internal.c 1386endif 1387OBJS += $(MD5OBJS) 1388OBJS_p += $(MD5OBJS) 1389endif 1390 1391ifdef NEED_MD4 1392ifdef CONFIG_INTERNAL_MD4 1393OBJS += src/crypto/md4-internal.c 1394endif 1395endif 1396 1397DESOBJS = # none needed when not internal 1398ifdef NEED_DES 1399ifdef CONFIG_INTERNAL_DES 1400DESOBJS += src/crypto/des-internal.c 1401endif 1402endif 1403 1404ifdef CONFIG_NO_RC4 1405L_CFLAGS += -DCONFIG_NO_RC4 1406endif 1407 1408ifdef NEED_RC4 1409ifdef CONFIG_INTERNAL_RC4 1410ifndef CONFIG_NO_RC4 1411OBJS += src/crypto/rc4.c 1412endif 1413endif 1414endif 1415 1416ifdef CONFIG_SAE 1417ifdef NEED_SHA384 1418# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled. 1419NEED_HMAC_SHA384_KDF=y 1420endif 1421ifdef NEED_SHA512 1422# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled. 1423NEED_HMAC_SHA512_KDF=y 1424endif 1425endif 1426 1427SHA256OBJS = # none by default 1428L_CFLAGS += -DCONFIG_SHA256 1429ifneq ($(CONFIG_TLS), openssl) 1430ifneq ($(CONFIG_TLS), gnutls) 1431SHA256OBJS += src/crypto/sha256.c 1432endif 1433endif 1434SHA256OBJS += src/crypto/sha256-prf.c 1435ifdef CONFIG_INTERNAL_SHA256 1436SHA256OBJS += src/crypto/sha256-internal.c 1437endif 1438ifdef CONFIG_INTERNAL_SHA384 1439L_CFLAGS += -DCONFIG_INTERNAL_SHA384 1440SHA256OBJS += src/crypto/sha384-internal.c 1441endif 1442ifdef CONFIG_INTERNAL_SHA512 1443L_CFLAGS += -DCONFIG_INTERNAL_SHA512 1444SHA256OBJS += src/crypto/sha512-internal.c 1445endif 1446ifdef NEED_TLS_PRF_SHA256 1447SHA256OBJS += src/crypto/sha256-tlsprf.c 1448endif 1449ifdef NEED_TLS_PRF_SHA384 1450SHA256OBJS += src/crypto/sha384-tlsprf.c 1451endif 1452ifdef NEED_HMAC_SHA256_KDF 1453L_CFLAGS += -DCONFIG_HMAC_SHA256_KDF 1454SHA256OBJS += src/crypto/sha256-kdf.c 1455endif 1456ifdef NEED_HMAC_SHA384_KDF 1457L_CFLAGS += -DCONFIG_HMAC_SHA384_KDF 1458SHA256OBJS += src/crypto/sha384-kdf.c 1459endif 1460ifdef NEED_HMAC_SHA512_KDF 1461L_CFLAGS += -DCONFIG_HMAC_SHA512_KDF 1462SHA256OBJS += src/crypto/sha512-kdf.c 1463endif 1464OBJS += $(SHA256OBJS) 1465ifdef NEED_SHA384 1466L_CFLAGS += -DCONFIG_SHA384 1467ifneq ($(CONFIG_TLS), openssl) 1468ifneq ($(CONFIG_TLS), gnutls) 1469OBJS += src/crypto/sha384.c 1470endif 1471endif 1472OBJS += src/crypto/sha384-prf.c 1473endif 1474ifdef NEED_SHA512 1475L_CFLAGS += -DCONFIG_SHA512 1476ifneq ($(CONFIG_TLS), openssl) 1477ifneq ($(CONFIG_TLS), gnutls) 1478OBJS += src/crypto/sha512.c 1479endif 1480endif 1481OBJS += src/crypto/sha512-prf.c 1482endif 1483 1484ifdef NEED_ASN1 1485OBJS += src/tls/asn1.c 1486endif 1487 1488ifdef NEED_DH_GROUPS 1489OBJS += src/crypto/dh_groups.c 1490endif 1491ifdef NEED_DH_GROUPS_ALL 1492L_CFLAGS += -DALL_DH_GROUPS 1493endif 1494ifdef CONFIG_INTERNAL_DH_GROUP5 1495ifdef NEED_DH_GROUPS 1496OBJS += src/crypto/dh_group5.c 1497endif 1498endif 1499 1500ifdef NEED_ECC 1501L_CFLAGS += -DCONFIG_ECC 1502endif 1503 1504ifdef CONFIG_NO_RANDOM_POOL 1505L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 1506else 1507OBJS += src/crypto/random.c 1508endif 1509 1510ifdef CONFIG_CTRL_IFACE 1511ifeq ($(CONFIG_CTRL_IFACE), y) 1512ifdef CONFIG_NATIVE_WINDOWS 1513CONFIG_CTRL_IFACE=named_pipe 1514else 1515CONFIG_CTRL_IFACE=unix 1516endif 1517endif 1518L_CFLAGS += -DCONFIG_CTRL_IFACE 1519ifeq ($(CONFIG_CTRL_IFACE), unix) 1520L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1521OBJS += src/common/ctrl_iface_common.c 1522endif 1523ifeq ($(CONFIG_CTRL_IFACE), udp) 1524L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1525endif 1526ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1527L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1528endif 1529ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 1530CONFIG_CTRL_IFACE=udp 1531L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1532L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1533endif 1534OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c 1535endif 1536 1537ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1538L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1539OBJS += dbus/dbus_dict_helpers.c 1540OBJS += dbus/dbus_new_helpers.c 1541OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c 1542OBJS += dbus/dbus_common.c 1543ifdef CONFIG_WPS 1544OBJS += dbus/dbus_new_handlers_wps.c 1545endif 1546ifdef CONFIG_P2P 1547OBJS += dbus/dbus_new_handlers_p2p.c 1548endif 1549ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1550OBJS += dbus/dbus_new_introspect.c 1551L_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1552endif 1553L_CFLAGS += $(DBUS_INCLUDE) 1554endif 1555 1556ifdef CONFIG_CTRL_IFACE_AIDL 1557WPA_SUPPLICANT_USE_AIDL=y 1558L_CFLAGS += -DCONFIG_AIDL -DCONFIG_CTRL_IFACE_AIDL 1559endif 1560 1561ifdef CONFIG_READLINE 1562OBJS_c += src/utils/edit_readline.c 1563LIBS_c += -lncurses -lreadline 1564else 1565ifdef CONFIG_WPA_CLI_EDIT 1566OBJS_c += src/utils/edit.c 1567else 1568OBJS_c += src/utils/edit_simple.c 1569endif 1570endif 1571 1572ifdef CONFIG_NATIVE_WINDOWS 1573L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 1574LIBS += -lws2_32 -lgdi32 -lcrypt32 1575LIBS_c += -lws2_32 1576LIBS_p += -lws2_32 -lgdi32 1577ifeq ($(CONFIG_CRYPTO), cryptoapi) 1578LIBS_p += -lcrypt32 1579endif 1580endif 1581 1582ifdef CONFIG_NO_STDOUT_DEBUG 1583L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1584ifndef CONFIG_CTRL_IFACE 1585L_CFLAGS += -DCONFIG_NO_WPA_MSG 1586endif 1587endif 1588 1589ifdef CONFIG_ANDROID_LOG 1590L_CFLAGS += -DCONFIG_ANDROID_LOG 1591endif 1592 1593ifdef CONFIG_IPV6 1594# for eapol_test only 1595L_CFLAGS += -DCONFIG_IPV6 1596endif 1597 1598ifdef NEED_BASE64 1599OBJS += src/utils/base64.c 1600endif 1601 1602ifdef NEED_SME 1603OBJS += sme.c 1604L_CFLAGS += -DCONFIG_SME 1605endif 1606 1607OBJS += src/common/ieee802_11_common.c 1608OBJS += src/common/hw_features_common.c 1609 1610ifdef NEED_EAP_COMMON 1611OBJS += src/eap_common/eap_common.c 1612endif 1613 1614ifndef CONFIG_MAIN 1615CONFIG_MAIN=main 1616endif 1617 1618ifdef CONFIG_DEBUG_SYSLOG 1619L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 1620ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1621L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1622endif 1623endif 1624 1625ifdef CONFIG_DEBUG_LINUX_TRACING 1626L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1627endif 1628 1629ifdef CONFIG_DEBUG_FILE 1630L_CFLAGS += -DCONFIG_DEBUG_FILE 1631endif 1632 1633ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1634L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1635endif 1636 1637ifdef CONFIG_FIPS 1638L_CFLAGS += -DCONFIG_FIPS 1639endif 1640 1641OBJS += $(SHA1OBJS) $(DESOBJS) 1642 1643OBJS_p += $(SHA1OBJS) 1644OBJS_p += $(SHA256OBJS) 1645 1646ifdef CONFIG_BGSCAN_SIMPLE 1647L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1648OBJS += bgscan_simple.c 1649NEED_BGSCAN=y 1650endif 1651 1652ifdef CONFIG_BGSCAN_LEARN 1653L_CFLAGS += -DCONFIG_BGSCAN_LEARN 1654OBJS += bgscan_learn.c 1655NEED_BGSCAN=y 1656endif 1657 1658ifdef NEED_BGSCAN 1659L_CFLAGS += -DCONFIG_BGSCAN 1660OBJS += bgscan.c 1661endif 1662 1663ifdef CONFIG_AUTOSCAN_EXPONENTIAL 1664L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL 1665OBJS += autoscan_exponential.c 1666NEED_AUTOSCAN=y 1667endif 1668 1669ifdef CONFIG_AUTOSCAN_PERIODIC 1670L_CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC 1671OBJS += autoscan_periodic.c 1672NEED_AUTOSCAN=y 1673endif 1674 1675ifdef NEED_AUTOSCAN 1676L_CFLAGS += -DCONFIG_AUTOSCAN 1677OBJS += autoscan.c 1678endif 1679 1680ifdef CONFIG_EXT_PASSWORD_TEST 1681OBJS += src/utils/ext_password_test.c 1682L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST 1683NEED_EXT_PASSWORD=y 1684endif 1685 1686ifdef CONFIG_EXT_PASSWORD_FILE 1687OBJS += src/utils/ext_password_file.c 1688L_CFLAGS += -DCONFIG_EXT_PASSWORD_FILE 1689NEED_EXT_PASSWORD=y 1690endif 1691 1692ifdef NEED_EXT_PASSWORD 1693OBJS += src/utils/ext_password.c 1694L_CFLAGS += -DCONFIG_EXT_PASSWORD 1695endif 1696 1697ifdef NEED_GAS_SERVER 1698OBJS += src/common/gas_server.c 1699L_CFLAGS += -DCONFIG_GAS_SERVER 1700NEED_GAS=y 1701endif 1702 1703ifdef NEED_GAS 1704OBJS += src/common/gas.c 1705OBJS += gas_query.c 1706L_CFLAGS += -DCONFIG_GAS 1707NEED_OFFCHANNEL=y 1708endif 1709 1710ifdef NEED_OFFCHANNEL 1711OBJS += offchannel.c 1712L_CFLAGS += -DCONFIG_OFFCHANNEL 1713endif 1714 1715ifdef NEED_JSON 1716OBJS += src/utils/json.c 1717L_CFLAGS += -DCONFIG_JSON 1718endif 1719 1720OBJS += src/drivers/driver_common.c 1721 1722OBJS += wpa_supplicant.c events.c bssid_ignore.c wpas_glue.c scan.c 1723OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c 1724OBJS_t += src/radius/radius_client.c 1725OBJS_t += src/radius/radius.c 1726OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c 1727OBJS += $(CONFIG_MAIN).c 1728 1729ifdef CONFIG_PRIVSEP 1730OBJS_priv += $(OBJS_d) src/drivers/drivers.c 1731OBJS_priv += $(OBJS_l2) 1732OBJS_priv += src/utils/os_$(CONFIG_OS).c 1733OBJS_priv += src/utils/$(CONFIG_ELOOP).c 1734OBJS_priv += src/utils/common.c 1735OBJS_priv += src/utils/wpa_debug.c 1736OBJS_priv += src/utils/wpabuf.c 1737OBJS_priv += wpa_priv.c 1738ifdef CONFIG_DRIVER_NL80211 1739OBJS_priv += src/common/ieee802_11_common.c 1740endif 1741OBJS += src/l2_packet/l2_packet_privsep.c 1742OBJS += src/drivers/driver_privsep.c 1743EXTRA_progs += wpa_priv 1744else 1745OBJS += $(OBJS_d) src/drivers/drivers.c 1746OBJS += $(OBJS_l2) 1747endif 1748 1749ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1750L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1751OBJS += src/drivers/ndis_events.c 1752EXTRALIBS += -loleaut32 -lole32 -luuid 1753ifdef PLATFORMSDKLIB 1754EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1755else 1756EXTRALIBS += WbemUuid.Lib 1757endif 1758endif 1759 1760ifndef LDO 1761LDO=$(CC) 1762endif 1763 1764PASNOBJS = 1765PASNOBJS += src/utils/$(CONFIG_ELOOP).c 1766PASNOBJS += src/utils/wpa_debug.c 1767PASNOBJS += src/utils/wpabuf.c 1768PASNOBJS += src/utils/os_$(CONFIG_OS).c 1769PASNOBJS += src/utils/config.c 1770PASNOBJS += src/utils/common.c 1771 1772ifdef NEED_BASE64 1773PASNOBJS += src/utils/base64.c 1774endif 1775 1776ifdef CONFIG_WPA_TRACE 1777PASNOBJS += src/utils/trace.c 1778endif 1779 1780ifdef CONFIG_EXT_PASSWORD_FILE 1781PASNOBJS += src/utils/ext_password_file.c 1782endif 1783 1784ifdef CONFIG_EXT_PASSWORD_TEST 1785PASNOBJS += src/utils/ext_password_test.c 1786endif 1787 1788ifdef NEED_EXT_PASSWORD 1789PASNOBJS += src/utils/ext_password.c 1790endif 1791 1792ifdef CONFIG_SAE 1793PASNOBJS += src/common/sae.c 1794endif 1795 1796ifdef CONFIG_SAE_PK 1797PASNOBJS += src/common/sae_pk.c 1798endif 1799 1800ifndef CONFIG_NO_WPA 1801PASNOBJS += src/common/wpa_common.c 1802endif 1803 1804PASNOBJS += src/common/ieee802_11_common.c 1805 1806ifdef NEED_DRAGONFLY 1807PASNOBJS += src/common/dragonfly.c 1808endif 1809 1810PASNOBJS += src/common/ptksa_cache.c 1811 1812ifndef CONFIG_NO_WPA 1813PASNOBJS += src/rsn_supp/pmksa_cache.c 1814PASNOBJS += src/rsn_supp/wpa_ie.c 1815endif 1816 1817PASNOBJS += src/ap/comeback_token.c 1818PASNOBJS += src/ap/pmksa_cache_auth.c 1819 1820ifdef NEED_EAP_COMMON 1821PASNOBJS += src/eap_common/eap_common.c 1822endif 1823 1824ifdef CHAP 1825PASNOBJS += src/eap_common/chap.c 1826endif 1827 1828ifdef CONFIG_IEEE8021X_EAPOL 1829PASNOBJS += src/eap_peer/eap.c 1830PASNOBJS += src/eap_peer/eap_methods.c 1831PASNOBJS += src/eapol_supp/eapol_supp_sm.c 1832endif 1833 1834ifeq ($(CONFIG_TLS), openssl) 1835PASNOBJS += src/crypto/crypto_openssl.c 1836ifdef TLS_FUNCS 1837PASNOBJS += src/crypto/tls_openssl.c 1838#PASNOBJS += -lssl -lcrypto 1839NEED_TLS_PRF_SHA256=y 1840endif 1841endif 1842 1843ifeq ($(CONFIG_TLS), gnutls) 1844PASNOBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 1845ifdef TLS_FUNCS 1846PASNOBJS += src/crypto/tls_gnutls.c 1847PASNOBJS += -lgnutls -lgpg-error 1848PASNOBJS += -lgcrypt 1849endif 1850endif 1851 1852ifdef NEED_TLS_PRF_SHA256 1853PASNOBJS += src/crypto/sha256-tlsprf.c 1854endif 1855 1856ifdef NEED_SHA512 1857PASNOBJS += src/crypto/sha512-prf.c 1858endif 1859 1860ifdef NEED_SHA384 1861PASNOBJS += src/crypto/sha384-prf.c 1862endif 1863 1864PASNOBJS += src/crypto/sha256-prf.c 1865 1866ifdef NEED_HMAC_SHA512_KDF 1867PASNOBJS += src/crypto/sha512-kdf.c 1868endif 1869 1870ifdef NEED_HMAC_SHA384_KDF 1871PASNOBJS += src/crypto/sha384-kdf.c 1872endif 1873 1874ifdef NEED_HMAC_SHA256_KDF 1875PASNOBJS += src/crypto/sha256-kdf.c 1876endif 1877 1878ifdef NEED_DH_GROUPS 1879PASNOBJS += src/crypto/dh_groups.c 1880endif 1881 1882ifdef NEED_AES_SIV 1883PASNOBJS += src/crypto/aes-siv.c 1884endif 1885 1886ifdef NEED_AES_CTR 1887PASNOBJS += src/crypto/aes-ctr.c 1888endif 1889 1890ifdef NEED_SHA1 1891PASNOBJS += src/crypto/sha1-prf.c 1892ifdef NEED_TLS_PRF 1893PASNOBJS += src/crypto/sha1-tlsprf.c 1894endif 1895endif 1896 1897PASNOBJS += src/pasn/pasn_initiator.c 1898PASNOBJS += src/pasn/pasn_responder.c 1899 1900######################## 1901 1902include $(CLEAR_VARS) 1903LOCAL_MODULE := wpa_cli 1904LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1905LOCAL_LICENSE_CONDITIONS := notice unencumbered 1906LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1907LOCAL_PROPRIETARY_MODULE := true 1908LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1909LOCAL_CFLAGS := $(L_CFLAGS) 1910LOCAL_SRC_FILES := $(OBJS_c) 1911LOCAL_C_INCLUDES := $(INCLUDES) 1912include $(BUILD_EXECUTABLE) 1913 1914######################## 1915include $(CLEAR_VARS) 1916LOCAL_MODULE := wpa_supplicant 1917LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1918LOCAL_LICENSE_CONDITIONS := notice unencumbered 1919LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1920LOCAL_PROPRIETARY_MODULE := true 1921LOCAL_MODULE_RELATIVE_PATH := hw 1922ifdef CONFIG_DRIVER_CUSTOM 1923LOCAL_STATIC_LIBRARIES := libCustomWifi 1924endif 1925ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),) 1926LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB) 1927endif 1928LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1929ifdef CONFIG_EAP_PROXY 1930LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY) 1931LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY) 1932endif 1933ifeq ($(CONFIG_TLS), openssl) 1934LOCAL_SHARED_LIBRARIES += libcrypto libssl 1935endif 1936 1937# With BoringSSL we need libkeystore-engine in order to provide access to 1938# keystore keys. 1939LOCAL_SHARED_LIBRARIES += libkeystore-engine-wifi-hidl 1940 1941ifdef CONFIG_DRIVER_NL80211 1942ifneq ($(wildcard external/libnl),) 1943LOCAL_SHARED_LIBRARIES += libnl 1944else 1945LOCAL_STATIC_LIBRARIES += libnl_2 1946endif 1947endif 1948LOCAL_CFLAGS := $(L_CFLAGS) 1949LOCAL_SRC_FILES := $(OBJS) 1950LOCAL_C_INCLUDES := $(INCLUDES) 1951ifeq ($(DBUS), y) 1952LOCAL_SHARED_LIBRARIES += libdbus 1953endif 1954ifeq ($(WPA_SUPPLICANT_USE_AIDL), y) 1955LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant-V2-ndk 1956LOCAL_SHARED_LIBRARIES += android.system.keystore2-V1-ndk 1957LOCAL_SHARED_LIBRARIES += libutils libbase 1958LOCAL_SHARED_LIBRARIES += libbinder_ndk 1959LOCAL_STATIC_LIBRARIES += libwpa_aidl 1960LOCAL_VINTF_FRAGMENTS := aidl/android.hardware.wifi.supplicant.xml 1961ifeq ($(WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY), true) 1962LOCAL_INIT_RC=aidl/android.hardware.wifi.supplicant-service.rc 1963endif 1964endif 1965include $(BUILD_EXECUTABLE) 1966 1967######################## 1968# 1969#include $(CLEAR_VARS) 1970#LOCAL_MODULE := eapol_test 1971#ifdef CONFIG_DRIVER_CUSTOM 1972#LOCAL_STATIC_LIBRARIES := libCustomWifi 1973#endif 1974#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl 1975#LOCAL_CFLAGS := $(L_CFLAGS) 1976#LOCAL_SRC_FILES := $(OBJS_t) 1977#LOCAL_C_INCLUDES := $(INCLUDES) 1978#include $(BUILD_EXECUTABLE) 1979# 1980######################## 1981# 1982#local_target_dir := $(TARGET_OUT)/etc/wifi 1983# 1984#include $(CLEAR_VARS) 1985#LOCAL_MODULE := wpa_supplicant.conf 1986#LOCAL_MODULE_CLASS := ETC 1987#LOCAL_MODULE_PATH := $(local_target_dir) 1988#LOCAL_SRC_FILES := $(LOCAL_MODULE) 1989#include $(BUILD_PREBUILT) 1990# 1991######################## 1992 1993include $(CLEAR_VARS) 1994LOCAL_MODULE = libwpa_client 1995LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1996LOCAL_LICENSE_CONDITIONS := notice unencumbered 1997LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1998LOCAL_PROPRIETARY_MODULE := true 1999LOCAL_CFLAGS = $(L_CFLAGS) 2000LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 2001LOCAL_C_INCLUDES = $(INCLUDES) 2002LOCAL_SHARED_LIBRARIES := libcutils liblog 2003LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/wpa_client_include $(LOCAL_PATH)/wpa_client_include/libwpa_client 2004include $(BUILD_SHARED_LIBRARY) 2005 2006ifeq ($(WPA_SUPPLICANT_USE_AIDL), y) 2007### Aidl service library ### 2008######################## 2009include $(CLEAR_VARS) 2010LOCAL_MODULE := libwpa_aidl 2011LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 2012LOCAL_LICENSE_CONDITIONS := notice unencumbered 2013LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 2014LOCAL_VENDOR_MODULE := true 2015LOCAL_CPPFLAGS := $(L_CPPFLAGS) 2016LOCAL_CFLAGS := $(L_CFLAGS) 2017LOCAL_C_INCLUDES := $(INCLUDES) 2018LOCAL_SRC_FILES := \ 2019 aidl/aidl.cpp \ 2020 aidl/aidl_manager.cpp \ 2021 aidl/certificate_utils.cpp \ 2022 aidl/iface_config_utils.cpp \ 2023 aidl/p2p_iface.cpp \ 2024 aidl/p2p_network.cpp \ 2025 aidl/sta_iface.cpp \ 2026 aidl/sta_network.cpp \ 2027 aidl/supplicant.cpp 2028LOCAL_SHARED_LIBRARIES := \ 2029 android.hardware.wifi.supplicant-V2-ndk \ 2030 android.system.keystore2-V1-ndk \ 2031 libbinder_ndk \ 2032 libbase \ 2033 libutils \ 2034 liblog \ 2035 libssl 2036LOCAL_EXPORT_C_INCLUDE_DIRS := \ 2037 $(LOCAL_PATH)/aidl 2038include $(BUILD_STATIC_LIBRARY) 2039endif # WPA_SUPPLICANT_USE_AIDL == y 2040 2041#include $(CLEAR_VARS) 2042#LOCAL_MODULE = libpasn 2043#LOCAL_CFLAGS = $(L_CFLAGS) 2044#LOCAL_SRC_FILES = $(PASNOBJS) 2045#LOCAL_C_INCLUDES = $(INCLUDES) 2046#LOCAL_SHARED_LIBRARIES := libc libcutils liblog 2047#ifeq ($(CONFIG_TLS), openssl) 2048#LOCAL_SHARED_LIBRARIES := libcrypto libssl 2049#endif 2050#include $(BUILD_SHARED_LIBRARY) 2051