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