Android.mk revision 13970b010f3e5b274336677311a5586410ecc8fa
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 += system/core/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 1048ifdef CONFIG_NO_WPA_PASSPHRASE 1049L_CFLAGS += -DCONFIG_NO_PBKDF2 1050else 1051SHA1OBJS += src/crypto/sha1-pbkdf2.c 1052endif 1053ifdef NEED_T_PRF 1054SHA1OBJS += src/crypto/sha1-tprf.c 1055endif 1056ifdef NEED_TLS_PRF 1057SHA1OBJS += src/crypto/sha1-tlsprf.c 1058endif 1059endif 1060 1061MD5OBJS = src/crypto/md5.c 1062ifdef NEED_MD5 1063ifdef CONFIG_INTERNAL_MD5 1064MD5OBJS += src/crypto/md5-internal.c 1065endif 1066ifdef CONFIG_FIPS 1067MD5OBJS += src/crypto/md5-non-fips.c 1068endif 1069OBJS += $(MD5OBJS) 1070OBJS_p += $(MD5OBJS) 1071endif 1072 1073ifdef NEED_MD4 1074ifdef CONFIG_INTERNAL_MD4 1075OBJS += src/crypto/md4-internal.c 1076endif 1077endif 1078 1079DESOBJS = # none needed when not internal 1080ifdef NEED_DES 1081ifdef CONFIG_INTERNAL_DES 1082DESOBJS += src/crypto/des-internal.c 1083endif 1084endif 1085 1086ifdef NEED_RC4 1087ifdef CONFIG_INTERNAL_RC4 1088OBJS += src/crypto/rc4.c 1089endif 1090endif 1091 1092SHA256OBJS = # none by default 1093ifdef NEED_SHA256 1094L_CFLAGS += -DCONFIG_SHA256 1095SHA256OBJS += src/crypto/sha256.c 1096ifdef CONFIG_INTERNAL_SHA256 1097SHA256OBJS += src/crypto/sha256-internal.c 1098endif 1099OBJS += $(SHA256OBJS) 1100endif 1101 1102ifdef NEED_DH_GROUPS 1103OBJS += src/crypto/dh_groups.c 1104endif 1105ifdef NEED_DH_GROUPS_ALL 1106L_CFLAGS += -DALL_DH_GROUPS 1107endif 1108ifdef CONFIG_INTERNAL_DH_GROUP5 1109ifdef NEED_DH_GROUPS 1110OBJS += src/crypto/dh_group5.c 1111endif 1112endif 1113 1114ifdef CONFIG_NO_RANDOM_POOL 1115L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 1116else 1117OBJS += src/crypto/random.c 1118endif 1119 1120ifdef CONFIG_CTRL_IFACE 1121ifeq ($(CONFIG_CTRL_IFACE), y) 1122ifdef CONFIG_NATIVE_WINDOWS 1123CONFIG_CTRL_IFACE=named_pipe 1124else 1125CONFIG_CTRL_IFACE=unix 1126endif 1127endif 1128L_CFLAGS += -DCONFIG_CTRL_IFACE 1129ifeq ($(CONFIG_CTRL_IFACE), unix) 1130L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1131endif 1132ifeq ($(CONFIG_CTRL_IFACE), udp) 1133L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1134endif 1135ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1136L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1137endif 1138OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c 1139endif 1140 1141ifdef CONFIG_CTRL_IFACE_DBUS 1142DBUS=y 1143DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE 1144DBUS_OBJS += dbus/dbus_old.c dbus/dbus_old_handlers.c 1145ifdef CONFIG_WPS 1146DBUS_OBJS += dbus/dbus_old_handlers_wps.c 1147endif 1148DBUS_OBJS += dbus/dbus_dict_helpers.c 1149ifndef DBUS_LIBS 1150DBUS_LIBS := $(shell pkg-config --libs dbus-1) 1151endif 1152ifndef DBUS_INCLUDE 1153DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1) 1154endif 1155dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1)) 1156DBUS_VERSION_MAJOR=$(word 1,$(dbus_version)) 1157DBUS_VERSION_MINOR=$(word 2,$(dbus_version)) 1158ifeq ($(DBUS_VERSION_MAJOR),) 1159DBUS_VERSION_MAJOR=0 1160endif 1161ifeq ($(DBUS_VERSION_MINOR),) 1162DBUS_VERSION_MINOR=0 1163endif 1164DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR) 1165DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR) 1166DBUS_CFLAGS += $(DBUS_INCLUDE) 1167endif 1168 1169ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1170DBUS=y 1171DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1172DBUS_OBJS ?= dbus/dbus_dict_helpers.c 1173DBUS_OBJS += dbus/dbus_new_helpers.c 1174DBUS_OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c 1175ifdef CONFIG_WPS 1176DBUS_OBJS += dbus/dbus_new_handlers_wps.c 1177endif 1178ifdef CONFIG_P2P 1179DBUS_OBJS += dbus/dbus_new_handlers_p2p.c 1180endif 1181ifndef DBUS_LIBS 1182DBUS_LIBS := $(shell pkg-config --libs dbus-1) 1183endif 1184ifndef DBUS_INCLUDE 1185DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1) 1186endif 1187ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1188DBUS_OBJS += dbus/dbus_new_introspect.c 1189DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1190endif 1191DBUS_CFLAGS += $(DBUS_INCLUDE) 1192endif 1193 1194ifdef DBUS 1195DBUS_CFLAGS += -DCONFIG_DBUS 1196DBUS_OBJS += dbus/dbus_common.c 1197endif 1198 1199OBJS += $(DBUS_OBJS) 1200L_CFLAGS += $(DBUS_CFLAGS) 1201LIBS += $(DBUS_LIBS) 1202 1203ifdef CONFIG_READLINE 1204OBJS_c += src/utils/edit_readline.c 1205LIBS_c += -lncurses -lreadline 1206else 1207ifdef CONFIG_WPA_CLI_EDIT 1208OBJS_c += src/utils/edit.c 1209else 1210OBJS_c += src/utils/edit_simple.c 1211endif 1212endif 1213 1214ifdef CONFIG_NATIVE_WINDOWS 1215L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 1216LIBS += -lws2_32 -lgdi32 -lcrypt32 1217LIBS_c += -lws2_32 1218LIBS_p += -lws2_32 -lgdi32 1219ifeq ($(CONFIG_CRYPTO), cryptoapi) 1220LIBS_p += -lcrypt32 1221endif 1222endif 1223 1224ifdef CONFIG_NO_STDOUT_DEBUG 1225L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1226ifndef CONFIG_CTRL_IFACE 1227L_CFLAGS += -DCONFIG_NO_WPA_MSG 1228endif 1229endif 1230 1231ifdef CONFIG_ANDROID_LOG 1232L_CFLAGS += -DCONFIG_ANDROID_LOG 1233endif 1234 1235ifdef CONFIG_IPV6 1236# for eapol_test only 1237L_CFLAGS += -DCONFIG_IPV6 1238endif 1239 1240ifdef NEED_BASE64 1241OBJS += src/utils/base64.c 1242endif 1243 1244ifdef NEED_SME 1245NEED_80211_COMMON=y 1246OBJS += sme.c 1247L_CFLAGS += -DCONFIG_SME 1248endif 1249 1250ifdef CONFIG_CLIENT_MLME 1251OBJS += mlme.c 1252L_CFLAGS += -DCONFIG_CLIENT_MLME 1253NEED_80211_COMMON=y 1254endif 1255 1256ifdef NEED_80211_COMMON 1257OBJS += src/common/ieee802_11_common.c 1258endif 1259 1260ifdef NEED_EAP_COMMON 1261OBJS += src/eap_common/eap_common.c 1262endif 1263 1264ifndef CONFIG_MAIN 1265CONFIG_MAIN=main 1266endif 1267 1268ifdef CONFIG_DEBUG_SYSLOG 1269L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 1270ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1271L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1272endif 1273endif 1274 1275ifdef CONFIG_DEBUG_FILE 1276L_CFLAGS += -DCONFIG_DEBUG_FILE 1277endif 1278 1279ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1280L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1281endif 1282 1283ifdef CONFIG_FIPS 1284L_CFLAGS += -DCONFIG_FIPS 1285endif 1286 1287OBJS += $(SHA1OBJS) $(DESOBJS) 1288 1289OBJS_p += $(SHA1OBJS) 1290 1291ifdef CONFIG_BGSCAN_SIMPLE 1292L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1293OBJS += bgscan_simple.c 1294NEED_BGSCAN=y 1295endif 1296 1297ifdef CONFIG_BGSCAN_LEARN 1298L_CFLAGS += -DCONFIG_BGSCAN_LEARN 1299OBJS += bgscan_learn.c 1300NEED_BGSCAN=y 1301endif 1302 1303ifdef NEED_BGSCAN 1304L_CFLAGS += -DCONFIG_BGSCAN 1305OBJS += bgscan.c 1306endif 1307 1308OBJS_wpa_rm := ctrl_iface.c mlme.c ctrl_iface_unix.c 1309OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.c 1310ifdef CONFIG_AUTHENTICATOR 1311OBJS_wpa += tests/link_test.c 1312endif 1313OBJS_wpa += $(OBJS_l2) 1314OBJS += wpa_supplicant.c events.c blacklist.c wpas_glue.c scan.c 1315OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c 1316OBJS_t += src/radius/radius_client.c 1317OBJS_t += src/radius/radius.c 1318ifndef CONFIG_AP 1319OBJS_t += src/utils/ip_addr.c 1320endif 1321OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c 1322OBJS += $(CONFIG_MAIN).c 1323 1324ifdef CONFIG_PRIVSEP 1325OBJS_priv += $(OBJS_d) src/drivers/drivers.c 1326OBJS_priv += $(OBJS_l2) 1327OBJS_priv += src/utils/os_$(CONFIG_OS).c 1328OBJS_priv += src/utils/$(CONFIG_ELOOP).c 1329OBJS_priv += src/utils/common.c 1330OBJS_priv += src/utils/wpa_debug.c 1331OBJS_priv += src/utils/wpabuf.c 1332OBJS_priv += wpa_priv.c 1333ifdef CONFIG_DRIVER_TEST 1334OBJS_priv += $(SHA1OBJS) 1335OBJS_priv += $(MD5OBJS) 1336ifeq ($(CONFIG_TLS), openssl) 1337OBJS_priv += src/crypto/crypto_openssl.c 1338endif 1339ifeq ($(CONFIG_TLS), gnutls) 1340OBJS_priv += src/crypto/crypto_gnutls.c 1341endif 1342ifeq ($(CONFIG_TLS), nss) 1343OBJS_priv += src/crypto/crypto_nss.c 1344endif 1345ifeq ($(CONFIG_TLS), internal) 1346ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1347OBJS_priv += src/crypto/crypto_libtomcrypt.c 1348else 1349OBJS_priv += src/crypto/crypto_internal.c 1350endif 1351endif 1352endif # CONFIG_DRIVER_TEST 1353OBJS += src/l2_packet/l2_packet_privsep.c 1354OBJS += src/drivers/driver_privsep.c 1355EXTRA_progs += wpa_priv 1356else 1357OBJS += $(OBJS_d) src/drivers/drivers.c 1358OBJS += $(OBJS_l2) 1359endif 1360 1361ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1362L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1363OBJS += src/drivers/ndis_events.c 1364EXTRALIBS += -loleaut32 -lole32 -luuid 1365ifdef PLATFORMSDKLIB 1366EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1367else 1368EXTRALIBS += WbemUuid.Lib 1369endif 1370endif 1371 1372ifndef LDO 1373LDO=$(CC) 1374endif 1375 1376######################## 1377 1378include $(CLEAR_VARS) 1379LOCAL_MODULE := wpa_cli 1380LOCAL_MODULE_TAGS := debug 1381LOCAL_SHARED_LIBRARIES := libc libcutils 1382LOCAL_CFLAGS := $(L_CFLAGS) 1383LOCAL_SRC_FILES := $(OBJS_c) 1384LOCAL_C_INCLUDES := $(INCLUDES) 1385include $(BUILD_EXECUTABLE) 1386 1387######################## 1388include $(CLEAR_VARS) 1389LOCAL_MODULE := wpa_supplicant 1390ifdef CONFIG_DRIVER_CUSTOM 1391LOCAL_STATIC_LIBRARIES := libCustomWifi 1392endif 1393ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),) 1394LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB) 1395endif 1396LOCAL_SHARED_LIBRARIES := libc libcutils libcrypto libssl 1397ifdef CONFIG_DRIVER_NL80211 1398LOCAL_STATIC_LIBRARIES += libnl_2 1399endif 1400LOCAL_CFLAGS := $(L_CFLAGS) 1401LOCAL_SRC_FILES := $(OBJS) 1402LOCAL_C_INCLUDES := $(INCLUDES) 1403include $(BUILD_EXECUTABLE) 1404 1405######################## 1406# 1407#include $(CLEAR_VARS) 1408#LOCAL_MODULE := eapol_test 1409#ifdef CONFIG_DRIVER_CUSTOM 1410#LOCAL_STATIC_LIBRARIES := libCustomWifi 1411#endif 1412#LOCAL_SHARED_LIBRARIES := libc libcrypto libssl 1413#LOCAL_CFLAGS := $(L_CFLAGS) 1414#LOCAL_SRC_FILES := $(OBJS_t) 1415#LOCAL_C_INCLUDES := $(INCLUDES) 1416#include $(BUILD_EXECUTABLE) 1417# 1418######################## 1419# 1420#local_target_dir := $(TARGET_OUT)/etc/wifi 1421# 1422#include $(CLEAR_VARS) 1423#LOCAL_MODULE := wpa_supplicant.conf 1424#LOCAL_MODULE_TAGS := user 1425#LOCAL_MODULE_CLASS := ETC 1426#LOCAL_MODULE_PATH := $(local_target_dir) 1427#LOCAL_SRC_FILES := $(LOCAL_MODULE) 1428#include $(BUILD_PREBUILT) 1429# 1430######################## 1431 1432endif # ifeq ($(WPA_BUILD_SUPPLICANT),true) 1433 1434include $(CLEAR_VARS) 1435LOCAL_MODULE = libwpa_client 1436LOCAL_CFLAGS = $(L_CFLAGS) 1437LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 1438LOCAL_C_INCLUDES = $(INCLUDES) 1439LOCAL_SHARED_LIBRARIES := libcutils 1440LOCAL_COPY_HEADERS_TO := libwpa_client 1441LOCAL_COPY_HEADERS := src/common/wpa_ctrl.h 1442include $(BUILD_SHARED_LIBRARY) 1443