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 7LOCAL_PATH := $(call my-dir) 8 9WPA_BUILD_HOSTAPD := false 10ifneq ($(BOARD_HOSTAPD_DRIVER),) 11 WPA_BUILD_HOSTAPD := true 12 CONFIG_DRIVER_$(BOARD_HOSTAPD_DRIVER) := y 13endif 14 15ifeq ($(WPA_BUILD_HOSTAPD),true) 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=\"hostapd\" 26 27L_CFLAGS += -Wall -Werror 28 29# Disable unused parameter warnings 30L_CFLAGS += -Wno-unused-parameter 31 32# Disable unused variable warnings 33L_CFLAGS += -Wno-unused-variable 34 35# Disable macro redefined warnings 36L_CFLAGS += -Wno-macro-redefined 37 38# Set Android extended P2P functionality 39L_CFLAGS += -DANDROID_P2P 40 41ifeq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 42L_CFLAGS += -DANDROID_LIB_STUB 43endif 44 45ifeq ($(BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL),true) 46L_CFLAGS += -DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL 47endif 48 49ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB_EVENT),) 50L_CFLAGS += -DANDROID_LIB_EVENT 51endif 52 53# Use Android specific directory for control interface sockets 54L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/hostapd/sockets\" 55L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/hostapd/ctrl\" 56 57# Use Android specific directory for hostapd_cli command completion history 58L_CFLAGS += -DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/vendor/wifi/hostapd\" 59 60# To force sizeof(enum) = 4 61ifeq ($(TARGET_ARCH),arm) 62L_CFLAGS += -mabi=aapcs-linux 63endif 64 65INCLUDES = $(LOCAL_PATH) 66INCLUDES += $(LOCAL_PATH)/src 67INCLUDES += $(LOCAL_PATH)/src/utils 68INCLUDES += system/security/keystore/include 69ifdef CONFIG_DRIVER_NL80211 70ifneq ($(wildcard external/libnl),) 71INCLUDES += external/libnl/include 72else 73INCLUDES += external/libnl-headers 74endif 75endif 76 77ifdef CONFIG_TESTING_OPTIONS 78L_CFLAGS += -DCONFIG_TESTING_OPTIONS 79CONFIG_WPS_TESTING=y 80endif 81 82ifndef CONFIG_OS 83ifdef CONFIG_NATIVE_WINDOWS 84CONFIG_OS=win32 85else 86CONFIG_OS=unix 87endif 88endif 89 90ifeq ($(CONFIG_OS), internal) 91L_CFLAGS += -DOS_NO_C_LIB_DEFINES 92endif 93 94ifdef CONFIG_NATIVE_WINDOWS 95L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 96LIBS += -lws2_32 97endif 98 99OBJS = main.c 100OBJS += config_file.c 101 102OBJS += src/ap/hostapd.c 103OBJS += src/ap/wpa_auth_glue.c 104OBJS += src/ap/drv_callbacks.c 105OBJS += src/ap/ap_drv_ops.c 106OBJS += src/ap/utils.c 107OBJS += src/ap/authsrv.c 108OBJS += src/ap/ieee802_1x.c 109OBJS += src/ap/ap_config.c 110OBJS += src/ap/eap_user_db.c 111OBJS += src/ap/ieee802_11_auth.c 112OBJS += src/ap/sta_info.c 113OBJS += src/ap/wpa_auth.c 114OBJS += src/ap/tkip_countermeasures.c 115OBJS += src/ap/ap_mlme.c 116OBJS += src/ap/wpa_auth_ie.c 117OBJS += src/ap/preauth_auth.c 118OBJS += src/ap/pmksa_cache_auth.c 119OBJS += src/ap/ieee802_11_shared.c 120OBJS += src/ap/beacon.c 121OBJS += src/ap/bss_load.c 122OBJS += src/ap/neighbor_db.c 123OBJS += src/ap/rrm.c 124OBJS_d = 125OBJS_p = 126LIBS = 127LIBS_c = 128HOBJS = 129LIBS_h = 130 131NEED_RC4=y 132NEED_AES=y 133NEED_MD5=y 134NEED_SHA1=y 135 136OBJS += src/drivers/drivers.c 137L_CFLAGS += -DHOSTAPD 138 139ifdef CONFIG_WPA_TRACE 140L_CFLAGS += -DWPA_TRACE 141OBJS += src/utils/trace.c 142HOBJS += src/utils/trace.c 143LDFLAGS += -rdynamic 144L_CFLAGS += -funwind-tables 145ifdef CONFIG_WPA_TRACE_BFD 146L_CFLAGS += -DWPA_TRACE_BFD -fno-inline -fno-optimize-sibling-calls 147LIBS += -lbfd 148LIBS_c += -lbfd 149LIBS_h += -lbfd 150endif 151endif 152 153OBJS += src/utils/eloop.c 154 155ifdef CONFIG_ELOOP_POLL 156L_CFLAGS += -DCONFIG_ELOOP_POLL 157endif 158 159ifdef CONFIG_ELOOP_EPOLL 160L_CFLAGS += -DCONFIG_ELOOP_EPOLL 161endif 162 163OBJS += src/utils/common.c 164OBJS += src/utils/wpa_debug.c 165OBJS += src/utils/wpabuf.c 166OBJS += src/utils/os_$(CONFIG_OS).c 167OBJS += src/utils/ip_addr.c 168OBJS += src/utils/crc32.c 169 170OBJS += src/common/ieee802_11_common.c 171OBJS += src/common/wpa_common.c 172OBJS += src/common/hw_features_common.c 173OBJS += src/common/ptksa_cache.c 174 175OBJS += src/eapol_auth/eapol_auth_sm.c 176 177 178ifndef CONFIG_NO_DUMP_STATE 179# define HOSTAPD_DUMP_STATE to include support for dumping internal state 180# through control interface commands (undefine it, if you want to save in 181# binary size) 182L_CFLAGS += -DHOSTAPD_DUMP_STATE 183OBJS += src/eapol_auth/eapol_auth_dump.c 184endif 185 186ifdef CONFIG_NO_RADIUS 187L_CFLAGS += -DCONFIG_NO_RADIUS 188CONFIG_NO_ACCOUNTING=y 189else 190OBJS += src/radius/radius.c 191OBJS += src/radius/radius_client.c 192OBJS += src/radius/radius_das.c 193endif 194 195ifdef CONFIG_NO_ACCOUNTING 196L_CFLAGS += -DCONFIG_NO_ACCOUNTING 197else 198OBJS += src/ap/accounting.c 199endif 200 201ifdef CONFIG_NO_VLAN 202L_CFLAGS += -DCONFIG_NO_VLAN 203else 204OBJS += src/ap/vlan_init.c 205OBJS += src/ap/vlan_ifconfig.c 206OBJS += src/ap/vlan.c 207ifdef CONFIG_FULL_DYNAMIC_VLAN 208# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 209# and VLAN interfaces for the VLAN feature. 210L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 211OBJS += src/ap/vlan_full.c 212ifdef CONFIG_VLAN_NETLINK 213OBJS += src/ap/vlan_util.c 214else 215OBJS += src/ap/vlan_ioctl.c 216endif 217endif 218endif 219 220ifdef CONFIG_NO_CTRL_IFACE 221L_CFLAGS += -DCONFIG_NO_CTRL_IFACE 222else 223OBJS += src/common/ctrl_iface_common.c 224OBJS += ctrl_iface.c 225OBJS += src/ap/ctrl_iface_ap.c 226endif 227 228L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX 229 230ifdef CONFIG_RSN_PREAUTH 231L_CFLAGS += -DCONFIG_RSN_PREAUTH 232CONFIG_L2_PACKET=y 233endif 234 235ifdef CONFIG_HS20 236CONFIG_PROXYARP=y 237endif 238 239ifdef CONFIG_PROXYARP 240CONFIG_L2_PACKET=y 241endif 242 243ifdef CONFIG_SUITEB 244L_CFLAGS += -DCONFIG_SUITEB 245endif 246 247ifdef CONFIG_SUITEB192 248L_CFLAGS += -DCONFIG_SUITEB192 249NEED_SHA384=y 250endif 251 252ifdef CONFIG_OCV 253L_CFLAGS += -DCONFIG_OCV 254OBJS += src/common/ocv.c 255endif 256 257NEED_AES_UNWRAP=y 258 259ifdef CONFIG_IEEE80211R 260L_CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP 261OBJS += src/ap/wpa_auth_ft.c 262NEED_AES_UNWRAP=y 263NEED_AES_SIV=y 264NEED_ETH_P_OUI=y 265NEED_HMAC_SHA256_KDF=y 266endif 267 268ifdef NEED_ETH_P_OUI 269L_CFLAGS += -DCONFIG_ETH_P_OUI 270OBJS += src/ap/eth_p_oui.c 271endif 272 273ifdef CONFIG_SAE 274L_CFLAGS += -DCONFIG_SAE 275OBJS += src/common/sae.c 276ifdef CONFIG_SAE_PK 277L_CFLAGS += -DCONFIG_SAE_PK 278NEED_AES_SIV=y 279NEED_BASE64=y 280OBJS += src/common/sae_pk.c 281endif 282NEED_ECC=y 283NEED_DH_GROUPS=y 284NEED_HMAC_SHA256_KDF=y 285NEED_DRAGONFLY=y 286endif 287 288ifdef CONFIG_OWE 289L_CFLAGS += -DCONFIG_OWE 290NEED_ECC=y 291NEED_HMAC_SHA256_KDF=y 292NEED_HMAC_SHA384_KDF=y 293NEED_HMAC_SHA512_KDF=y 294NEED_SHA384=y 295NEED_SHA512=y 296endif 297 298ifdef CONFIG_WAPI_INTERFACE 299L_CFLAGS += -DCONFIG_WAPI_INTERFACE 300endif 301 302ifdef CONFIG_FILS 303L_CFLAGS += -DCONFIG_FILS 304OBJS += src/ap/fils_hlp.c 305NEED_SHA384=y 306NEED_AES_SIV=y 307ifdef CONFIG_FILS_SK_PFS 308L_CFLAGS += -DCONFIG_FILS_SK_PFS 309NEED_ECC=y 310endif 311endif 312 313ifdef CONFIG_WNM 314L_CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP 315OBJS += src/ap/wnm_ap.c 316endif 317 318ifdef CONFIG_IEEE80211AC 319L_CFLAGS += -DCONFIG_IEEE80211AC 320endif 321 322ifdef CONFIG_IEEE80211BE 323CONFIG_IEEE80211AX=y 324L_CFLAGS += -DCONFIG_IEEE80211BE 325OBJS += src/ap/ieee802_11_eht.c 326endif 327 328ifdef CONFIG_IEEE80211AX 329L_CFLAGS += -DCONFIG_IEEE80211AX 330endif 331 332ifdef CONFIG_MBO 333L_CFLAGS += -DCONFIG_MBO 334OBJS += src/ap/mbo_ap.c 335endif 336 337ifdef CONFIG_FST 338L_CFLAGS += -DCONFIG_FST 339OBJS += src/fst/fst.c 340OBJS += src/fst/fst_group.c 341OBJS += src/fst/fst_iface.c 342OBJS += src/fst/fst_session.c 343OBJS += src/fst/fst_ctrl_aux.c 344ifdef CONFIG_FST_TEST 345L_CFLAGS += -DCONFIG_FST_TEST 346endif 347ifndef CONFIG_NO_CTRL_IFACE 348OBJS += src/fst/fst_ctrl_iface.c 349endif 350endif 351 352ifdef CONFIG_WEP 353L_CFLAGS += -DCONFIG_WEP 354endif 355 356ifdef CONFIG_NO_TKIP 357L_CFLAGS += -DCONFIG_NO_TKIP 358endif 359 360 361include $(LOCAL_PATH)/src/drivers/drivers.mk 362 363OBJS += $(DRV_AP_OBJS) 364L_CFLAGS += $(DRV_AP_CFLAGS) 365LDFLAGS += $(DRV_AP_LDFLAGS) 366LIBS += $(DRV_AP_LIBS) 367 368ifdef CONFIG_L2_PACKET 369ifdef CONFIG_DNET_PCAP 370ifdef CONFIG_L2_FREEBSD 371LIBS += -lpcap 372OBJS += src/l2_packet/l2_packet_freebsd.c 373else 374LIBS += -ldnet -lpcap 375OBJS += src/l2_packet/l2_packet_pcap.c 376endif 377else 378OBJS += src/l2_packet/l2_packet_linux.c 379endif 380else 381OBJS += src/l2_packet/l2_packet_none.c 382endif 383 384 385ifdef CONFIG_EAP_MD5 386L_CFLAGS += -DEAP_SERVER_MD5 387OBJS += src/eap_server/eap_server_md5.c 388CHAP=y 389endif 390 391ifdef CONFIG_EAP_TLS 392L_CFLAGS += -DEAP_SERVER_TLS 393OBJS += src/eap_server/eap_server_tls.c 394TLS_FUNCS=y 395endif 396 397ifdef CONFIG_EAP_UNAUTH_TLS 398L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS 399ifndef CONFIG_EAP_TLS 400OBJS += src/eap_server/eap_server_tls.c 401TLS_FUNCS=y 402endif 403endif 404 405ifdef CONFIG_EAP_PEAP 406L_CFLAGS += -DEAP_SERVER_PEAP 407OBJS += src/eap_server/eap_server_peap.c 408OBJS += src/eap_common/eap_peap_common.c 409TLS_FUNCS=y 410CONFIG_EAP_MSCHAPV2=y 411endif 412 413ifdef CONFIG_EAP_TTLS 414L_CFLAGS += -DEAP_SERVER_TTLS 415OBJS += src/eap_server/eap_server_ttls.c 416TLS_FUNCS=y 417CHAP=y 418endif 419 420ifdef CONFIG_EAP_MSCHAPV2 421L_CFLAGS += -DEAP_SERVER_MSCHAPV2 422OBJS += src/eap_server/eap_server_mschapv2.c 423MS_FUNCS=y 424endif 425 426ifdef CONFIG_EAP_GTC 427L_CFLAGS += -DEAP_SERVER_GTC 428OBJS += src/eap_server/eap_server_gtc.c 429endif 430 431ifdef CONFIG_EAP_SIM 432L_CFLAGS += -DEAP_SERVER_SIM 433OBJS += src/eap_server/eap_server_sim.c 434CONFIG_EAP_SIM_COMMON=y 435NEED_AES_CBC=y 436endif 437 438ifdef CONFIG_EAP_AKA 439L_CFLAGS += -DEAP_SERVER_AKA 440OBJS += src/eap_server/eap_server_aka.c 441CONFIG_EAP_SIM_COMMON=y 442NEED_AES_CBC=y 443endif 444 445ifdef CONFIG_EAP_AKA_PRIME 446L_CFLAGS += -DEAP_SERVER_AKA_PRIME 447endif 448 449ifdef CONFIG_EAP_SIM_COMMON 450OBJS += src/eap_common/eap_sim_common.c 451# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 452# replaced with another file implementing the interface specified in 453# eap_sim_db.h. 454OBJS += src/eap_server/eap_sim_db.c 455NEED_FIPS186_2_PRF=y 456endif 457 458ifdef CONFIG_EAP_PAX 459L_CFLAGS += -DEAP_SERVER_PAX 460OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c 461endif 462 463ifdef CONFIG_EAP_PSK 464L_CFLAGS += -DEAP_SERVER_PSK 465OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c 466NEED_AES_ENCBLOCK=y 467NEED_AES_EAX=y 468endif 469 470ifdef CONFIG_EAP_SAKE 471L_CFLAGS += -DEAP_SERVER_SAKE 472OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c 473endif 474 475ifdef CONFIG_EAP_GPSK 476L_CFLAGS += -DEAP_SERVER_GPSK 477OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c 478ifdef CONFIG_EAP_GPSK_SHA256 479L_CFLAGS += -DEAP_GPSK_SHA256 480endif 481endif 482 483ifdef CONFIG_EAP_PWD 484L_CFLAGS += -DEAP_SERVER_PWD 485OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c 486NEED_ECC=y 487NEED_DRAGONFLY=y 488endif 489 490ifdef CONFIG_EAP_EKE 491L_CFLAGS += -DEAP_SERVER_EKE 492OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 493NEED_DH_GROUPS=y 494NEED_DH_GROUPS_ALL=y 495endif 496 497ifdef CONFIG_EAP_VENDOR_TEST 498L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 499OBJS += src/eap_server/eap_server_vendor_test.c 500endif 501 502ifdef CONFIG_EAP_FAST 503L_CFLAGS += -DEAP_SERVER_FAST 504OBJS += src/eap_server/eap_server_fast.c 505OBJS += src/eap_common/eap_fast_common.c 506TLS_FUNCS=y 507NEED_T_PRF=y 508NEED_AES_UNWRAP=y 509endif 510 511ifdef CONFIG_EAP_TEAP 512L_CFLAGS += -DEAP_SERVER_TEAP 513OBJS += src/eap_server/eap_server_teap.c 514OBJS += src/eap_common/eap_teap_common.c 515TLS_FUNCS=y 516NEED_T_PRF=y 517NEED_SHA384=y 518NEED_TLS_PRF_SHA256=y 519NEED_TLS_PRF_SHA384=y 520NEED_AES_UNWRAP=y 521endif 522 523ifdef CONFIG_WPS 524L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 525OBJS += src/utils/uuid.c 526OBJS += src/ap/wps_hostapd.c 527OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 528OBJS += src/wps/wps.c 529OBJS += src/wps/wps_common.c 530OBJS += src/wps/wps_attr_parse.c 531OBJS += src/wps/wps_attr_build.c 532OBJS += src/wps/wps_attr_process.c 533OBJS += src/wps/wps_dev_attr.c 534OBJS += src/wps/wps_enrollee.c 535OBJS += src/wps/wps_registrar.c 536NEED_DH_GROUPS=y 537NEED_BASE64=y 538NEED_AES_CBC=y 539NEED_MODEXP=y 540CONFIG_EAP=y 541 542ifdef CONFIG_WPS_NFC 543L_CFLAGS += -DCONFIG_WPS_NFC 544OBJS += src/wps/ndef.c 545NEED_WPS_OOB=y 546endif 547 548ifdef NEED_WPS_OOB 549L_CFLAGS += -DCONFIG_WPS_OOB 550endif 551 552ifdef CONFIG_WPS_UPNP 553L_CFLAGS += -DCONFIG_WPS_UPNP 554OBJS += src/wps/wps_upnp.c 555OBJS += src/wps/wps_upnp_ssdp.c 556OBJS += src/wps/wps_upnp_web.c 557OBJS += src/wps/wps_upnp_event.c 558OBJS += src/wps/wps_upnp_ap.c 559OBJS += src/wps/upnp_xml.c 560OBJS += src/wps/httpread.c 561OBJS += src/wps/http_client.c 562OBJS += src/wps/http_server.c 563endif 564 565ifdef CONFIG_WPS_STRICT 566L_CFLAGS += -DCONFIG_WPS_STRICT 567OBJS += src/wps/wps_validate.c 568endif 569 570ifdef CONFIG_WPS_TESTING 571L_CFLAGS += -DCONFIG_WPS_TESTING 572endif 573 574endif 575 576ifdef CONFIG_DPP 577L_CFLAGS += -DCONFIG_DPP 578OBJS += src/common/dpp.c 579OBJS += src/common/dpp_auth.c 580OBJS += src/common/dpp_backup.c 581OBJS += src/common/dpp_crypto.c 582OBJS += src/common/dpp_pkex.c 583OBJS += src/common/dpp_reconfig.c 584OBJS += src/common/dpp_tcp.c 585OBJS += src/ap/dpp_hostapd.c 586OBJS += src/ap/gas_query_ap.c 587NEED_AES_SIV=y 588NEED_HMAC_SHA256_KDF=y 589NEED_HMAC_SHA384_KDF=y 590NEED_HMAC_SHA512_KDF=y 591NEED_SHA384=y 592NEED_SHA512=y 593NEED_ECC=y 594NEED_JSON=y 595NEED_GAS=y 596NEED_BASE64=y 597NEED_ASN1=y 598ifdef CONFIG_DPP2 599L_CFLAGS += -DCONFIG_DPP2 600endif 601ifdef CONFIG_DPP3 602L_CFLAGS += -DCONFIG_DPP3 603endif 604endif 605 606ifdef CONFIG_NAN_USD 607OBJS += src/common/nan_de.c 608OBJS += src/ap/nan_usd_ap.c 609L_CFLAGS += -DCONFIG_NAN_USD 610endif 611 612ifdef CONFIG_PASN 613L_CFLAGS += -DCONFIG_PASN 614L_CFLAGS += -DCONFIG_PTKSA_CACHE 615NEED_HMAC_SHA256_KDF=y 616NEED_HMAC_SHA384_KDF=y 617NEED_SHA256=y 618NEED_SHA384=y 619endif 620 621ifdef CONFIG_EAP_IKEV2 622L_CFLAGS += -DEAP_SERVER_IKEV2 623OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 624OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 625NEED_DH_GROUPS=y 626NEED_DH_GROUPS_ALL=y 627NEED_MODEXP=y 628NEED_CIPHER=y 629endif 630 631ifdef CONFIG_EAP_TNC 632L_CFLAGS += -DEAP_SERVER_TNC 633OBJS += src/eap_server/eap_server_tnc.c 634OBJS += src/eap_server/tncs.c 635NEED_BASE64=y 636ifndef CONFIG_DRIVER_BSD 637LIBS += -ldl 638endif 639endif 640 641# Basic EAP functionality is needed for EAPOL 642OBJS += eap_register.c 643OBJS += src/eap_server/eap_server.c 644OBJS += src/eap_common/eap_common.c 645OBJS += src/eap_server/eap_server_methods.c 646OBJS += src/eap_server/eap_server_identity.c 647L_CFLAGS += -DEAP_SERVER_IDENTITY 648 649ifdef CONFIG_EAP 650L_CFLAGS += -DEAP_SERVER 651endif 652 653ifdef CONFIG_PKCS12 654L_CFLAGS += -DPKCS12_FUNCS 655endif 656 657ifdef NEED_DRAGONFLY 658OBJS += src/common/dragonfly.c 659endif 660 661ifdef MS_FUNCS 662OBJS += src/crypto/ms_funcs.c 663NEED_DES=y 664NEED_MD4=y 665endif 666 667ifdef CHAP 668OBJS += src/eap_common/chap.c 669endif 670 671ifdef CONFIG_RADIUS_TLS 672TLS_FUNCS=y 673L_CFLAGS += -DCONFIG_RADIUS_TLS 674endif 675 676ifdef TLS_FUNCS 677NEED_DES=y 678# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 679L_CFLAGS += -DEAP_TLS_FUNCS 680OBJS += src/eap_server/eap_server_tls_common.c 681NEED_TLS_PRF=y 682endif 683 684ifndef CONFIG_TLS 685CONFIG_TLS=openssl 686endif 687 688ifdef CONFIG_TLSV11 689L_CFLAGS += -DCONFIG_TLSV11 690endif 691 692ifdef CONFIG_TLSV12 693L_CFLAGS += -DCONFIG_TLSV12 694endif 695 696ifeq ($(CONFIG_TLS), openssl) 697L_CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 698ifdef TLS_FUNCS 699OBJS += src/crypto/tls_openssl.c 700OBJS += src/crypto/tls_openssl_ocsp.c 701LIBS += -lssl 702endif 703OBJS += src/crypto/crypto_openssl.c 704HOBJS += src/crypto/crypto_openssl.c 705ifdef NEED_FIPS186_2_PRF 706OBJS += src/crypto/fips_prf_openssl.c 707endif 708NEED_TLS_PRF_SHA256=y 709LIBS += -lcrypto 710LIBS_h += -lcrypto 711ifndef CONFIG_TLS_DEFAULT_CIPHERS 712CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 713endif 714L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 715endif 716 717ifeq ($(CONFIG_TLS), gnutls) 718ifndef CONFIG_CRYPTO 719# default to libgcrypt 720CONFIG_CRYPTO=gnutls 721endif 722ifdef TLS_FUNCS 723OBJS += src/crypto/tls_gnutls.c 724LIBS += -lgnutls -lgpg-error 725endif 726OBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 727HOBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 728ifdef NEED_FIPS186_2_PRF 729OBJS += src/crypto/fips_prf_internal.c 730OBJS += src/crypto/sha1-internal.c 731endif 732ifeq ($(CONFIG_CRYPTO), gnutls) 733LIBS += -lgcrypt 734LIBS_h += -lgcrypt 735CONFIG_INTERNAL_RC4=y 736CONFIG_INTERNAL_DH_GROUP5=y 737endif 738ifeq ($(CONFIG_CRYPTO), nettle) 739LIBS += -lnettle -lgmp 740LIBS_p += -lnettle -lgmp 741CONFIG_INTERNAL_RC4=y 742CONFIG_INTERNAL_DH_GROUP5=y 743endif 744endif 745 746ifeq ($(CONFIG_TLS), internal) 747ifndef CONFIG_CRYPTO 748CONFIG_CRYPTO=internal 749endif 750ifdef TLS_FUNCS 751OBJS += src/crypto/crypto_internal-rsa.c 752OBJS += src/crypto/tls_internal.c 753OBJS += src/tls/tlsv1_common.c 754OBJS += src/tls/tlsv1_record.c 755OBJS += src/tls/tlsv1_cred.c 756OBJS += src/tls/tlsv1_server.c 757OBJS += src/tls/tlsv1_server_write.c 758OBJS += src/tls/tlsv1_server_read.c 759OBJS += src/tls/rsa.c 760OBJS += src/tls/x509v3.c 761OBJS += src/tls/pkcs1.c 762OBJS += src/tls/pkcs5.c 763OBJS += src/tls/pkcs8.c 764NEED_ASN1=y 765NEED_BASE64=y 766NEED_TLS_PRF=y 767ifdef CONFIG_TLSV12 768NEED_TLS_PRF_SHA256=y 769endif 770NEED_MODEXP=y 771NEED_CIPHER=y 772L_CFLAGS += -DCONFIG_TLS_INTERNAL 773L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 774endif 775ifdef NEED_CIPHER 776NEED_DES=y 777OBJS += src/crypto/crypto_internal-cipher.c 778endif 779ifdef NEED_MODEXP 780OBJS += src/crypto/crypto_internal-modexp.c 781OBJS += src/tls/bignum.c 782endif 783ifeq ($(CONFIG_CRYPTO), libtomcrypt) 784OBJS += src/crypto/crypto_libtomcrypt.c 785LIBS += -ltomcrypt -ltfm 786LIBS_h += -ltomcrypt -ltfm 787CONFIG_INTERNAL_SHA256=y 788CONFIG_INTERNAL_RC4=y 789CONFIG_INTERNAL_DH_GROUP5=y 790endif 791ifeq ($(CONFIG_CRYPTO), internal) 792OBJS += src/crypto/crypto_internal.c 793NEED_AES_DEC=y 794L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 795ifdef CONFIG_INTERNAL_LIBTOMMATH 796L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 797ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 798L_CFLAGS += -DLTM_FAST 799endif 800else 801LIBS += -ltommath 802LIBS_h += -ltommath 803endif 804CONFIG_INTERNAL_AES=y 805CONFIG_INTERNAL_DES=y 806CONFIG_INTERNAL_SHA1=y 807CONFIG_INTERNAL_MD4=y 808CONFIG_INTERNAL_MD5=y 809CONFIG_INTERNAL_SHA256=y 810CONFIG_INTERNAL_SHA384=y 811CONFIG_INTERNAL_SHA512=y 812CONFIG_INTERNAL_RC4=y 813CONFIG_INTERNAL_DH_GROUP5=y 814endif 815ifeq ($(CONFIG_CRYPTO), cryptoapi) 816OBJS += src/crypto/crypto_cryptoapi.c 817OBJS_p += src/crypto/crypto_cryptoapi.c 818L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 819CONFIG_INTERNAL_SHA256=y 820CONFIG_INTERNAL_RC4=y 821endif 822endif 823 824ifeq ($(CONFIG_TLS), none) 825ifdef TLS_FUNCS 826OBJS += src/crypto/tls_none.c 827L_CFLAGS += -DEAP_TLS_NONE 828CONFIG_INTERNAL_AES=y 829CONFIG_INTERNAL_SHA1=y 830CONFIG_INTERNAL_MD5=y 831endif 832OBJS += src/crypto/crypto_none.c 833OBJS_p += src/crypto/crypto_none.c 834CONFIG_INTERNAL_SHA256=y 835CONFIG_INTERNAL_RC4=y 836endif 837 838ifndef TLS_FUNCS 839OBJS += src/crypto/tls_none.c 840ifeq ($(CONFIG_TLS), internal) 841CONFIG_INTERNAL_AES=y 842CONFIG_INTERNAL_SHA1=y 843CONFIG_INTERNAL_MD5=y 844CONFIG_INTERNAL_RC4=y 845endif 846endif 847 848AESOBJS = # none so far 849ifdef CONFIG_INTERNAL_AES 850AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 851endif 852 853ifneq ($(CONFIG_TLS), openssl) 854AESOBJS += src/crypto/aes-wrap.c 855endif 856ifdef NEED_AES_EAX 857AESOBJS += src/crypto/aes-eax.c 858NEED_AES_CTR=y 859endif 860ifdef NEED_AES_SIV 861AESOBJS += src/crypto/aes-siv.c 862NEED_AES_CTR=y 863endif 864ifdef NEED_AES_CTR 865AESOBJS += src/crypto/aes-ctr.c 866endif 867ifdef NEED_AES_ENCBLOCK 868AESOBJS += src/crypto/aes-encblock.c 869endif 870ifneq ($(CONFIG_TLS), openssl) 871AESOBJS += src/crypto/aes-omac1.c 872endif 873ifdef NEED_AES_UNWRAP 874ifneq ($(CONFIG_TLS), openssl) 875NEED_AES_DEC=y 876AESOBJS += src/crypto/aes-unwrap.c 877endif 878endif 879ifdef NEED_AES_CBC 880NEED_AES_DEC=y 881ifneq ($(CONFIG_TLS), openssl) 882AESOBJS += src/crypto/aes-cbc.c 883endif 884endif 885ifdef NEED_AES_DEC 886ifdef CONFIG_INTERNAL_AES 887AESOBJS += src/crypto/aes-internal-dec.c 888endif 889endif 890ifdef NEED_AES 891OBJS += $(AESOBJS) 892endif 893 894SHA1OBJS = 895ifdef NEED_SHA1 896ifneq ($(CONFIG_TLS), openssl) 897ifneq ($(CONFIG_TLS), gnutls) 898SHA1OBJS += src/crypto/sha1.c 899endif 900endif 901SHA1OBJS += src/crypto/sha1-prf.c 902ifdef CONFIG_INTERNAL_SHA1 903SHA1OBJS += src/crypto/sha1-internal.c 904ifdef NEED_FIPS186_2_PRF 905SHA1OBJS += src/crypto/fips_prf_internal.c 906endif 907endif 908ifneq ($(CONFIG_TLS), openssl) 909SHA1OBJS += src/crypto/sha1-pbkdf2.c 910endif 911ifdef NEED_T_PRF 912SHA1OBJS += src/crypto/sha1-tprf.c 913endif 914ifdef NEED_TLS_PRF 915SHA1OBJS += src/crypto/sha1-tlsprf.c 916endif 917endif 918 919ifdef NEED_SHA1 920OBJS += $(SHA1OBJS) 921endif 922 923ifneq ($(CONFIG_TLS), openssl) 924ifneq ($(CONFIG_TLS), gnutls) 925OBJS += src/crypto/md5.c 926endif 927endif 928 929ifdef NEED_MD5 930ifdef CONFIG_INTERNAL_MD5 931OBJS += src/crypto/md5-internal.c 932HOBJS += src/crypto/md5-internal.c 933endif 934endif 935 936ifdef NEED_MD4 937ifdef CONFIG_INTERNAL_MD4 938OBJS += src/crypto/md4-internal.c 939endif 940endif 941 942ifdef NEED_DES 943ifdef CONFIG_INTERNAL_DES 944OBJS += src/crypto/des-internal.c 945endif 946endif 947 948ifdef CONFIG_NO_RC4 949L_CFLAGS += -DCONFIG_NO_RC4 950endif 951 952ifdef NEED_RC4 953ifdef CONFIG_INTERNAL_RC4 954ifndef CONFIG_NO_RC4 955OBJS += src/crypto/rc4.c 956endif 957endif 958endif 959 960ifdef CONFIG_SAE 961ifdef NEED_SHA384 962# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled. 963NEED_HMAC_SHA384_KDF=y 964endif 965ifdef NEED_SHA512 966# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled. 967NEED_HMAC_SHA512_KDF=y 968endif 969endif 970 971L_CFLAGS += -DCONFIG_SHA256 972ifneq ($(CONFIG_TLS), openssl) 973ifneq ($(CONFIG_TLS), gnutls) 974OBJS += src/crypto/sha256.c 975endif 976endif 977OBJS += src/crypto/sha256-prf.c 978ifdef CONFIG_INTERNAL_SHA256 979OBJS += src/crypto/sha256-internal.c 980endif 981ifdef NEED_TLS_PRF_SHA256 982OBJS += src/crypto/sha256-tlsprf.c 983endif 984ifdef NEED_TLS_PRF_SHA384 985OBJS += src/crypto/sha384-tlsprf.c 986endif 987ifdef NEED_HMAC_SHA256_KDF 988OBJS += src/crypto/sha256-kdf.c 989endif 990ifdef NEED_HMAC_SHA384_KDF 991OBJS += src/crypto/sha384-kdf.c 992endif 993ifdef NEED_HMAC_SHA512_KDF 994OBJS += src/crypto/sha512-kdf.c 995endif 996ifdef NEED_SHA384 997L_CFLAGS += -DCONFIG_SHA384 998ifneq ($(CONFIG_TLS), openssl) 999ifneq ($(CONFIG_TLS), gnutls) 1000OBJS += src/crypto/sha384.c 1001endif 1002endif 1003OBJS += src/crypto/sha384-prf.c 1004endif 1005ifdef NEED_SHA512 1006L_CFLAGS += -DCONFIG_SHA512 1007ifneq ($(CONFIG_TLS), openssl) 1008ifneq ($(CONFIG_TLS), linux) 1009ifneq ($(CONFIG_TLS), gnutls) 1010OBJS += src/crypto/sha512.c 1011endif 1012endif 1013endif 1014OBJS += src/crypto/sha512-prf.c 1015endif 1016 1017ifdef CONFIG_INTERNAL_SHA384 1018L_CFLAGS += -DCONFIG_INTERNAL_SHA384 1019OBJS += src/crypto/sha384-internal.c 1020endif 1021 1022ifdef CONFIG_INTERNAL_SHA512 1023L_CFLAGS += -DCONFIG_INTERNAL_SHA512 1024OBJS += src/crypto/sha512-internal.c 1025endif 1026 1027ifdef NEED_ASN1 1028OBJS += src/tls/asn1.c 1029endif 1030 1031ifdef NEED_DH_GROUPS 1032OBJS += src/crypto/dh_groups.c 1033endif 1034ifdef NEED_DH_GROUPS_ALL 1035L_CFLAGS += -DALL_DH_GROUPS 1036endif 1037ifdef CONFIG_INTERNAL_DH_GROUP5 1038ifdef NEED_DH_GROUPS 1039OBJS += src/crypto/dh_group5.c 1040endif 1041endif 1042 1043ifdef NEED_ECC 1044L_CFLAGS += -DCONFIG_ECC 1045endif 1046 1047ifdef CONFIG_NO_RANDOM_POOL 1048L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 1049else 1050OBJS += src/crypto/random.c 1051HOBJS += src/crypto/random.c 1052HOBJS += src/utils/eloop.c 1053HOBJS += $(SHA1OBJS) 1054ifneq ($(CONFIG_TLS), openssl) 1055HOBJS += src/crypto/md5.c 1056endif 1057endif 1058 1059ifdef CONFIG_RADIUS_SERVER 1060L_CFLAGS += -DRADIUS_SERVER 1061OBJS += src/radius/radius_server.c 1062endif 1063 1064ifdef CONFIG_IPV6 1065L_CFLAGS += -DCONFIG_IPV6 1066endif 1067 1068ifdef CONFIG_DRIVER_RADIUS_ACL 1069L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1070endif 1071 1072ifdef NEED_BASE64 1073OBJS += src/utils/base64.c 1074endif 1075 1076ifdef NEED_JSON 1077OBJS += src/utils/json.c 1078L_CFLAGS += -DCONFIG_JSON 1079endif 1080 1081ifdef NEED_AP_MLME 1082OBJS += src/ap/wmm.c 1083OBJS += src/ap/ap_list.c 1084OBJS += src/ap/comeback_token.c 1085OBJS += src/pasn/pasn_responder.c 1086OBJS += src/pasn/pasn_common.c 1087OBJS += src/ap/ieee802_11.c 1088OBJS += src/ap/hw_features.c 1089OBJS += src/ap/dfs.c 1090L_CFLAGS += -DNEED_AP_MLME 1091endif 1092OBJS += src/ap/ieee802_11_ht.c 1093 1094ifdef CONFIG_IEEE80211AC 1095OBJS += src/ap/ieee802_11_vht.c 1096endif 1097 1098ifdef CONFIG_IEEE80211AX 1099OBJS += src/ap/ieee802_11_he.c 1100endif 1101 1102ifdef CONFIG_P2P_MANAGER 1103L_CFLAGS += -DCONFIG_P2P_MANAGER 1104OBJS += src/ap/p2p_hostapd.c 1105endif 1106 1107ifdef CONFIG_HS20 1108L_CFLAGS += -DCONFIG_HS20 1109OBJS += src/ap/hs20.c 1110CONFIG_INTERWORKING=y 1111endif 1112 1113ifdef CONFIG_INTERWORKING 1114L_CFLAGS += -DCONFIG_INTERWORKING 1115NEED_GAS=y 1116endif 1117 1118ifdef NEED_GAS 1119OBJS += src/common/gas.c 1120OBJS += src/ap/gas_serv.c 1121endif 1122 1123ifdef CONFIG_PROXYARP 1124L_CFLAGS += -DCONFIG_PROXYARP 1125OBJS += src/ap/x_snoop.c 1126OBJS += src/ap/dhcp_snoop.c 1127ifdef CONFIG_IPV6 1128OBJS += src/ap/ndisc_snoop.c 1129endif 1130endif 1131 1132OBJS += src/drivers/driver_common.c 1133 1134ifdef CONFIG_ACS 1135L_CFLAGS += -DCONFIG_ACS 1136OBJS += src/ap/acs.c 1137LIBS += -lm 1138endif 1139 1140ifdef CONFIG_NO_STDOUT_DEBUG 1141L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1142endif 1143 1144ifdef CONFIG_DEBUG_SYSLOG 1145L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 1146endif 1147 1148ifdef CONFIG_DEBUG_LINUX_TRACING 1149L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1150endif 1151 1152ifdef CONFIG_DEBUG_FILE 1153L_CFLAGS += -DCONFIG_DEBUG_FILE 1154endif 1155 1156ifdef CONFIG_ANDROID_LOG 1157L_CFLAGS += -DCONFIG_ANDROID_LOG 1158endif 1159 1160OBJS_c = hostapd_cli.c 1161OBJS_c += src/common/wpa_ctrl.c 1162OBJS_c += src/utils/os_$(CONFIG_OS).c 1163OBJS_c += src/common/cli.c 1164OBJS_c += src/utils/eloop.c 1165OBJS_c += src/utils/common.c 1166ifdef CONFIG_WPA_TRACE 1167OBJS_c += src/utils/trace.c 1168endif 1169OBJS_c += src/utils/wpa_debug.c 1170ifdef CONFIG_WPA_CLI_EDIT 1171OBJS_c += src/utils/edit.c 1172else 1173OBJS_c += src/utils/edit_simple.c 1174endif 1175 1176ifeq ($(filter gce_x86 gce_x86_64 calypso, $(TARGET_DEVICE)),) 1177ifdef CONFIG_CTRL_IFACE_AIDL 1178HOSTAPD_USE_AIDL=y 1179L_CFLAGS += -DCONFIG_CTRL_IFACE_AIDL 1180L_CPPFLAGS = -Wall -Werror 1181endif 1182endif 1183 1184######################## 1185 1186include $(CLEAR_VARS) 1187LOCAL_MODULE := hostapd_cli 1188LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1189LOCAL_LICENSE_CONDITIONS := notice unencumbered 1190LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1191LOCAL_PROPRIETARY_MODULE := true 1192LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1193LOCAL_CFLAGS := $(L_CFLAGS) 1194LOCAL_SRC_FILES := $(OBJS_c) 1195LOCAL_C_INCLUDES := $(INCLUDES) 1196include $(BUILD_EXECUTABLE) 1197 1198######################## 1199include $(CLEAR_VARS) 1200LOCAL_MODULE := hostapd 1201LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1202LOCAL_LICENSE_CONDITIONS := notice unencumbered 1203LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1204LOCAL_MODULE_TAGS := optional 1205LOCAL_PROPRIETARY_MODULE := true 1206LOCAL_MODULE_RELATIVE_PATH := hw 1207LOCAL_REQUIRED_MODULES += android.hardware.wifi.hostapd.xml 1208ifdef CONFIG_DRIVER_CUSTOM 1209LOCAL_STATIC_LIBRARIES := libCustomWifi 1210endif 1211ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 1212LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 1213endif 1214LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 1215ifdef CONFIG_DRIVER_NL80211 1216ifneq ($(wildcard external/libnl),) 1217LOCAL_SHARED_LIBRARIES += libnl 1218else 1219LOCAL_STATIC_LIBRARIES += libnl_2 1220endif 1221endif 1222ifeq ($(HOSTAPD_USE_AIDL), y) 1223LOCAL_SHARED_LIBRARIES += android.hardware.wifi.hostapd-V3-ndk 1224LOCAL_SHARED_LIBRARIES += android.hardware.wifi.common-V2-ndk 1225LOCAL_SHARED_LIBRARIES += libbase libutils 1226LOCAL_SHARED_LIBRARIES += libbinder_ndk 1227LOCAL_STATIC_LIBRARIES += libhostapd_aidl 1228endif 1229LOCAL_CFLAGS := $(L_CFLAGS) 1230LOCAL_SRC_FILES := $(OBJS) 1231LOCAL_C_INCLUDES := $(INCLUDES) 1232LOCAL_INIT_RC := hostapd.android.rc 1233include $(BUILD_EXECUTABLE) 1234 1235######################## 1236include $(CLEAR_VARS) 1237LOCAL_MODULE := hostapd_noaidl 1238LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1239LOCAL_LICENSE_CONDITIONS := notice unencumbered 1240LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1241LOCAL_MODULE_TAGS := optional 1242LOCAL_PROPRIETARY_MODULE := true 1243ifdef CONFIG_DRIVER_CUSTOM 1244LOCAL_STATIC_LIBRARIES := libCustomWifi 1245endif 1246ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 1247LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 1248endif 1249LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 1250ifdef CONFIG_DRIVER_NL80211 1251ifneq ($(wildcard external/libnl),) 1252LOCAL_SHARED_LIBRARIES += libnl 1253else 1254LOCAL_STATIC_LIBRARIES += libnl_2 1255endif 1256endif 1257LOCAL_CFLAGS := $(patsubst -DCONFIG_CTRL_IFACE_AIDL,,$(L_CFLAGS)) 1258LOCAL_SRC_FILES := $(OBJS) 1259LOCAL_C_INCLUDES := $(INCLUDES) 1260include $(BUILD_EXECUTABLE) 1261 1262ifeq ($(HOSTAPD_USE_AIDL), y) 1263### Aidl service library ### 1264######################## 1265include $(CLEAR_VARS) 1266LOCAL_MODULE := libhostapd_aidl 1267LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1268LOCAL_LICENSE_CONDITIONS := notice unencumbered 1269LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYING $(LOCAL_PATH)/../NOTICE 1270LOCAL_VENDOR_MODULE := true 1271LOCAL_CPPFLAGS := $(L_CPPFLAGS) 1272LOCAL_CFLAGS := $(L_CFLAGS) 1273LOCAL_C_INCLUDES := $(INCLUDES) 1274LOCAL_SRC_FILES := \ 1275 aidl/aidl.cpp \ 1276 aidl/hostapd.cpp 1277LOCAL_SHARED_LIBRARIES := \ 1278 android.hardware.wifi.hostapd-V3-ndk \ 1279 android.hardware.wifi.common-V2-ndk \ 1280 libbinder_ndk \ 1281 libbase \ 1282 libutils \ 1283 liblog 1284LOCAL_EXPORT_C_INCLUDE_DIRS := \ 1285 $(LOCAL_PATH)/aidl 1286include $(BUILD_STATIC_LIBRARY) 1287endif # HOSTAPD_USE_AIDL == y 1288endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 1289