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