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 13else 14 CONFIG_DRIVER_TEST := y 15endif 16 17include $(LOCAL_PATH)/android.config 18 19# To ignore possible wrong network configurations 20L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS 21 22L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\" 23 24# Set Android log name 25L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\" 26 27# Disable roaming in wpa_supplicant 28ifdef CONFIG_NO_ROAMING 29L_CFLAGS += -DCONFIG_NO_ROAMING 30endif 31 32ifeq ($(BOARD_WLAN_DEVICE), bcmdhd) 33L_CFLAGS += -DANDROID_P2P 34L_CFLAGS += -DP2P_CONCURRENT_SEARCH_DELAY=0 35endif 36 37ifeq ($(BOARD_WLAN_DEVICE), qcwcn) 38L_CFLAGS += -DANDROID_P2P 39endif 40 41ifeq ($(BOARD_WLAN_DEVICE), mrvl) 42L_CFLAGS += -DANDROID_P2P 43endif 44 45# Use Android specific directory for control interface sockets 46L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\" 47L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/wpa_supplicant\" 48 49# To force sizeof(enum) = 4 50ifeq ($(TARGET_ARCH),arm) 51L_CFLAGS += -mabi=aapcs-linux 52endif 53 54# To allow non-ASCII characters in SSID 55L_CFLAGS += -DWPA_UNICODE_SSID 56 57INCLUDES = $(LOCAL_PATH) 58INCLUDES += $(LOCAL_PATH)/src 59INCLUDES += $(LOCAL_PATH)/src/common 60# INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes 61INCLUDES += $(LOCAL_PATH)/src/drivers 62INCLUDES += $(LOCAL_PATH)/src/eap_common 63INCLUDES += $(LOCAL_PATH)/src/eapol_supp 64INCLUDES += $(LOCAL_PATH)/src/eap_peer 65INCLUDES += $(LOCAL_PATH)/src/eap_server 66INCLUDES += $(LOCAL_PATH)/src/hlr_auc_gw 67INCLUDES += $(LOCAL_PATH)/src/l2_packet 68INCLUDES += $(LOCAL_PATH)/src/radius 69INCLUDES += $(LOCAL_PATH)/src/rsn_supp 70INCLUDES += $(LOCAL_PATH)/src/tls 71INCLUDES += $(LOCAL_PATH)/src/utils 72INCLUDES += $(LOCAL_PATH)/src/wps 73INCLUDES += external/openssl/include 74INCLUDES += system/security/keystore 75ifdef CONFIG_DRIVER_NL80211 76INCLUDES += external/libnl-headers 77endif 78 79ifdef CONFIG_FIPS 80CONFIG_NO_RANDOM_POOL= 81CONFIG_OPENSSL_CMAC=y 82endif 83 84OBJS = config.c 85OBJS += notify.c 86OBJS += bss.c 87OBJS += eap_register.c 88OBJS += src/utils/common.c 89OBJS += src/utils/wpa_debug.c 90OBJS += src/utils/wpabuf.c 91OBJS_p = wpa_passphrase.c 92OBJS_p += src/utils/common.c 93OBJS_p += src/utils/wpa_debug.c 94OBJS_p += src/utils/wpabuf.c 95OBJS_c = wpa_cli.c src/common/wpa_ctrl.c 96OBJS_c += src/utils/wpa_debug.c 97OBJS_c += src/utils/common.c 98OBJS_d = 99OBJS_priv = 100 101ifndef CONFIG_OS 102ifdef CONFIG_NATIVE_WINDOWS 103CONFIG_OS=win32 104else 105CONFIG_OS=unix 106endif 107endif 108 109ifeq ($(CONFIG_OS), internal) 110L_CFLAGS += -DOS_NO_C_LIB_DEFINES 111endif 112 113OBJS += src/utils/os_$(CONFIG_OS).c 114OBJS_p += src/utils/os_$(CONFIG_OS).c 115OBJS_c += src/utils/os_$(CONFIG_OS).c 116 117ifdef CONFIG_WPA_TRACE 118L_CFLAGS += -DWPA_TRACE 119OBJS += src/utils/trace.c 120OBJS_p += src/utils/trace.c 121OBJS_c += src/utils/trace.c 122LDFLAGS += -rdynamic 123L_CFLAGS += -funwind-tables 124ifdef CONFIG_WPA_TRACE_BFD 125L_CFLAGS += -DWPA_TRACE_BFD 126LIBS += -lbfd 127LIBS_p += -lbfd 128LIBS_c += -lbfd 129endif 130endif 131 132ifndef CONFIG_ELOOP 133CONFIG_ELOOP=eloop 134endif 135OBJS += src/utils/$(CONFIG_ELOOP).c 136OBJS_c += src/utils/$(CONFIG_ELOOP).c 137 138ifdef CONFIG_ELOOP_POLL 139L_CFLAGS += -DCONFIG_ELOOP_POLL 140endif 141 142ifdef CONFIG_EAPOL_TEST 143L_CFLAGS += -Werror -DEAPOL_TEST 144endif 145 146ifdef CONFIG_HT_OVERRIDES 147L_CFLAGS += -DCONFIG_HT_OVERRIDES 148endif 149 150ifdef CONFIG_VHT_OVERRIDES 151L_CFLAGS += -DCONFIG_VHT_OVERRIDES 152endif 153 154ifndef CONFIG_BACKEND 155CONFIG_BACKEND=file 156endif 157 158ifeq ($(CONFIG_BACKEND), file) 159OBJS += config_file.c 160ifndef CONFIG_NO_CONFIG_BLOBS 161NEED_BASE64=y 162endif 163L_CFLAGS += -DCONFIG_BACKEND_FILE 164endif 165 166ifeq ($(CONFIG_BACKEND), winreg) 167OBJS += config_winreg.c 168endif 169 170ifeq ($(CONFIG_BACKEND), none) 171OBJS += config_none.c 172endif 173 174ifdef CONFIG_NO_CONFIG_WRITE 175L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE 176endif 177 178ifdef CONFIG_NO_CONFIG_BLOBS 179L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 180endif 181 182ifdef CONFIG_NO_SCAN_PROCESSING 183L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 184endif 185 186ifdef CONFIG_IEEE80211W 187L_CFLAGS += -DCONFIG_IEEE80211W 188NEED_SHA256=y 189NEED_AES_OMAC1=y 190endif 191 192ifdef CONFIG_IEEE80211R 193L_CFLAGS += -DCONFIG_IEEE80211R 194OBJS += src/rsn_supp/wpa_ft.c 195NEED_80211_COMMON=y 196NEED_SHA256=y 197NEED_AES_OMAC1=y 198endif 199 200ifdef CONFIG_SAE 201L_CFLAGS += -DCONFIG_SAE 202OBJS += src/common/sae.c 203NEED_ECC=y 204NEED_DH_GROUPS=y 205endif 206 207ifdef CONFIG_WNM 208L_CFLAGS += -DCONFIG_WNM 209OBJS += wnm_sta.c 210endif 211 212ifdef CONFIG_TDLS 213L_CFLAGS += -DCONFIG_TDLS 214OBJS += src/rsn_supp/tdls.c 215NEED_SHA256=y 216NEED_AES_OMAC1=y 217endif 218 219ifdef CONFIG_TDLS_TESTING 220L_CFLAGS += -DCONFIG_TDLS_TESTING 221endif 222 223ifdef CONFIG_PEERKEY 224L_CFLAGS += -DCONFIG_PEERKEY 225endif 226 227ifndef CONFIG_NO_WPA 228OBJS += src/rsn_supp/wpa.c 229OBJS += src/rsn_supp/preauth.c 230OBJS += src/rsn_supp/pmksa_cache.c 231OBJS += src/rsn_supp/peerkey.c 232OBJS += src/rsn_supp/wpa_ie.c 233OBJS += src/common/wpa_common.c 234NEED_AES=y 235NEED_SHA1=y 236NEED_MD5=y 237NEED_RC4=y 238else 239L_CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2 240endif 241 242ifdef CONFIG_IBSS_RSN 243NEED_RSN_AUTHENTICATOR=y 244L_CFLAGS += -DCONFIG_IBSS_RSN 245OBJS += ibss_rsn.c 246endif 247 248ifdef CONFIG_P2P 249OBJS += p2p_supplicant.c 250OBJS += src/p2p/p2p.c 251OBJS += src/p2p/p2p_utils.c 252OBJS += src/p2p/p2p_parse.c 253OBJS += src/p2p/p2p_build.c 254OBJS += src/p2p/p2p_go_neg.c 255OBJS += src/p2p/p2p_sd.c 256OBJS += src/p2p/p2p_pd.c 257OBJS += src/p2p/p2p_invitation.c 258OBJS += src/p2p/p2p_dev_disc.c 259OBJS += src/p2p/p2p_group.c 260OBJS += src/ap/p2p_hostapd.c 261L_CFLAGS += -DCONFIG_P2P 262NEED_GAS=y 263NEED_OFFCHANNEL=y 264NEED_80211_COMMON=y 265CONFIG_WPS=y 266CONFIG_AP=y 267ifdef CONFIG_P2P_STRICT 268L_CFLAGS += -DCONFIG_P2P_STRICT 269endif 270endif 271 272ifdef CONFIG_WIFI_DISPLAY 273L_CFLAGS += -DCONFIG_WIFI_DISPLAY 274OBJS += wifi_display.c 275endif 276 277ifdef CONFIG_HS20 278OBJS += hs20_supplicant.c 279L_CFLAGS += -DCONFIG_HS20 280CONFIG_INTERWORKING=y 281endif 282 283ifdef CONFIG_INTERWORKING 284OBJS += interworking.c 285L_CFLAGS += -DCONFIG_INTERWORKING 286NEED_GAS=y 287endif 288 289ifdef CONFIG_NO_WPA2 290L_CFLAGS += -DCONFIG_NO_WPA2 291endif 292 293include $(LOCAL_PATH)/src/drivers/drivers.mk 294 295ifdef CONFIG_AP 296OBJS_d += $(DRV_BOTH_OBJS) 297L_CFLAGS += $(DRV_BOTH_CFLAGS) 298LDFLAGS += $(DRV_BOTH_LDFLAGS) 299LIBS += $(DRV_BOTH_LIBS) 300else 301NEED_AP_MLME= 302OBJS_d += $(DRV_WPA_OBJS) 303L_CFLAGS += $(DRV_WPA_CFLAGS) 304LDFLAGS += $(DRV_WPA_LDFLAGS) 305LIBS += $(DRV_WPA_LIBS) 306endif 307 308ifndef CONFIG_L2_PACKET 309CONFIG_L2_PACKET=linux 310endif 311 312OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c 313 314ifeq ($(CONFIG_L2_PACKET), pcap) 315ifdef CONFIG_WINPCAP 316L_CFLAGS += -DCONFIG_WINPCAP 317LIBS += -lwpcap -lpacket 318LIBS_w += -lwpcap 319else 320LIBS += -ldnet -lpcap 321endif 322endif 323 324ifeq ($(CONFIG_L2_PACKET), winpcap) 325LIBS += -lwpcap -lpacket 326LIBS_w += -lwpcap 327endif 328 329ifeq ($(CONFIG_L2_PACKET), freebsd) 330LIBS += -lpcap 331endif 332 333ifdef CONFIG_EAP_TLS 334# EAP-TLS 335ifeq ($(CONFIG_EAP_TLS), dyn) 336L_CFLAGS += -DEAP_TLS_DYNAMIC 337EAPDYN += src/eap_peer/eap_tls.so 338else 339L_CFLAGS += -DEAP_TLS 340OBJS += src/eap_peer/eap_tls.c 341OBJS_h += src/eap_server/eap_server_tls.c 342endif 343TLS_FUNCS=y 344CONFIG_IEEE8021X_EAPOL=y 345endif 346 347ifdef CONFIG_EAP_UNAUTH_TLS 348# EAP-UNAUTH-TLS 349L_CFLAGS += -DEAP_UNAUTH_TLS 350ifndef CONFIG_EAP_UNAUTH_TLS 351OBJS += src/eap_peer/eap_tls.c 352OBJS_h += src/eap_server/eap_server_tls.c 353TLS_FUNCS=y 354endif 355CONFIG_IEEE8021X_EAPOL=y 356endif 357 358ifdef CONFIG_EAP_PEAP 359# EAP-PEAP 360ifeq ($(CONFIG_EAP_PEAP), dyn) 361L_CFLAGS += -DEAP_PEAP_DYNAMIC 362EAPDYN += src/eap_peer/eap_peap.so 363else 364L_CFLAGS += -DEAP_PEAP 365OBJS += src/eap_peer/eap_peap.c 366OBJS += src/eap_common/eap_peap_common.c 367OBJS_h += src/eap_server/eap_server_peap.c 368endif 369TLS_FUNCS=y 370CONFIG_IEEE8021X_EAPOL=y 371endif 372 373ifdef CONFIG_EAP_TTLS 374# EAP-TTLS 375ifeq ($(CONFIG_EAP_TTLS), dyn) 376L_CFLAGS += -DEAP_TTLS_DYNAMIC 377EAPDYN += src/eap_peer/eap_ttls.so 378else 379L_CFLAGS += -DEAP_TTLS 380OBJS += src/eap_peer/eap_ttls.c 381OBJS_h += src/eap_server/eap_server_ttls.c 382endif 383MS_FUNCS=y 384TLS_FUNCS=y 385CHAP=y 386CONFIG_IEEE8021X_EAPOL=y 387endif 388 389ifdef CONFIG_EAP_MD5 390# EAP-MD5 391ifeq ($(CONFIG_EAP_MD5), dyn) 392L_CFLAGS += -DEAP_MD5_DYNAMIC 393EAPDYN += src/eap_peer/eap_md5.so 394else 395L_CFLAGS += -DEAP_MD5 396OBJS += src/eap_peer/eap_md5.c 397OBJS_h += src/eap_server/eap_server_md5.c 398endif 399CHAP=y 400CONFIG_IEEE8021X_EAPOL=y 401endif 402 403# backwards compatibility for old spelling 404ifdef CONFIG_MSCHAPV2 405ifndef CONFIG_EAP_MSCHAPV2 406CONFIG_EAP_MSCHAPV2=y 407endif 408endif 409 410ifdef CONFIG_EAP_MSCHAPV2 411# EAP-MSCHAPv2 412ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 413L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 414EAPDYN += src/eap_peer/eap_mschapv2.so 415EAPDYN += src/eap_peer/mschapv2.so 416else 417L_CFLAGS += -DEAP_MSCHAPv2 418OBJS += src/eap_peer/eap_mschapv2.c 419OBJS += src/eap_peer/mschapv2.c 420OBJS_h += src/eap_server/eap_server_mschapv2.c 421endif 422MS_FUNCS=y 423CONFIG_IEEE8021X_EAPOL=y 424endif 425 426ifdef CONFIG_EAP_GTC 427# EAP-GTC 428ifeq ($(CONFIG_EAP_GTC), dyn) 429L_CFLAGS += -DEAP_GTC_DYNAMIC 430EAPDYN += src/eap_peer/eap_gtc.so 431else 432L_CFLAGS += -DEAP_GTC 433OBJS += src/eap_peer/eap_gtc.c 434OBJS_h += src/eap_server/eap_server_gtc.c 435endif 436CONFIG_IEEE8021X_EAPOL=y 437endif 438 439ifdef CONFIG_EAP_OTP 440# EAP-OTP 441ifeq ($(CONFIG_EAP_OTP), dyn) 442L_CFLAGS += -DEAP_OTP_DYNAMIC 443EAPDYN += src/eap_peer/eap_otp.so 444else 445L_CFLAGS += -DEAP_OTP 446OBJS += src/eap_peer/eap_otp.c 447endif 448CONFIG_IEEE8021X_EAPOL=y 449endif 450 451ifdef CONFIG_EAP_SIM 452# EAP-SIM 453ifeq ($(CONFIG_EAP_SIM), dyn) 454L_CFLAGS += -DEAP_SIM_DYNAMIC 455EAPDYN += src/eap_peer/eap_sim.so 456else 457L_CFLAGS += -DEAP_SIM 458OBJS += src/eap_peer/eap_sim.c 459OBJS_h += src/eap_server/eap_server_sim.c 460endif 461CONFIG_IEEE8021X_EAPOL=y 462CONFIG_EAP_SIM_COMMON=y 463NEED_AES_CBC=y 464endif 465 466ifdef CONFIG_EAP_LEAP 467# EAP-LEAP 468ifeq ($(CONFIG_EAP_LEAP), dyn) 469L_CFLAGS += -DEAP_LEAP_DYNAMIC 470EAPDYN += src/eap_peer/eap_leap.so 471else 472L_CFLAGS += -DEAP_LEAP 473OBJS += src/eap_peer/eap_leap.c 474endif 475MS_FUNCS=y 476CONFIG_IEEE8021X_EAPOL=y 477endif 478 479ifdef CONFIG_EAP_PSK 480# EAP-PSK 481ifeq ($(CONFIG_EAP_PSK), dyn) 482L_CFLAGS += -DEAP_PSK_DYNAMIC 483EAPDYN += src/eap_peer/eap_psk.so 484else 485L_CFLAGS += -DEAP_PSK 486OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c 487OBJS_h += src/eap_server/eap_server_psk.c 488endif 489CONFIG_IEEE8021X_EAPOL=y 490NEED_AES=y 491NEED_AES_OMAC1=y 492NEED_AES_ENCBLOCK=y 493NEED_AES_EAX=y 494endif 495 496ifdef CONFIG_EAP_AKA 497# EAP-AKA 498ifeq ($(CONFIG_EAP_AKA), dyn) 499L_CFLAGS += -DEAP_AKA_DYNAMIC 500EAPDYN += src/eap_peer/eap_aka.so 501else 502L_CFLAGS += -DEAP_AKA 503OBJS += src/eap_peer/eap_aka.c 504OBJS_h += src/eap_server/eap_server_aka.c 505endif 506CONFIG_IEEE8021X_EAPOL=y 507CONFIG_EAP_SIM_COMMON=y 508NEED_AES_CBC=y 509endif 510 511ifdef CONFIG_EAP_PROXY 512L_CFLAGS += -DCONFIG_EAP_PROXY 513OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c 514include eap_proxy_$(CONFIG_EAP_PROXY).mk 515CONFIG_IEEE8021X_EAPOL=y 516endif 517 518ifdef CONFIG_EAP_AKA_PRIME 519# EAP-AKA' 520ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 521L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 522else 523L_CFLAGS += -DEAP_AKA_PRIME 524endif 525NEED_SHA256=y 526endif 527 528ifdef CONFIG_EAP_SIM_COMMON 529OBJS += src/eap_common/eap_sim_common.c 530OBJS_h += src/eap_server/eap_sim_db.c 531NEED_AES=y 532NEED_FIPS186_2_PRF=y 533endif 534 535ifdef CONFIG_EAP_FAST 536# EAP-FAST 537ifeq ($(CONFIG_EAP_FAST), dyn) 538L_CFLAGS += -DEAP_FAST_DYNAMIC 539EAPDYN += src/eap_peer/eap_fast.so 540EAPDYN += src/eap_common/eap_fast_common.c 541else 542L_CFLAGS += -DEAP_FAST 543OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c 544OBJS += src/eap_common/eap_fast_common.c 545OBJS_h += src/eap_server/eap_server_fast.c 546endif 547TLS_FUNCS=y 548CONFIG_IEEE8021X_EAPOL=y 549NEED_T_PRF=y 550endif 551 552ifdef CONFIG_EAP_PAX 553# EAP-PAX 554ifeq ($(CONFIG_EAP_PAX), dyn) 555L_CFLAGS += -DEAP_PAX_DYNAMIC 556EAPDYN += src/eap_peer/eap_pax.so 557else 558L_CFLAGS += -DEAP_PAX 559OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c 560OBJS_h += src/eap_server/eap_server_pax.c 561endif 562CONFIG_IEEE8021X_EAPOL=y 563endif 564 565ifdef CONFIG_EAP_SAKE 566# EAP-SAKE 567ifeq ($(CONFIG_EAP_SAKE), dyn) 568L_CFLAGS += -DEAP_SAKE_DYNAMIC 569EAPDYN += src/eap_peer/eap_sake.so 570else 571L_CFLAGS += -DEAP_SAKE 572OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c 573OBJS_h += src/eap_server/eap_server_sake.c 574endif 575CONFIG_IEEE8021X_EAPOL=y 576endif 577 578ifdef CONFIG_EAP_GPSK 579# EAP-GPSK 580ifeq ($(CONFIG_EAP_GPSK), dyn) 581L_CFLAGS += -DEAP_GPSK_DYNAMIC 582EAPDYN += src/eap_peer/eap_gpsk.so 583else 584L_CFLAGS += -DEAP_GPSK 585OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c 586OBJS_h += src/eap_server/eap_server_gpsk.c 587endif 588CONFIG_IEEE8021X_EAPOL=y 589ifdef CONFIG_EAP_GPSK_SHA256 590L_CFLAGS += -DEAP_GPSK_SHA256 591endif 592NEED_SHA256=y 593NEED_AES_OMAC1=y 594endif 595 596ifdef CONFIG_EAP_PWD 597L_CFLAGS += -DEAP_PWD 598OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c 599OBJS_h += src/eap_server/eap_server_pwd.c 600CONFIG_IEEE8021X_EAPOL=y 601NEED_SHA256=y 602endif 603 604ifdef CONFIG_WPS 605ifdef CONFIG_WPS2 606L_CFLAGS += -DCONFIG_WPS2 607endif 608 609# EAP-WSC 610L_CFLAGS += -DCONFIG_WPS -DEAP_WSC 611OBJS += wps_supplicant.c 612OBJS += src/utils/uuid.c 613OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c 614OBJS += src/wps/wps.c 615OBJS += src/wps/wps_common.c 616OBJS += src/wps/wps_attr_parse.c 617OBJS += src/wps/wps_attr_build.c 618OBJS += src/wps/wps_attr_process.c 619OBJS += src/wps/wps_dev_attr.c 620OBJS += src/wps/wps_enrollee.c 621OBJS += src/wps/wps_registrar.c 622OBJS_h += src/eap_server/eap_server_wsc.c 623CONFIG_IEEE8021X_EAPOL=y 624NEED_DH_GROUPS=y 625NEED_SHA256=y 626NEED_BASE64=y 627NEED_80211_COMMON=y 628NEED_AES_CBC=y 629NEED_MODEXP=y 630 631ifdef CONFIG_WPS_NFC 632L_CFLAGS += -DCONFIG_WPS_NFC 633OBJS += src/wps/ndef.c 634NEED_WPS_OOB=y 635endif 636 637ifdef NEED_WPS_OOB 638L_CFLAGS += -DCONFIG_WPS_OOB 639endif 640 641ifdef CONFIG_WPS_ER 642CONFIG_WPS_UPNP=y 643L_CFLAGS += -DCONFIG_WPS_ER 644OBJS += src/wps/wps_er.c 645OBJS += src/wps/wps_er_ssdp.c 646endif 647 648ifdef CONFIG_WPS_UPNP 649L_CFLAGS += -DCONFIG_WPS_UPNP 650OBJS += src/wps/wps_upnp.c 651OBJS += src/wps/wps_upnp_ssdp.c 652OBJS += src/wps/wps_upnp_web.c 653OBJS += src/wps/wps_upnp_event.c 654OBJS += src/wps/wps_upnp_ap.c 655OBJS += src/wps/upnp_xml.c 656OBJS += src/wps/httpread.c 657OBJS += src/wps/http_client.c 658OBJS += src/wps/http_server.c 659endif 660 661ifdef CONFIG_WPS_STRICT 662L_CFLAGS += -DCONFIG_WPS_STRICT 663OBJS += src/wps/wps_validate.c 664endif 665 666ifdef CONFIG_WPS_TESTING 667L_CFLAGS += -DCONFIG_WPS_TESTING 668endif 669 670ifdef CONFIG_WPS_REG_DISABLE_OPEN 671L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 672endif 673 674endif 675 676ifdef CONFIG_EAP_IKEV2 677# EAP-IKEv2 678ifeq ($(CONFIG_EAP_IKEV2), dyn) 679L_CFLAGS += -DEAP_IKEV2_DYNAMIC 680EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c 681EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 682else 683L_CFLAGS += -DEAP_IKEV2 684OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c 685OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 686OBJS_h += src/eap_server/eap_server_ikev2.c 687OBJS_h += src/eap_server/ikev2.c 688endif 689CONFIG_IEEE8021X_EAPOL=y 690NEED_DH_GROUPS=y 691NEED_DH_GROUPS_ALL=y 692NEED_MODEXP=y 693NEED_CIPHER=y 694endif 695 696ifdef CONFIG_EAP_VENDOR_TEST 697ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 698L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 699EAPDYN += src/eap_peer/eap_vendor_test.so 700else 701L_CFLAGS += -DEAP_VENDOR_TEST 702OBJS += src/eap_peer/eap_vendor_test.c 703OBJS_h += src/eap_server/eap_server_vendor_test.c 704endif 705CONFIG_IEEE8021X_EAPOL=y 706endif 707 708ifdef CONFIG_EAP_TNC 709# EAP-TNC 710L_CFLAGS += -DEAP_TNC 711OBJS += src/eap_peer/eap_tnc.c 712OBJS += src/eap_peer/tncc.c 713OBJS_h += src/eap_server/eap_server_tnc.c 714OBJS_h += src/eap_server/tncs.c 715NEED_BASE64=y 716ifndef CONFIG_NATIVE_WINDOWS 717ifndef CONFIG_DRIVER_BSD 718LIBS += -ldl 719endif 720endif 721endif 722 723ifdef CONFIG_IEEE8021X_EAPOL 724# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 725L_CFLAGS += -DIEEE8021X_EAPOL 726OBJS += src/eapol_supp/eapol_supp_sm.c 727OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c 728NEED_EAP_COMMON=y 729ifdef CONFIG_DYNAMIC_EAP_METHODS 730L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 731LIBS += -ldl -rdynamic 732endif 733endif 734 735ifdef CONFIG_AP 736NEED_80211_COMMON=y 737NEED_EAP_COMMON=y 738NEED_RSN_AUTHENTICATOR=y 739L_CFLAGS += -DCONFIG_AP 740OBJS += ap.c 741L_CFLAGS += -DCONFIG_NO_RADIUS 742L_CFLAGS += -DCONFIG_NO_ACCOUNTING 743L_CFLAGS += -DCONFIG_NO_VLAN 744OBJS += src/ap/hostapd.c 745OBJS += src/ap/wpa_auth_glue.c 746OBJS += src/ap/utils.c 747OBJS += src/ap/authsrv.c 748OBJS += src/ap/ap_config.c 749OBJS += src/utils/ip_addr.c 750OBJS += src/ap/sta_info.c 751OBJS += src/ap/tkip_countermeasures.c 752OBJS += src/ap/ap_mlme.c 753OBJS += src/ap/ieee802_1x.c 754OBJS += src/eapol_auth/eapol_auth_sm.c 755OBJS += src/ap/ieee802_11_auth.c 756OBJS += src/ap/ieee802_11_shared.c 757OBJS += src/ap/drv_callbacks.c 758OBJS += src/ap/ap_drv_ops.c 759OBJS += src/ap/beacon.c 760OBJS += src/ap/eap_user_db.c 761ifdef CONFIG_IEEE80211N 762OBJS += src/ap/ieee802_11_ht.c 763endif 764ifdef CONFIG_WNM 765OBJS += src/ap/wnm_ap.c 766endif 767ifdef CONFIG_CTRL_IFACE 768OBJS += src/ap/ctrl_iface_ap.c 769endif 770 771L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 772OBJS += src/eap_server/eap_server.c 773OBJS += src/eap_server/eap_server_identity.c 774OBJS += src/eap_server/eap_server_methods.c 775 776ifdef CONFIG_IEEE80211N 777L_CFLAGS += -DCONFIG_IEEE80211N 778endif 779 780ifdef NEED_AP_MLME 781OBJS += src/ap/wmm.c 782OBJS += src/ap/ap_list.c 783OBJS += src/ap/ieee802_11.c 784OBJS += src/ap/hw_features.c 785L_CFLAGS += -DNEED_AP_MLME 786endif 787ifdef CONFIG_WPS 788L_CFLAGS += -DEAP_SERVER_WSC 789OBJS += src/ap/wps_hostapd.c 790OBJS += src/eap_server/eap_server_wsc.c 791endif 792ifdef CONFIG_INTERWORKING 793OBJS += src/ap/gas_serv.c 794endif 795ifdef CONFIG_HS20 796OBJS += src/ap/hs20.c 797endif 798endif 799 800ifdef NEED_RSN_AUTHENTICATOR 801L_CFLAGS += -DCONFIG_NO_RADIUS 802NEED_AES_WRAP=y 803OBJS += src/ap/wpa_auth.c 804OBJS += src/ap/wpa_auth_ie.c 805OBJS += src/ap/pmksa_cache_auth.c 806ifdef CONFIG_IEEE80211R 807OBJS += src/ap/wpa_auth_ft.c 808endif 809ifdef CONFIG_PEERKEY 810OBJS += src/ap/peerkey_auth.c 811endif 812endif 813 814ifdef CONFIG_EAP_SERVER 815L_CFLAGS += -DEAP_SERVER 816OBJS_h += src/eap_server/eap_server.c 817OBJS_h += src/eap_server/eap_server_identity.c 818OBJS_h += src/eap_server/eap_server_methods.c 819endif 820 821ifdef CONFIG_RADIUS_CLIENT 822OBJS_h += src/utils/ip_addr.c 823OBJS_h += src/radius/radius.c 824OBJS_h += src/radius/radius_client.c 825endif 826 827ifdef CONFIG_AUTHENTICATOR 828OBJS_h += src/eapol_auth/eapol_auth_sm.c 829OBJS_h += src/ap/ieee802_1x.c 830endif 831 832ifdef CONFIG_WPA_AUTHENTICATOR 833OBJS_h += src/ap/wpa_auth.c 834OBJS_h += src/ap/wpa_auth_ie.c 835OBJS_h += src/ap/pmksa_cache_auth.c 836ifdef CONFIG_IEEE80211R 837OBJS_h += src/ap/wpa_auth_ft.c 838endif 839ifdef CONFIG_PEERKEY 840OBJS_h += src/ap/peerkey_auth.c 841endif 842endif 843 844ifdef CONFIG_PCSC 845# PC/SC interface for smartcards (USIM, GSM SIM) 846L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 847OBJS += src/utils/pcsc_funcs.c 848# -lpthread may not be needed depending on how pcsc-lite was configured 849ifdef CONFIG_NATIVE_WINDOWS 850#Once MinGW gets support for WinScard, -lwinscard could be used instead of the 851#dynamic symbol loading that is now used in pcsc_funcs.c 852#LIBS += -lwinscard 853else 854LIBS += -lpcsclite -lpthread 855endif 856endif 857 858ifdef CONFIG_SIM_SIMULATOR 859L_CFLAGS += -DCONFIG_SIM_SIMULATOR 860NEED_MILENAGE=y 861endif 862 863ifdef CONFIG_USIM_SIMULATOR 864L_CFLAGS += -DCONFIG_USIM_SIMULATOR 865NEED_MILENAGE=y 866endif 867 868ifdef NEED_MILENAGE 869OBJS += src/crypto/milenage.c 870NEED_AES_ENCBLOCK=y 871endif 872 873ifdef CONFIG_PKCS12 874L_CFLAGS += -DPKCS12_FUNCS 875endif 876 877ifdef CONFIG_SMARTCARD 878L_CFLAGS += -DCONFIG_SMARTCARD 879endif 880 881ifdef MS_FUNCS 882OBJS += src/crypto/ms_funcs.c 883NEED_DES=y 884NEED_MD4=y 885endif 886 887ifdef CHAP 888OBJS += src/eap_common/chap.c 889endif 890 891ifdef TLS_FUNCS 892NEED_DES=y 893# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST) 894OBJS += src/eap_peer/eap_tls_common.c 895OBJS_h += src/eap_server/eap_server_tls_common.c 896ifndef CONFIG_FIPS 897NEED_TLS_PRF=y 898NEED_SHA1=y 899NEED_MD5=y 900endif 901endif 902 903ifndef CONFIG_TLS 904CONFIG_TLS=openssl 905endif 906 907ifdef CONFIG_TLSV11 908L_CFLAGS += -DCONFIG_TLSV11 909endif 910 911ifdef CONFIG_TLSV12 912L_CFLAGS += -DCONFIG_TLSV12 913NEED_SHA256=y 914endif 915 916ifeq ($(CONFIG_TLS), openssl) 917ifdef TLS_FUNCS 918L_CFLAGS += -DEAP_TLS_OPENSSL 919OBJS += src/crypto/tls_openssl.c 920LIBS += -lssl 921endif 922OBJS += src/crypto/crypto_openssl.c 923OBJS_p += src/crypto/crypto_openssl.c 924ifdef NEED_FIPS186_2_PRF 925OBJS += src/crypto/fips_prf_openssl.c 926endif 927LIBS += -lcrypto 928LIBS_p += -lcrypto 929ifdef CONFIG_TLS_ADD_DL 930LIBS += -ldl 931LIBS_p += -ldl 932endif 933endif 934 935ifeq ($(CONFIG_TLS), gnutls) 936ifdef TLS_FUNCS 937OBJS += src/crypto/tls_gnutls.c 938LIBS += -lgnutls -lgpg-error 939endif 940OBJS += src/crypto/crypto_gnutls.c 941OBJS_p += src/crypto/crypto_gnutls.c 942ifdef NEED_FIPS186_2_PRF 943OBJS += src/crypto/fips_prf_gnutls.c 944endif 945LIBS += -lgcrypt 946LIBS_p += -lgcrypt 947CONFIG_INTERNAL_SHA256=y 948CONFIG_INTERNAL_RC4=y 949CONFIG_INTERNAL_DH_GROUP5=y 950endif 951 952ifeq ($(CONFIG_TLS), schannel) 953ifdef TLS_FUNCS 954OBJS += src/crypto/tls_schannel.c 955endif 956OBJS += src/crypto/crypto_cryptoapi.c 957OBJS_p += src/crypto/crypto_cryptoapi.c 958ifdef NEED_FIPS186_2_PRF 959OBJS += src/crypto/fips_prf_cryptoapi.c 960endif 961CONFIG_INTERNAL_SHA256=y 962CONFIG_INTERNAL_RC4=y 963CONFIG_INTERNAL_DH_GROUP5=y 964endif 965 966ifeq ($(CONFIG_TLS), nss) 967ifdef TLS_FUNCS 968OBJS += src/crypto/tls_nss.c 969LIBS += -lssl3 970endif 971OBJS += src/crypto/crypto_nss.c 972OBJS_p += src/crypto/crypto_nss.c 973ifdef NEED_FIPS186_2_PRF 974OBJS += src/crypto/fips_prf_nss.c 975endif 976LIBS += -lnss3 977LIBS_p += -lnss3 978CONFIG_INTERNAL_MD4=y 979CONFIG_INTERNAL_DH_GROUP5=y 980endif 981 982ifeq ($(CONFIG_TLS), internal) 983ifndef CONFIG_CRYPTO 984CONFIG_CRYPTO=internal 985endif 986ifdef TLS_FUNCS 987OBJS += src/crypto/crypto_internal-rsa.c 988OBJS += src/crypto/tls_internal.c 989OBJS += src/tls/tlsv1_common.c 990OBJS += src/tls/tlsv1_record.c 991OBJS += src/tls/tlsv1_cred.c 992OBJS += src/tls/tlsv1_client.c 993OBJS += src/tls/tlsv1_client_write.c 994OBJS += src/tls/tlsv1_client_read.c 995OBJS += src/tls/asn1.c 996OBJS += src/tls/rsa.c 997OBJS += src/tls/x509v3.c 998OBJS += src/tls/pkcs1.c 999OBJS += src/tls/pkcs5.c 1000OBJS += src/tls/pkcs8.c 1001NEED_SHA256=y 1002NEED_BASE64=y 1003NEED_TLS_PRF=y 1004ifdef CONFIG_TLSV12 1005NEED_TLS_PRF_SHA256=y 1006endif 1007NEED_MODEXP=y 1008NEED_CIPHER=y 1009L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1010endif 1011ifdef NEED_CIPHER 1012NEED_DES=y 1013OBJS += src/crypto/crypto_internal-cipher.c 1014endif 1015ifdef NEED_MODEXP 1016OBJS += src/crypto/crypto_internal-modexp.c 1017OBJS += src/tls/bignum.c 1018endif 1019ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1020OBJS += src/crypto/crypto_libtomcrypt.c 1021OBJS_p += src/crypto/crypto_libtomcrypt.c 1022LIBS += -ltomcrypt -ltfm 1023LIBS_p += -ltomcrypt -ltfm 1024CONFIG_INTERNAL_SHA256=y 1025CONFIG_INTERNAL_RC4=y 1026CONFIG_INTERNAL_DH_GROUP5=y 1027endif 1028ifeq ($(CONFIG_CRYPTO), internal) 1029OBJS += src/crypto/crypto_internal.c 1030OBJS_p += src/crypto/crypto_internal.c 1031NEED_AES_ENC=y 1032L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 1033ifdef CONFIG_INTERNAL_LIBTOMMATH 1034L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1035ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 1036L_CFLAGS += -DLTM_FAST 1037endif 1038else 1039LIBS += -ltommath 1040LIBS_p += -ltommath 1041endif 1042CONFIG_INTERNAL_AES=y 1043CONFIG_INTERNAL_DES=y 1044CONFIG_INTERNAL_SHA1=y 1045CONFIG_INTERNAL_MD4=y 1046CONFIG_INTERNAL_MD5=y 1047CONFIG_INTERNAL_SHA256=y 1048CONFIG_INTERNAL_RC4=y 1049CONFIG_INTERNAL_DH_GROUP5=y 1050endif 1051ifeq ($(CONFIG_CRYPTO), cryptoapi) 1052OBJS += src/crypto/crypto_cryptoapi.c 1053OBJS_p += src/crypto/crypto_cryptoapi.c 1054L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 1055CONFIG_INTERNAL_SHA256=y 1056CONFIG_INTERNAL_RC4=y 1057endif 1058endif 1059 1060ifeq ($(CONFIG_TLS), none) 1061ifdef TLS_FUNCS 1062OBJS += src/crypto/tls_none.c 1063L_CFLAGS += -DEAP_TLS_NONE 1064CONFIG_INTERNAL_AES=y 1065CONFIG_INTERNAL_SHA1=y 1066CONFIG_INTERNAL_MD5=y 1067endif 1068OBJS += src/crypto/crypto_none.c 1069OBJS_p += src/crypto/crypto_none.c 1070CONFIG_INTERNAL_SHA256=y 1071CONFIG_INTERNAL_RC4=y 1072endif 1073 1074ifdef TLS_FUNCS 1075ifdef CONFIG_SMARTCARD 1076ifndef CONFIG_NATIVE_WINDOWS 1077ifneq ($(CONFIG_L2_PACKET), freebsd) 1078LIBS += -ldl 1079endif 1080endif 1081endif 1082endif 1083 1084ifndef TLS_FUNCS 1085OBJS += src/crypto/tls_none.c 1086ifeq ($(CONFIG_TLS), internal) 1087CONFIG_INTERNAL_AES=y 1088CONFIG_INTERNAL_SHA1=y 1089CONFIG_INTERNAL_MD5=y 1090CONFIG_INTERNAL_RC4=y 1091endif 1092endif 1093 1094AESOBJS = # none so far (see below) 1095ifdef CONFIG_INTERNAL_AES 1096AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c 1097endif 1098 1099AESOBJS += src/crypto/aes-unwrap.c 1100ifdef NEED_AES_EAX 1101AESOBJS += src/crypto/aes-eax.c 1102NEED_AES_CTR=y 1103endif 1104ifdef NEED_AES_CTR 1105AESOBJS += src/crypto/aes-ctr.c 1106endif 1107ifdef NEED_AES_ENCBLOCK 1108AESOBJS += src/crypto/aes-encblock.c 1109endif 1110ifdef NEED_AES_OMAC1 1111NEED_AES_ENC=y 1112ifdef CONFIG_OPENSSL_CMAC 1113CFLAGS += -DCONFIG_OPENSSL_CMAC 1114else 1115AESOBJS += src/crypto/aes-omac1.c 1116endif 1117endif 1118ifdef NEED_AES_WRAP 1119NEED_AES_ENC=y 1120AESOBJS += src/crypto/aes-wrap.c 1121endif 1122ifdef NEED_AES_CBC 1123NEED_AES_ENC=y 1124AESOBJS += src/crypto/aes-cbc.c 1125endif 1126ifdef NEED_AES_ENC 1127ifdef CONFIG_INTERNAL_AES 1128AESOBJS += src/crypto/aes-internal-enc.c 1129endif 1130endif 1131ifdef NEED_AES 1132OBJS += $(AESOBJS) 1133endif 1134 1135SHA1OBJS = 1136ifdef NEED_SHA1 1137ifneq ($(CONFIG_TLS), openssl) 1138SHA1OBJS += src/crypto/sha1.c 1139endif 1140SHA1OBJS += src/crypto/sha1-prf.c 1141ifdef CONFIG_INTERNAL_SHA1 1142SHA1OBJS += src/crypto/sha1-internal.c 1143ifdef NEED_FIPS186_2_PRF 1144SHA1OBJS += src/crypto/fips_prf_internal.c 1145endif 1146endif 1147ifdef CONFIG_NO_WPA_PASSPHRASE 1148L_CFLAGS += -DCONFIG_NO_PBKDF2 1149else 1150ifneq ($(CONFIG_TLS), openssl) 1151SHA1OBJS += src/crypto/sha1-pbkdf2.c 1152endif 1153endif 1154ifdef NEED_T_PRF 1155SHA1OBJS += src/crypto/sha1-tprf.c 1156endif 1157ifdef NEED_TLS_PRF 1158SHA1OBJS += src/crypto/sha1-tlsprf.c 1159endif 1160endif 1161 1162MD5OBJS = src/crypto/md5.c 1163ifdef NEED_MD5 1164ifdef CONFIG_INTERNAL_MD5 1165MD5OBJS += src/crypto/md5-internal.c 1166endif 1167OBJS += $(MD5OBJS) 1168OBJS_p += $(MD5OBJS) 1169endif 1170 1171ifdef NEED_MD4 1172ifdef CONFIG_INTERNAL_MD4 1173OBJS += src/crypto/md4-internal.c 1174endif 1175endif 1176 1177DESOBJS = # none needed when not internal 1178ifdef NEED_DES 1179ifdef CONFIG_INTERNAL_DES 1180DESOBJS += src/crypto/des-internal.c 1181endif 1182endif 1183 1184ifdef NEED_RC4 1185ifdef CONFIG_INTERNAL_RC4 1186OBJS += src/crypto/rc4.c 1187endif 1188endif 1189 1190SHA256OBJS = # none by default 1191ifdef NEED_SHA256 1192L_CFLAGS += -DCONFIG_SHA256 1193ifneq ($(CONFIG_TLS), openssl) 1194SHA256OBJS += src/crypto/sha256.c 1195endif 1196SHA256OBJS += src/crypto/sha256-prf.c 1197ifdef CONFIG_INTERNAL_SHA256 1198SHA256OBJS += src/crypto/sha256-internal.c 1199endif 1200ifdef NEED_TLS_PRF_SHA256 1201SHA256OBJS += src/crypto/sha256-tlsprf.c 1202endif 1203OBJS += $(SHA256OBJS) 1204endif 1205 1206ifdef NEED_DH_GROUPS 1207OBJS += src/crypto/dh_groups.c 1208endif 1209ifdef NEED_DH_GROUPS_ALL 1210L_CFLAGS += -DALL_DH_GROUPS 1211endif 1212ifdef CONFIG_INTERNAL_DH_GROUP5 1213ifdef NEED_DH_GROUPS 1214OBJS += src/crypto/dh_group5.c 1215endif 1216endif 1217 1218ifdef NEED_ECC 1219L_CFLAGS += -DCONFIG_ECC 1220endif 1221 1222ifdef CONFIG_NO_RANDOM_POOL 1223L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 1224else 1225OBJS += src/crypto/random.c 1226endif 1227 1228ifdef CONFIG_CTRL_IFACE 1229ifeq ($(CONFIG_CTRL_IFACE), y) 1230ifdef CONFIG_NATIVE_WINDOWS 1231CONFIG_CTRL_IFACE=named_pipe 1232else 1233CONFIG_CTRL_IFACE=unix 1234endif 1235endif 1236L_CFLAGS += -DCONFIG_CTRL_IFACE 1237ifeq ($(CONFIG_CTRL_IFACE), unix) 1238L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1239endif 1240ifeq ($(CONFIG_CTRL_IFACE), udp) 1241L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1242endif 1243ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1244L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1245endif 1246ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 1247CONFIG_CTRL_IFACE=udp 1248L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1249L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1250endif 1251OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c 1252endif 1253 1254ifdef CONFIG_CTRL_IFACE_DBUS 1255DBUS=y 1256DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE 1257DBUS_OBJS += dbus/dbus_old.c dbus/dbus_old_handlers.c 1258ifdef CONFIG_WPS 1259DBUS_OBJS += dbus/dbus_old_handlers_wps.c 1260endif 1261DBUS_OBJS += dbus/dbus_dict_helpers.c 1262ifndef DBUS_LIBS 1263DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1264endif 1265ifndef DBUS_INCLUDE 1266DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1267endif 1268DBUS_CFLAGS += $(DBUS_INCLUDE) 1269endif 1270 1271ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1272DBUS=y 1273DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1274DBUS_OBJS ?= dbus/dbus_dict_helpers.c 1275DBUS_OBJS += dbus/dbus_new_helpers.c 1276DBUS_OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c 1277ifdef CONFIG_WPS 1278DBUS_OBJS += dbus/dbus_new_handlers_wps.c 1279endif 1280ifdef CONFIG_P2P 1281DBUS_OBJS += dbus/dbus_new_handlers_p2p.c 1282endif 1283ifndef DBUS_LIBS 1284DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1285endif 1286ifndef DBUS_INCLUDE 1287DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1288endif 1289ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1290DBUS_OBJS += dbus/dbus_new_introspect.c 1291DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1292endif 1293DBUS_CFLAGS += $(DBUS_INCLUDE) 1294endif 1295 1296ifdef DBUS 1297DBUS_CFLAGS += -DCONFIG_DBUS 1298DBUS_OBJS += dbus/dbus_common.c 1299endif 1300 1301OBJS += $(DBUS_OBJS) 1302L_CFLAGS += $(DBUS_CFLAGS) 1303LIBS += $(DBUS_LIBS) 1304 1305ifdef CONFIG_READLINE 1306OBJS_c += src/utils/edit_readline.c 1307LIBS_c += -lncurses -lreadline 1308else 1309ifdef CONFIG_WPA_CLI_EDIT 1310OBJS_c += src/utils/edit.c 1311else 1312OBJS_c += src/utils/edit_simple.c 1313endif 1314endif 1315 1316ifdef CONFIG_NATIVE_WINDOWS 1317L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 1318LIBS += -lws2_32 -lgdi32 -lcrypt32 1319LIBS_c += -lws2_32 1320LIBS_p += -lws2_32 -lgdi32 1321ifeq ($(CONFIG_CRYPTO), cryptoapi) 1322LIBS_p += -lcrypt32 1323endif 1324endif 1325 1326ifdef CONFIG_NO_STDOUT_DEBUG 1327L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1328ifndef CONFIG_CTRL_IFACE 1329L_CFLAGS += -DCONFIG_NO_WPA_MSG 1330endif 1331endif 1332 1333ifdef CONFIG_ANDROID_LOG 1334L_CFLAGS += -DCONFIG_ANDROID_LOG 1335endif 1336 1337ifdef CONFIG_IPV6 1338# for eapol_test only 1339L_CFLAGS += -DCONFIG_IPV6 1340endif 1341 1342ifdef NEED_BASE64 1343OBJS += src/utils/base64.c 1344endif 1345 1346ifdef NEED_SME 1347NEED_80211_COMMON=y 1348OBJS += sme.c 1349L_CFLAGS += -DCONFIG_SME 1350endif 1351 1352ifdef NEED_80211_COMMON 1353OBJS += src/common/ieee802_11_common.c 1354endif 1355 1356ifdef NEED_EAP_COMMON 1357OBJS += src/eap_common/eap_common.c 1358endif 1359 1360ifndef CONFIG_MAIN 1361CONFIG_MAIN=main 1362endif 1363 1364ifdef CONFIG_DEBUG_SYSLOG 1365L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 1366ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1367L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1368endif 1369endif 1370 1371ifdef CONFIG_DEBUG_LINUX_TRACING 1372L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1373endif 1374 1375ifdef CONFIG_DEBUG_FILE 1376L_CFLAGS += -DCONFIG_DEBUG_FILE 1377endif 1378 1379ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1380L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1381endif 1382 1383ifdef CONFIG_FIPS 1384L_CFLAGS += -DCONFIG_FIPS 1385endif 1386 1387OBJS += $(SHA1OBJS) $(DESOBJS) 1388 1389OBJS_p += $(SHA1OBJS) 1390OBJS_p += $(SHA256OBJS) 1391 1392ifdef CONFIG_BGSCAN_SIMPLE 1393L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1394OBJS += bgscan_simple.c 1395NEED_BGSCAN=y 1396endif 1397 1398ifdef CONFIG_BGSCAN_LEARN 1399L_CFLAGS += -DCONFIG_BGSCAN_LEARN 1400OBJS += bgscan_learn.c 1401NEED_BGSCAN=y 1402endif 1403 1404ifdef NEED_BGSCAN 1405L_CFLAGS += -DCONFIG_BGSCAN 1406OBJS += bgscan.c 1407endif 1408 1409ifdef CONFIG_AUTOSCAN_EXPONENTIAL 1410L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL 1411OBJS += autoscan_exponential.c 1412NEED_AUTOSCAN=y 1413endif 1414 1415ifdef CONFIG_AUTOSCAN_PERIODIC 1416CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC 1417OBJS += autoscan_periodic.c 1418NEED_AUTOSCAN=y 1419endif 1420 1421ifdef NEED_AUTOSCAN 1422L_CFLAGS += -DCONFIG_AUTOSCAN 1423OBJS += autoscan.c 1424endif 1425 1426ifdef CONFIG_EXT_PASSWORD_TEST 1427OBJS += src/utils/ext_password_test.c 1428L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST 1429NEED_EXT_PASSWORD=y 1430endif 1431 1432ifdef NEED_EXT_PASSWORD 1433OBJS += src/utils/ext_password.c 1434L_CFLAGS += -DCONFIG_EXT_PASSWORD 1435endif 1436 1437ifdef NEED_GAS 1438OBJS += src/common/gas.c 1439OBJS += gas_query.c 1440L_CFLAGS += -DCONFIG_GAS 1441NEED_OFFCHANNEL=y 1442endif 1443 1444ifdef NEED_OFFCHANNEL 1445OBJS += offchannel.c 1446L_CFLAGS += -DCONFIG_OFFCHANNEL 1447endif 1448 1449OBJS += src/drivers/driver_common.c 1450 1451OBJS_wpa_rm := ctrl_iface.c ctrl_iface_unix.c 1452OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.c 1453ifdef CONFIG_AUTHENTICATOR 1454OBJS_wpa += tests/link_test.c 1455endif 1456OBJS_wpa += $(OBJS_l2) 1457OBJS += wpa_supplicant.c events.c blacklist.c wpas_glue.c scan.c 1458OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c 1459OBJS_t += src/radius/radius_client.c 1460OBJS_t += src/radius/radius.c 1461ifndef CONFIG_AP 1462OBJS_t += src/utils/ip_addr.c 1463endif 1464OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c 1465OBJS += $(CONFIG_MAIN).c 1466 1467ifdef CONFIG_PRIVSEP 1468OBJS_priv += $(OBJS_d) src/drivers/drivers.c 1469OBJS_priv += $(OBJS_l2) 1470OBJS_priv += src/utils/os_$(CONFIG_OS).c 1471OBJS_priv += src/utils/$(CONFIG_ELOOP).c 1472OBJS_priv += src/utils/common.c 1473OBJS_priv += src/utils/wpa_debug.c 1474OBJS_priv += src/utils/wpabuf.c 1475OBJS_priv += wpa_priv.c 1476ifdef CONFIG_DRIVER_NL80211 1477OBJS_priv += src/common/ieee802_11_common.c 1478endif 1479ifdef CONFIG_DRIVER_TEST 1480OBJS_priv += $(SHA1OBJS) 1481OBJS_priv += $(MD5OBJS) 1482ifeq ($(CONFIG_TLS), openssl) 1483OBJS_priv += src/crypto/crypto_openssl.c 1484endif 1485ifeq ($(CONFIG_TLS), gnutls) 1486OBJS_priv += src/crypto/crypto_gnutls.c 1487endif 1488ifeq ($(CONFIG_TLS), nss) 1489OBJS_priv += src/crypto/crypto_nss.c 1490endif 1491ifeq ($(CONFIG_TLS), internal) 1492ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1493OBJS_priv += src/crypto/crypto_libtomcrypt.c 1494else 1495OBJS_priv += src/crypto/crypto_internal.c 1496endif 1497endif 1498endif # CONFIG_DRIVER_TEST 1499OBJS += src/l2_packet/l2_packet_privsep.c 1500OBJS += src/drivers/driver_privsep.c 1501EXTRA_progs += wpa_priv 1502else 1503OBJS += $(OBJS_d) src/drivers/drivers.c 1504OBJS += $(OBJS_l2) 1505endif 1506 1507ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1508L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1509OBJS += src/drivers/ndis_events.c 1510EXTRALIBS += -loleaut32 -lole32 -luuid 1511ifdef PLATFORMSDKLIB 1512EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1513else 1514EXTRALIBS += WbemUuid.Lib 1515endif 1516endif 1517 1518ifndef LDO 1519LDO=$(CC) 1520endif 1521 1522######################## 1523 1524include $(CLEAR_VARS) 1525LOCAL_MODULE := wpa_cli 1526LOCAL_MODULE_TAGS := debug 1527LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1528LOCAL_CFLAGS := $(L_CFLAGS) 1529LOCAL_SRC_FILES := $(OBJS_c) 1530LOCAL_C_INCLUDES := $(INCLUDES) 1531include $(BUILD_EXECUTABLE) 1532 1533######################## 1534include $(CLEAR_VARS) 1535LOCAL_MODULE := wpa_supplicant 1536ifdef CONFIG_DRIVER_CUSTOM 1537LOCAL_STATIC_LIBRARIES := libCustomWifi 1538endif 1539ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),) 1540LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB) 1541endif 1542LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1543ifeq ($(CONFIG_TLS), openssl) 1544LOCAL_SHARED_LIBRARIES += libcrypto libssl libkeystore_binder 1545endif 1546ifdef CONFIG_DRIVER_NL80211 1547LOCAL_STATIC_LIBRARIES += libnl_2 1548endif 1549LOCAL_CFLAGS := $(L_CFLAGS) 1550LOCAL_SRC_FILES := $(OBJS) 1551LOCAL_C_INCLUDES := $(INCLUDES) 1552include $(BUILD_EXECUTABLE) 1553 1554######################## 1555# 1556#include $(CLEAR_VARS) 1557#LOCAL_MODULE := eapol_test 1558#ifdef CONFIG_DRIVER_CUSTOM 1559#LOCAL_STATIC_LIBRARIES := libCustomWifi 1560#endif 1561#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl 1562#LOCAL_CFLAGS := $(L_CFLAGS) 1563#LOCAL_SRC_FILES := $(OBJS_t) 1564#LOCAL_C_INCLUDES := $(INCLUDES) 1565#include $(BUILD_EXECUTABLE) 1566# 1567######################## 1568# 1569#local_target_dir := $(TARGET_OUT)/etc/wifi 1570# 1571#include $(CLEAR_VARS) 1572#LOCAL_MODULE := wpa_supplicant.conf 1573#LOCAL_MODULE_CLASS := ETC 1574#LOCAL_MODULE_PATH := $(local_target_dir) 1575#LOCAL_SRC_FILES := $(LOCAL_MODULE) 1576#include $(BUILD_PREBUILT) 1577# 1578######################## 1579 1580include $(CLEAR_VARS) 1581LOCAL_MODULE = libwpa_client 1582LOCAL_CFLAGS = $(L_CFLAGS) 1583LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 1584LOCAL_C_INCLUDES = $(INCLUDES) 1585LOCAL_SHARED_LIBRARIES := libcutils liblog 1586LOCAL_COPY_HEADERS_TO := libwpa_client 1587LOCAL_COPY_HEADERS := src/common/wpa_ctrl.h 1588include $(BUILD_SHARED_LIBRARY) 1589