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