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