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