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