1 # Copyright (C) 2008 The Android Open Source Project 2 # 3 # This software may be distributed under the terms of the BSD license. 4 # See README for more details. 5 # 6 7 LOCAL_PATH := $(call my-dir) 8 9 WPA_BUILD_HOSTAPD := false 10 ifneq ($(BOARD_HOSTAPD_DRIVER),) 11 WPA_BUILD_HOSTAPD := true 12 CONFIG_DRIVER_$(BOARD_HOSTAPD_DRIVER) := y 13 endif 14 15 ifeq ($(WPA_BUILD_HOSTAPD),true) 16 17 include $(LOCAL_PATH)/android.config 18 19 # To ignore possible wrong network configurations 20 L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS 21 22 L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\" 23 24 # Set Android log name 25 L_CFLAGS += -DANDROID_LOG_NAME=\"hostapd\" 26 27 # Disable unused parameter warnings 28 L_CFLAGS += -Wno-unused-parameter 29 30 # Disable macro redefined warnings 31 L_CFLAGS += -Wno-macro-redefined 32 33 # Set Android extended P2P functionality 34 L_CFLAGS += -DANDROID_P2P 35 36 ifeq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 37 L_CFLAGS += -DANDROID_LIB_STUB 38 endif 39 40 # Use Android specific directory for control interface sockets 41 L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\" 42 L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/hostapd\" 43 44 # Use Android specific directory for hostapd_cli command completion history 45 L_CFLAGS += -DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/misc/wifi\" 46 47 # To force sizeof(enum) = 4 48 ifeq ($(TARGET_ARCH),arm) 49 L_CFLAGS += -mabi=aapcs-linux 50 endif 51 52 INCLUDES = $(LOCAL_PATH) 53 INCLUDES += $(LOCAL_PATH)/src 54 INCLUDES += $(LOCAL_PATH)/src/utils 55 INCLUDES += system/security/keystore/include 56 ifdef CONFIG_DRIVER_NL80211 57 ifneq ($(wildcard external/libnl),) 58 INCLUDES += external/libnl/include 59 else 60 INCLUDES += external/libnl-headers 61 endif 62 endif 63 64 65 ifndef CONFIG_OS 66 ifdef CONFIG_NATIVE_WINDOWS 67 CONFIG_OS=win32 68 else 69 CONFIG_OS=unix 70 endif 71 endif 72 73 ifeq ($(CONFIG_OS), internal) 74 L_CFLAGS += -DOS_NO_C_LIB_DEFINES 75 endif 76 77 ifdef CONFIG_NATIVE_WINDOWS 78 L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 79 LIBS += -lws2_32 80 endif 81 82 OBJS = main.c 83 OBJS += config_file.c 84 85 OBJS += src/ap/hostapd.c 86 OBJS += src/ap/wpa_auth_glue.c 87 OBJS += src/ap/drv_callbacks.c 88 OBJS += src/ap/ap_drv_ops.c 89 OBJS += src/ap/utils.c 90 OBJS += src/ap/authsrv.c 91 OBJS += src/ap/ieee802_1x.c 92 OBJS += src/ap/ap_config.c 93 OBJS += src/ap/eap_user_db.c 94 OBJS += src/ap/ieee802_11_auth.c 95 OBJS += src/ap/sta_info.c 96 OBJS += src/ap/wpa_auth.c 97 OBJS += src/ap/tkip_countermeasures.c 98 OBJS += src/ap/ap_mlme.c 99 OBJS += src/ap/wpa_auth_ie.c 100 OBJS += src/ap/preauth_auth.c 101 OBJS += src/ap/pmksa_cache_auth.c 102 OBJS += src/ap/ieee802_11_shared.c 103 OBJS += src/ap/beacon.c 104 OBJS += src/ap/bss_load.c 105 OBJS += src/ap/neighbor_db.c 106 OBJS += src/ap/rrm.c 107 OBJS_d = 108 OBJS_p = 109 LIBS = 110 LIBS_c = 111 HOBJS = 112 LIBS_h = 113 114 NEED_RC4=y 115 NEED_AES=y 116 NEED_MD5=y 117 NEED_SHA1=y 118 119 OBJS += src/drivers/drivers.c 120 L_CFLAGS += -DHOSTAPD 121 122 ifdef CONFIG_WPA_TRACE 123 L_CFLAGS += -DWPA_TRACE 124 OBJS += src/utils/trace.c 125 HOBJS += src/utils/trace.c 126 LDFLAGS += -rdynamic 127 L_CFLAGS += -funwind-tables 128 ifdef CONFIG_WPA_TRACE_BFD 129 L_CFLAGS += -DWPA_TRACE_BFD 130 LIBS += -lbfd 131 LIBS_c += -lbfd 132 LIBS_h += -lbfd 133 endif 134 endif 135 136 OBJS += src/utils/eloop.c 137 138 ifdef CONFIG_ELOOP_POLL 139 L_CFLAGS += -DCONFIG_ELOOP_POLL 140 endif 141 142 ifdef CONFIG_ELOOP_EPOLL 143 L_CFLAGS += -DCONFIG_ELOOP_EPOLL 144 endif 145 146 OBJS += src/utils/common.c 147 OBJS += src/utils/wpa_debug.c 148 OBJS += src/utils/wpabuf.c 149 OBJS += src/utils/os_$(CONFIG_OS).c 150 OBJS += src/utils/ip_addr.c 151 152 OBJS += src/common/ieee802_11_common.c 153 OBJS += src/common/wpa_common.c 154 OBJS += src/common/hw_features_common.c 155 156 OBJS += src/eapol_auth/eapol_auth_sm.c 157 158 ifndef CONFIG_NO_DUMP_STATE 159 # define HOSTAPD_DUMP_STATE to include support for dumping internal state 160 # through control interface commands (undefine it, if you want to save in 161 # binary size) 162 L_CFLAGS += -DHOSTAPD_DUMP_STATE 163 OBJS += src/eapol_auth/eapol_auth_dump.c 164 endif 165 166 ifdef CONFIG_NO_RADIUS 167 L_CFLAGS += -DCONFIG_NO_RADIUS 168 CONFIG_NO_ACCOUNTING=y 169 else 170 OBJS += src/radius/radius.c 171 OBJS += src/radius/radius_client.c 172 OBJS += src/radius/radius_das.c 173 endif 174 175 ifdef CONFIG_NO_ACCOUNTING 176 L_CFLAGS += -DCONFIG_NO_ACCOUNTING 177 else 178 OBJS += src/ap/accounting.c 179 endif 180 181 ifdef CONFIG_NO_VLAN 182 L_CFLAGS += -DCONFIG_NO_VLAN 183 else 184 OBJS += src/ap/vlan_init.c 185 OBJS += src/ap/vlan_ifconfig.c 186 OBJS += src/ap/vlan.c 187 ifdef CONFIG_FULL_DYNAMIC_VLAN 188 # Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 189 # and VLAN interfaces for the VLAN feature. 190 L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 191 OBJS += src/ap/vlan_full.c 192 ifdef CONFIG_VLAN_NETLINK 193 OBJS += src/ap/vlan_util.c 194 else 195 OBJS += src/ap/vlan_ioctl.c 196 endif 197 endif 198 endif 199 200 ifdef CONFIG_NO_CTRL_IFACE 201 L_CFLAGS += -DCONFIG_NO_CTRL_IFACE 202 else 203 OBJS += src/common/ctrl_iface_common.c 204 OBJS += ctrl_iface.c 205 OBJS += src/ap/ctrl_iface_ap.c 206 endif 207 208 L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX 209 210 ifdef CONFIG_IAPP 211 L_CFLAGS += -DCONFIG_IAPP 212 OBJS += src/ap/iapp.c 213 endif 214 215 ifdef CONFIG_RSN_PREAUTH 216 L_CFLAGS += -DCONFIG_RSN_PREAUTH 217 CONFIG_L2_PACKET=y 218 endif 219 220 ifdef CONFIG_PEERKEY 221 L_CFLAGS += -DCONFIG_PEERKEY 222 OBJS += src/ap/peerkey_auth.c 223 endif 224 225 ifdef CONFIG_HS20 226 NEED_AES_OMAC1=y 227 CONFIG_PROXYARP=y 228 endif 229 230 ifdef CONFIG_PROXYARP 231 CONFIG_L2_PACKET=y 232 endif 233 234 ifdef CONFIG_SUITEB 235 L_CFLAGS += -DCONFIG_SUITEB 236 NEED_SHA256=y 237 NEED_AES_OMAC1=y 238 endif 239 240 ifdef CONFIG_SUITEB192 241 L_CFLAGS += -DCONFIG_SUITEB192 242 NEED_SHA384=y 243 endif 244 245 ifdef CONFIG_IEEE80211W 246 L_CFLAGS += -DCONFIG_IEEE80211W 247 NEED_SHA256=y 248 NEED_AES_OMAC1=y 249 endif 250 251 ifdef CONFIG_IEEE80211R 252 L_CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP 253 OBJS += src/ap/wpa_auth_ft.c 254 NEED_SHA256=y 255 NEED_AES_OMAC1=y 256 NEED_AES_UNWRAP=y 257 endif 258 259 ifdef CONFIG_SAE 260 L_CFLAGS += -DCONFIG_SAE 261 OBJS += src/common/sae.c 262 NEED_ECC=y 263 NEED_DH_GROUPS=y 264 endif 265 266 ifdef CONFIG_FILS 267 L_CFLAGS += -DCONFIG_FILS 268 OBJS += src/ap/fils_hlp.c 269 NEED_SHA384=y 270 NEED_AES_SIV=y 271 endif 272 273 ifdef CONFIG_WNM 274 L_CFLAGS += -DCONFIG_WNM 275 OBJS += src/ap/wnm_ap.c 276 endif 277 278 ifdef CONFIG_IEEE80211N 279 L_CFLAGS += -DCONFIG_IEEE80211N 280 endif 281 282 ifdef CONFIG_IEEE80211AC 283 L_CFLAGS += -DCONFIG_IEEE80211AC 284 endif 285 286 ifdef CONFIG_IEEE80211AX 287 L_CFLAGS += -DCONFIG_IEEE80211AX 288 endif 289 290 ifdef CONFIG_MBO 291 L_CFLAGS += -DCONFIG_MBO 292 OBJS += src/ap/mbo_ap.c 293 endif 294 295 ifdef CONFIG_FST 296 L_CFLAGS += -DCONFIG_FST 297 OBJS += src/fst/fst.c 298 OBJS += src/fst/fst_group.c 299 OBJS += src/fst/fst_iface.c 300 OBJS += src/fst/fst_session.c 301 OBJS += src/fst/fst_ctrl_aux.c 302 ifdef CONFIG_FST_TEST 303 L_CFLAGS += -DCONFIG_FST_TEST 304 endif 305 ifndef CONFIG_NO_CTRL_IFACE 306 OBJS += src/fst/fst_ctrl_iface.c 307 endif 308 endif 309 310 311 include $(LOCAL_PATH)/src/drivers/drivers.mk 312 313 OBJS += $(DRV_AP_OBJS) 314 L_CFLAGS += $(DRV_AP_CFLAGS) 315 LDFLAGS += $(DRV_AP_LDFLAGS) 316 LIBS += $(DRV_AP_LIBS) 317 318 ifdef CONFIG_L2_PACKET 319 ifdef CONFIG_DNET_PCAP 320 ifdef CONFIG_L2_FREEBSD 321 LIBS += -lpcap 322 OBJS += src/l2_packet/l2_packet_freebsd.c 323 else 324 LIBS += -ldnet -lpcap 325 OBJS += src/l2_packet/l2_packet_pcap.c 326 endif 327 else 328 OBJS += src/l2_packet/l2_packet_linux.c 329 endif 330 else 331 OBJS += src/l2_packet/l2_packet_none.c 332 endif 333 334 335 ifdef CONFIG_EAP_MD5 336 L_CFLAGS += -DEAP_SERVER_MD5 337 OBJS += src/eap_server/eap_server_md5.c 338 CHAP=y 339 endif 340 341 ifdef CONFIG_EAP_TLS 342 L_CFLAGS += -DEAP_SERVER_TLS 343 OBJS += src/eap_server/eap_server_tls.c 344 TLS_FUNCS=y 345 endif 346 347 ifdef CONFIG_EAP_UNAUTH_TLS 348 L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS 349 ifndef CONFIG_EAP_TLS 350 OBJS += src/eap_server/eap_server_tls.c 351 TLS_FUNCS=y 352 endif 353 endif 354 355 ifdef CONFIG_EAP_PEAP 356 L_CFLAGS += -DEAP_SERVER_PEAP 357 OBJS += src/eap_server/eap_server_peap.c 358 OBJS += src/eap_common/eap_peap_common.c 359 TLS_FUNCS=y 360 CONFIG_EAP_MSCHAPV2=y 361 endif 362 363 ifdef CONFIG_EAP_TTLS 364 L_CFLAGS += -DEAP_SERVER_TTLS 365 OBJS += src/eap_server/eap_server_ttls.c 366 TLS_FUNCS=y 367 CHAP=y 368 endif 369 370 ifdef CONFIG_EAP_MSCHAPV2 371 L_CFLAGS += -DEAP_SERVER_MSCHAPV2 372 OBJS += src/eap_server/eap_server_mschapv2.c 373 MS_FUNCS=y 374 endif 375 376 ifdef CONFIG_EAP_GTC 377 L_CFLAGS += -DEAP_SERVER_GTC 378 OBJS += src/eap_server/eap_server_gtc.c 379 endif 380 381 ifdef CONFIG_EAP_SIM 382 L_CFLAGS += -DEAP_SERVER_SIM 383 OBJS += src/eap_server/eap_server_sim.c 384 CONFIG_EAP_SIM_COMMON=y 385 NEED_AES_CBC=y 386 endif 387 388 ifdef CONFIG_EAP_AKA 389 L_CFLAGS += -DEAP_SERVER_AKA 390 OBJS += src/eap_server/eap_server_aka.c 391 CONFIG_EAP_SIM_COMMON=y 392 NEED_SHA256=y 393 NEED_AES_CBC=y 394 endif 395 396 ifdef CONFIG_EAP_AKA_PRIME 397 L_CFLAGS += -DEAP_SERVER_AKA_PRIME 398 endif 399 400 ifdef CONFIG_EAP_SIM_COMMON 401 OBJS += src/eap_common/eap_sim_common.c 402 # Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 403 # replaced with another file implementating the interface specified in 404 # eap_sim_db.h. 405 OBJS += src/eap_server/eap_sim_db.c 406 NEED_FIPS186_2_PRF=y 407 endif 408 409 ifdef CONFIG_EAP_PAX 410 L_CFLAGS += -DEAP_SERVER_PAX 411 OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c 412 endif 413 414 ifdef CONFIG_EAP_PSK 415 L_CFLAGS += -DEAP_SERVER_PSK 416 OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c 417 NEED_AES_OMAC1=y 418 NEED_AES_ENCBLOCK=y 419 NEED_AES_EAX=y 420 endif 421 422 ifdef CONFIG_EAP_SAKE 423 L_CFLAGS += -DEAP_SERVER_SAKE 424 OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c 425 endif 426 427 ifdef CONFIG_EAP_GPSK 428 L_CFLAGS += -DEAP_SERVER_GPSK 429 OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c 430 ifdef CONFIG_EAP_GPSK_SHA256 431 L_CFLAGS += -DEAP_GPSK_SHA256 432 endif 433 NEED_SHA256=y 434 NEED_AES_OMAC1=y 435 endif 436 437 ifdef CONFIG_EAP_PWD 438 L_CFLAGS += -DEAP_SERVER_PWD 439 OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c 440 NEED_SHA256=y 441 endif 442 443 ifdef CONFIG_EAP_EKE 444 L_CFLAGS += -DEAP_SERVER_EKE 445 OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 446 NEED_DH_GROUPS=y 447 NEED_DH_GROUPS_ALL=y 448 endif 449 450 ifdef CONFIG_EAP_VENDOR_TEST 451 L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 452 OBJS += src/eap_server/eap_server_vendor_test.c 453 endif 454 455 ifdef CONFIG_EAP_FAST 456 L_CFLAGS += -DEAP_SERVER_FAST 457 OBJS += src/eap_server/eap_server_fast.c 458 OBJS += src/eap_common/eap_fast_common.c 459 TLS_FUNCS=y 460 NEED_T_PRF=y 461 NEED_AES_UNWRAP=y 462 endif 463 464 ifdef CONFIG_WPS 465 L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 466 OBJS += src/utils/uuid.c 467 OBJS += src/ap/wps_hostapd.c 468 OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 469 OBJS += src/wps/wps.c 470 OBJS += src/wps/wps_common.c 471 OBJS += src/wps/wps_attr_parse.c 472 OBJS += src/wps/wps_attr_build.c 473 OBJS += src/wps/wps_attr_process.c 474 OBJS += src/wps/wps_dev_attr.c 475 OBJS += src/wps/wps_enrollee.c 476 OBJS += src/wps/wps_registrar.c 477 NEED_DH_GROUPS=y 478 NEED_SHA256=y 479 NEED_BASE64=y 480 NEED_AES_CBC=y 481 NEED_MODEXP=y 482 CONFIG_EAP=y 483 484 ifdef CONFIG_WPS_NFC 485 L_CFLAGS += -DCONFIG_WPS_NFC 486 OBJS += src/wps/ndef.c 487 NEED_WPS_OOB=y 488 endif 489 490 ifdef NEED_WPS_OOB 491 L_CFLAGS += -DCONFIG_WPS_OOB 492 endif 493 494 ifdef CONFIG_WPS_UPNP 495 L_CFLAGS += -DCONFIG_WPS_UPNP 496 OBJS += src/wps/wps_upnp.c 497 OBJS += src/wps/wps_upnp_ssdp.c 498 OBJS += src/wps/wps_upnp_web.c 499 OBJS += src/wps/wps_upnp_event.c 500 OBJS += src/wps/wps_upnp_ap.c 501 OBJS += src/wps/upnp_xml.c 502 OBJS += src/wps/httpread.c 503 OBJS += src/wps/http_client.c 504 OBJS += src/wps/http_server.c 505 endif 506 507 ifdef CONFIG_WPS_STRICT 508 L_CFLAGS += -DCONFIG_WPS_STRICT 509 OBJS += src/wps/wps_validate.c 510 endif 511 512 ifdef CONFIG_WPS_TESTING 513 L_CFLAGS += -DCONFIG_WPS_TESTING 514 endif 515 516 endif 517 518 ifdef CONFIG_EAP_IKEV2 519 L_CFLAGS += -DEAP_SERVER_IKEV2 520 OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 521 OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 522 NEED_DH_GROUPS=y 523 NEED_DH_GROUPS_ALL=y 524 NEED_MODEXP=y 525 NEED_CIPHER=y 526 endif 527 528 ifdef CONFIG_EAP_TNC 529 L_CFLAGS += -DEAP_SERVER_TNC 530 OBJS += src/eap_server/eap_server_tnc.c 531 OBJS += src/eap_server/tncs.c 532 NEED_BASE64=y 533 ifndef CONFIG_DRIVER_BSD 534 LIBS += -ldl 535 endif 536 endif 537 538 # Basic EAP functionality is needed for EAPOL 539 OBJS += eap_register.c 540 OBJS += src/eap_server/eap_server.c 541 OBJS += src/eap_common/eap_common.c 542 OBJS += src/eap_server/eap_server_methods.c 543 OBJS += src/eap_server/eap_server_identity.c 544 L_CFLAGS += -DEAP_SERVER_IDENTITY 545 546 ifdef CONFIG_EAP 547 L_CFLAGS += -DEAP_SERVER 548 endif 549 550 ifdef CONFIG_PKCS12 551 L_CFLAGS += -DPKCS12_FUNCS 552 endif 553 554 ifdef MS_FUNCS 555 OBJS += src/crypto/ms_funcs.c 556 NEED_DES=y 557 NEED_MD4=y 558 endif 559 560 ifdef CHAP 561 OBJS += src/eap_common/chap.c 562 endif 563 564 ifdef TLS_FUNCS 565 NEED_DES=y 566 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 567 L_CFLAGS += -DEAP_TLS_FUNCS 568 OBJS += src/eap_server/eap_server_tls_common.c 569 NEED_TLS_PRF=y 570 endif 571 572 ifndef CONFIG_TLS 573 CONFIG_TLS=openssl 574 endif 575 576 ifdef CONFIG_TLSV11 577 L_CFLAGS += -DCONFIG_TLSV11 578 endif 579 580 ifdef CONFIG_TLSV12 581 L_CFLAGS += -DCONFIG_TLSV12 582 NEED_SHA256=y 583 endif 584 585 ifeq ($(CONFIG_TLS), openssl) 586 ifdef TLS_FUNCS 587 OBJS += src/crypto/tls_openssl.c 588 OBJS += src/crypto/tls_openssl_ocsp.c 589 LIBS += -lssl 590 endif 591 OBJS += src/crypto/crypto_openssl.c 592 HOBJS += src/crypto/crypto_openssl.c 593 ifdef NEED_FIPS186_2_PRF 594 OBJS += src/crypto/fips_prf_openssl.c 595 endif 596 NEED_SHA256=y 597 NEED_TLS_PRF_SHA256=y 598 LIBS += -lcrypto 599 LIBS_h += -lcrypto 600 endif 601 602 ifeq ($(CONFIG_TLS), gnutls) 603 ifdef TLS_FUNCS 604 OBJS += src/crypto/tls_gnutls.c 605 LIBS += -lgnutls -lgpg-error 606 endif 607 OBJS += src/crypto/crypto_gnutls.c 608 HOBJS += src/crypto/crypto_gnutls.c 609 ifdef NEED_FIPS186_2_PRF 610 OBJS += src/crypto/fips_prf_internal.c 611 OBJS += src/crypto/sha1-internal.c 612 endif 613 LIBS += -lgcrypt 614 LIBS_h += -lgcrypt 615 CONFIG_INTERNAL_SHA256=y 616 CONFIG_INTERNAL_RC4=y 617 CONFIG_INTERNAL_DH_GROUP5=y 618 endif 619 620 ifeq ($(CONFIG_TLS), internal) 621 ifndef CONFIG_CRYPTO 622 CONFIG_CRYPTO=internal 623 endif 624 ifdef TLS_FUNCS 625 OBJS += src/crypto/crypto_internal-rsa.c 626 OBJS += src/crypto/tls_internal.c 627 OBJS += src/tls/tlsv1_common.c 628 OBJS += src/tls/tlsv1_record.c 629 OBJS += src/tls/tlsv1_cred.c 630 OBJS += src/tls/tlsv1_server.c 631 OBJS += src/tls/tlsv1_server_write.c 632 OBJS += src/tls/tlsv1_server_read.c 633 OBJS += src/tls/asn1.c 634 OBJS += src/tls/rsa.c 635 OBJS += src/tls/x509v3.c 636 OBJS += src/tls/pkcs1.c 637 OBJS += src/tls/pkcs5.c 638 OBJS += src/tls/pkcs8.c 639 NEED_SHA256=y 640 NEED_BASE64=y 641 NEED_TLS_PRF=y 642 ifdef CONFIG_TLSV12 643 NEED_TLS_PRF_SHA256=y 644 endif 645 NEED_MODEXP=y 646 NEED_CIPHER=y 647 L_CFLAGS += -DCONFIG_TLS_INTERNAL 648 L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 649 endif 650 ifdef NEED_CIPHER 651 NEED_DES=y 652 OBJS += src/crypto/crypto_internal-cipher.c 653 endif 654 ifdef NEED_MODEXP 655 OBJS += src/crypto/crypto_internal-modexp.c 656 OBJS += src/tls/bignum.c 657 endif 658 ifeq ($(CONFIG_CRYPTO), libtomcrypt) 659 OBJS += src/crypto/crypto_libtomcrypt.c 660 LIBS += -ltomcrypt -ltfm 661 LIBS_h += -ltomcrypt -ltfm 662 CONFIG_INTERNAL_SHA256=y 663 CONFIG_INTERNAL_RC4=y 664 CONFIG_INTERNAL_DH_GROUP5=y 665 endif 666 ifeq ($(CONFIG_CRYPTO), internal) 667 OBJS += src/crypto/crypto_internal.c 668 NEED_AES_DEC=y 669 L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 670 ifdef CONFIG_INTERNAL_LIBTOMMATH 671 L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 672 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 673 L_CFLAGS += -DLTM_FAST 674 endif 675 else 676 LIBS += -ltommath 677 LIBS_h += -ltommath 678 endif 679 CONFIG_INTERNAL_AES=y 680 CONFIG_INTERNAL_DES=y 681 CONFIG_INTERNAL_SHA1=y 682 CONFIG_INTERNAL_MD4=y 683 CONFIG_INTERNAL_MD5=y 684 CONFIG_INTERNAL_SHA256=y 685 CONFIG_INTERNAL_SHA384=y 686 CONFIG_INTERNAL_SHA512=y 687 CONFIG_INTERNAL_RC4=y 688 CONFIG_INTERNAL_DH_GROUP5=y 689 endif 690 ifeq ($(CONFIG_CRYPTO), cryptoapi) 691 OBJS += src/crypto/crypto_cryptoapi.c 692 OBJS_p += src/crypto/crypto_cryptoapi.c 693 L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 694 CONFIG_INTERNAL_SHA256=y 695 CONFIG_INTERNAL_RC4=y 696 endif 697 endif 698 699 ifeq ($(CONFIG_TLS), none) 700 ifdef TLS_FUNCS 701 OBJS += src/crypto/tls_none.c 702 L_CFLAGS += -DEAP_TLS_NONE 703 CONFIG_INTERNAL_AES=y 704 CONFIG_INTERNAL_SHA1=y 705 CONFIG_INTERNAL_MD5=y 706 endif 707 OBJS += src/crypto/crypto_none.c 708 OBJS_p += src/crypto/crypto_none.c 709 CONFIG_INTERNAL_SHA256=y 710 CONFIG_INTERNAL_RC4=y 711 endif 712 713 ifndef TLS_FUNCS 714 OBJS += src/crypto/tls_none.c 715 ifeq ($(CONFIG_TLS), internal) 716 CONFIG_INTERNAL_AES=y 717 CONFIG_INTERNAL_SHA1=y 718 CONFIG_INTERNAL_MD5=y 719 CONFIG_INTERNAL_RC4=y 720 endif 721 endif 722 723 AESOBJS = # none so far 724 ifdef CONFIG_INTERNAL_AES 725 AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 726 endif 727 728 ifneq ($(CONFIG_TLS), openssl) 729 AESOBJS += src/crypto/aes-wrap.c 730 endif 731 ifdef NEED_AES_EAX 732 AESOBJS += src/crypto/aes-eax.c 733 NEED_AES_CTR=y 734 endif 735 ifdef NEED_AES_CTR 736 AESOBJS += src/crypto/aes-ctr.c 737 endif 738 ifdef NEED_AES_ENCBLOCK 739 AESOBJS += src/crypto/aes-encblock.c 740 endif 741 ifdef NEED_AES_OMAC1 742 AESOBJS += src/crypto/aes-omac1.c 743 endif 744 ifdef NEED_AES_UNWRAP 745 ifneq ($(CONFIG_TLS), openssl) 746 NEED_AES_DEC=y 747 AESOBJS += src/crypto/aes-unwrap.c 748 endif 749 endif 750 ifdef NEED_AES_CBC 751 NEED_AES_DEC=y 752 ifneq ($(CONFIG_TLS), openssl) 753 AESOBJS += src/crypto/aes-cbc.c 754 endif 755 endif 756 ifdef NEED_AES_SIV 757 AESOBJS += src/crypto/aes-siv.c 758 endif 759 ifdef NEED_AES_DEC 760 ifdef CONFIG_INTERNAL_AES 761 AESOBJS += src/crypto/aes-internal-dec.c 762 endif 763 endif 764 ifdef NEED_AES 765 OBJS += $(AESOBJS) 766 endif 767 768 SHA1OBJS = 769 ifdef NEED_SHA1 770 ifneq ($(CONFIG_TLS), openssl) 771 SHA1OBJS += src/crypto/sha1.c 772 endif 773 SHA1OBJS += src/crypto/sha1-prf.c 774 ifdef CONFIG_INTERNAL_SHA1 775 SHA1OBJS += src/crypto/sha1-internal.c 776 ifdef NEED_FIPS186_2_PRF 777 SHA1OBJS += src/crypto/fips_prf_internal.c 778 endif 779 endif 780 ifneq ($(CONFIG_TLS), openssl) 781 SHA1OBJS += src/crypto/sha1-pbkdf2.c 782 endif 783 ifdef NEED_T_PRF 784 SHA1OBJS += src/crypto/sha1-tprf.c 785 endif 786 ifdef NEED_TLS_PRF 787 SHA1OBJS += src/crypto/sha1-tlsprf.c 788 endif 789 endif 790 791 ifdef NEED_SHA1 792 OBJS += $(SHA1OBJS) 793 endif 794 795 ifneq ($(CONFIG_TLS), openssl) 796 OBJS += src/crypto/md5.c 797 endif 798 799 ifdef NEED_MD5 800 ifdef CONFIG_INTERNAL_MD5 801 OBJS += src/crypto/md5-internal.c 802 HOBJS += src/crypto/md5-internal.c 803 endif 804 endif 805 806 ifdef NEED_MD4 807 ifdef CONFIG_INTERNAL_MD4 808 OBJS += src/crypto/md4-internal.c 809 endif 810 endif 811 812 ifdef NEED_DES 813 ifdef CONFIG_INTERNAL_DES 814 OBJS += src/crypto/des-internal.c 815 endif 816 endif 817 818 ifdef CONFIG_NO_RC4 819 L_CFLAGS += -DCONFIG_NO_RC4 820 endif 821 822 ifdef NEED_RC4 823 ifdef CONFIG_INTERNAL_RC4 824 ifndef CONFIG_NO_RC4 825 OBJS += src/crypto/rc4.c 826 endif 827 endif 828 endif 829 830 ifdef NEED_SHA256 831 L_CFLAGS += -DCONFIG_SHA256 832 ifneq ($(CONFIG_TLS), openssl) 833 OBJS += src/crypto/sha256.c 834 endif 835 OBJS += src/crypto/sha256-prf.c 836 ifdef CONFIG_INTERNAL_SHA256 837 OBJS += src/crypto/sha256-internal.c 838 endif 839 ifdef NEED_TLS_PRF_SHA256 840 OBJS += src/crypto/sha256-tlsprf.c 841 endif 842 endif 843 ifdef NEED_SHA384 844 L_CFLAGS += -DCONFIG_SHA384 845 ifneq ($(CONFIG_TLS), openssl) 846 OBJS += src/crypto/sha384.c 847 endif 848 OBJS += src/crypto/sha384-prf.c 849 endif 850 851 ifdef CONFIG_INTERNAL_SHA384 852 L_CFLAGS += -DCONFIG_INTERNAL_SHA384 853 OBJS += src/crypto/sha384-internal.c 854 endif 855 856 ifdef CONFIG_INTERNAL_SHA512 857 L_CFLAGS += -DCONFIG_INTERNAL_SHA512 858 OBJS += src/crypto/sha512-internal.c 859 endif 860 861 ifdef NEED_DH_GROUPS 862 OBJS += src/crypto/dh_groups.c 863 endif 864 ifdef NEED_DH_GROUPS_ALL 865 L_CFLAGS += -DALL_DH_GROUPS 866 endif 867 ifdef CONFIG_INTERNAL_DH_GROUP5 868 ifdef NEED_DH_GROUPS 869 OBJS += src/crypto/dh_group5.c 870 endif 871 endif 872 873 ifdef NEED_ECC 874 L_CFLAGS += -DCONFIG_ECC 875 endif 876 877 ifdef CONFIG_NO_RANDOM_POOL 878 L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 879 else 880 OBJS += src/crypto/random.c 881 HOBJS += src/crypto/random.c 882 HOBJS += src/utils/eloop.c 883 HOBJS += $(SHA1OBJS) 884 ifneq ($(CONFIG_TLS), openssl) 885 HOBJS += src/crypto/md5.c 886 endif 887 endif 888 889 ifdef CONFIG_RADIUS_SERVER 890 L_CFLAGS += -DRADIUS_SERVER 891 OBJS += src/radius/radius_server.c 892 endif 893 894 ifdef CONFIG_IPV6 895 L_CFLAGS += -DCONFIG_IPV6 896 endif 897 898 ifdef CONFIG_DRIVER_RADIUS_ACL 899 L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 900 endif 901 902 ifdef NEED_BASE64 903 OBJS += src/utils/base64.c 904 endif 905 906 ifdef NEED_AP_MLME 907 OBJS += src/ap/wmm.c 908 OBJS += src/ap/ap_list.c 909 OBJS += src/ap/ieee802_11.c 910 OBJS += src/ap/hw_features.c 911 OBJS += src/ap/dfs.c 912 L_CFLAGS += -DNEED_AP_MLME 913 endif 914 ifdef CONFIG_IEEE80211N 915 OBJS += src/ap/ieee802_11_ht.c 916 endif 917 918 ifdef CONFIG_IEEE80211AC 919 OBJS += src/ap/ieee802_11_vht.c 920 endif 921 922 ifdef CONFIG_IEEE80211AX 923 OBJS += src/ap/ieee802_11_he.c 924 endif 925 926 ifdef CONFIG_P2P_MANAGER 927 L_CFLAGS += -DCONFIG_P2P_MANAGER 928 OBJS += src/ap/p2p_hostapd.c 929 endif 930 931 ifdef CONFIG_HS20 932 L_CFLAGS += -DCONFIG_HS20 933 OBJS += src/ap/hs20.c 934 CONFIG_INTERWORKING=y 935 endif 936 937 ifdef CONFIG_INTERWORKING 938 L_CFLAGS += -DCONFIG_INTERWORKING 939 OBJS += src/common/gas.c 940 OBJS += src/ap/gas_serv.c 941 endif 942 943 ifdef CONFIG_PROXYARP 944 L_CFLAGS += -DCONFIG_PROXYARP 945 OBJS += src/ap/x_snoop.c 946 OBJS += src/ap/dhcp_snoop.c 947 ifdef CONFIG_IPV6 948 OBJS += src/ap/ndisc_snoop.c 949 endif 950 endif 951 952 OBJS += src/drivers/driver_common.c 953 954 ifdef CONFIG_ACS 955 L_CFLAGS += -DCONFIG_ACS 956 OBJS += src/ap/acs.c 957 LIBS += -lm 958 endif 959 960 ifdef CONFIG_NO_STDOUT_DEBUG 961 L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 962 endif 963 964 ifdef CONFIG_DEBUG_SYSLOG 965 L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 966 endif 967 968 ifdef CONFIG_DEBUG_LINUX_TRACING 969 L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 970 endif 971 972 ifdef CONFIG_DEBUG_FILE 973 L_CFLAGS += -DCONFIG_DEBUG_FILE 974 endif 975 976 ifdef CONFIG_ANDROID_LOG 977 L_CFLAGS += -DCONFIG_ANDROID_LOG 978 endif 979 980 OBJS_c = hostapd_cli.c 981 OBJS_c += src/common/wpa_ctrl.c 982 OBJS_c += src/utils/os_$(CONFIG_OS).c 983 OBJS_c += src/common/cli.c 984 OBJS_c += src/utils/eloop.c 985 OBJS_c += src/utils/common.c 986 ifdef CONFIG_WPA_TRACE 987 OBJS_c += src/utils/trace.c 988 endif 989 OBJS_c += src/utils/wpa_debug.c 990 ifdef CONFIG_WPA_CLI_EDIT 991 OBJS_c += src/utils/edit.c 992 else 993 OBJS_c += src/utils/edit_simple.c 994 endif 995 996 ######################## 997 998 include $(CLEAR_VARS) 999 LOCAL_MODULE := hostapd_cli 1000 LOCAL_MODULE_TAGS := debug 1001 LOCAL_PROPRIETARY_MODULE := true 1002 LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1003 LOCAL_CFLAGS := $(L_CFLAGS) 1004 LOCAL_SRC_FILES := $(OBJS_c) 1005 LOCAL_C_INCLUDES := $(INCLUDES) 1006 include $(BUILD_EXECUTABLE) 1007 1008 ######################## 1009 include $(CLEAR_VARS) 1010 LOCAL_MODULE := hostapd 1011 LOCAL_MODULE_TAGS := optional 1012 LOCAL_PROPRIETARY_MODULE := true 1013 ifdef CONFIG_DRIVER_CUSTOM 1014 LOCAL_STATIC_LIBRARIES := libCustomWifi 1015 endif 1016 ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 1017 LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 1018 endif 1019 LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 1020 ifdef CONFIG_DRIVER_NL80211 1021 ifneq ($(wildcard external/libnl),) 1022 LOCAL_SHARED_LIBRARIES += libnl 1023 else 1024 LOCAL_STATIC_LIBRARIES += libnl_2 1025 endif 1026 endif 1027 LOCAL_CFLAGS := $(L_CFLAGS) 1028 LOCAL_SRC_FILES := $(OBJS) 1029 LOCAL_C_INCLUDES := $(INCLUDES) 1030 LOCAL_INIT_RC := hostapd.android.rc 1031 include $(BUILD_EXECUTABLE) 1032 1033 endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 1034