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