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