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 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 279OBJS += src/common/sae_pk.c 280endif 281NEED_ECC=y 282NEED_DH_GROUPS=y 283NEED_HMAC_SHA256_KDF=y 284NEED_DRAGONFLY=y 285endif 286 287ifdef CONFIG_OWE 288L_CFLAGS += -DCONFIG_OWE 289NEED_ECC=y 290NEED_HMAC_SHA256_KDF=y 291NEED_HMAC_SHA384_KDF=y 292NEED_HMAC_SHA512_KDF=y 293NEED_SHA384=y 294NEED_SHA512=y 295endif 296 297ifdef CONFIG_WAPI_INTERFACE 298L_CFLAGS += -DCONFIG_WAPI_INTERFACE 299endif 300 301ifdef CONFIG_FILS 302L_CFLAGS += -DCONFIG_FILS 303OBJS += src/ap/fils_hlp.c 304NEED_SHA384=y 305NEED_AES_SIV=y 306ifdef CONFIG_FILS_SK_PFS 307L_CFLAGS += -DCONFIG_FILS_SK_PFS 308NEED_ECC=y 309endif 310endif 311 312ifdef CONFIG_WNM 313L_CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP 314OBJS += src/ap/wnm_ap.c 315endif 316 317ifdef CONFIG_IEEE80211AC 318L_CFLAGS += -DCONFIG_IEEE80211AC 319endif 320 321ifdef CONFIG_IEEE80211BE 322CONFIG_IEEE80211AX=y 323L_CFLAGS += -DCONFIG_IEEE80211BE 324OBJS += src/ap/ieee802_11_eht.c 325endif 326 327ifdef CONFIG_IEEE80211AX 328L_CFLAGS += -DCONFIG_IEEE80211AX 329endif 330 331ifdef CONFIG_MBO 332L_CFLAGS += -DCONFIG_MBO 333OBJS += src/ap/mbo_ap.c 334endif 335 336ifdef CONFIG_FST 337L_CFLAGS += -DCONFIG_FST 338OBJS += src/fst/fst.c 339OBJS += src/fst/fst_group.c 340OBJS += src/fst/fst_iface.c 341OBJS += src/fst/fst_session.c 342OBJS += src/fst/fst_ctrl_aux.c 343ifdef CONFIG_FST_TEST 344L_CFLAGS += -DCONFIG_FST_TEST 345endif 346ifndef CONFIG_NO_CTRL_IFACE 347OBJS += src/fst/fst_ctrl_iface.c 348endif 349endif 350 351ifdef CONFIG_WEP 352L_CFLAGS += -DCONFIG_WEP 353endif 354 355ifdef CONFIG_NO_TKIP 356L_CFLAGS += -DCONFIG_NO_TKIP 357endif 358 359 360include $(LOCAL_PATH)/src/drivers/drivers.mk 361 362OBJS += $(DRV_AP_OBJS) 363L_CFLAGS += $(DRV_AP_CFLAGS) 364LDFLAGS += $(DRV_AP_LDFLAGS) 365LIBS += $(DRV_AP_LIBS) 366 367ifdef CONFIG_L2_PACKET 368ifdef CONFIG_DNET_PCAP 369ifdef CONFIG_L2_FREEBSD 370LIBS += -lpcap 371OBJS += src/l2_packet/l2_packet_freebsd.c 372else 373LIBS += -ldnet -lpcap 374OBJS += src/l2_packet/l2_packet_pcap.c 375endif 376else 377OBJS += src/l2_packet/l2_packet_linux.c 378endif 379else 380OBJS += src/l2_packet/l2_packet_none.c 381endif 382 383 384ifdef CONFIG_EAP_MD5 385L_CFLAGS += -DEAP_SERVER_MD5 386OBJS += src/eap_server/eap_server_md5.c 387CHAP=y 388endif 389 390ifdef CONFIG_EAP_TLS 391L_CFLAGS += -DEAP_SERVER_TLS 392OBJS += src/eap_server/eap_server_tls.c 393TLS_FUNCS=y 394endif 395 396ifdef CONFIG_EAP_UNAUTH_TLS 397L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS 398ifndef CONFIG_EAP_TLS 399OBJS += src/eap_server/eap_server_tls.c 400TLS_FUNCS=y 401endif 402endif 403 404ifdef CONFIG_EAP_PEAP 405L_CFLAGS += -DEAP_SERVER_PEAP 406OBJS += src/eap_server/eap_server_peap.c 407OBJS += src/eap_common/eap_peap_common.c 408TLS_FUNCS=y 409CONFIG_EAP_MSCHAPV2=y 410endif 411 412ifdef CONFIG_EAP_TTLS 413L_CFLAGS += -DEAP_SERVER_TTLS 414OBJS += src/eap_server/eap_server_ttls.c 415TLS_FUNCS=y 416CHAP=y 417endif 418 419ifdef CONFIG_EAP_MSCHAPV2 420L_CFLAGS += -DEAP_SERVER_MSCHAPV2 421OBJS += src/eap_server/eap_server_mschapv2.c 422MS_FUNCS=y 423endif 424 425ifdef CONFIG_EAP_GTC 426L_CFLAGS += -DEAP_SERVER_GTC 427OBJS += src/eap_server/eap_server_gtc.c 428endif 429 430ifdef CONFIG_EAP_SIM 431L_CFLAGS += -DEAP_SERVER_SIM 432OBJS += src/eap_server/eap_server_sim.c 433CONFIG_EAP_SIM_COMMON=y 434NEED_AES_CBC=y 435endif 436 437ifdef CONFIG_EAP_AKA 438L_CFLAGS += -DEAP_SERVER_AKA 439OBJS += src/eap_server/eap_server_aka.c 440CONFIG_EAP_SIM_COMMON=y 441NEED_AES_CBC=y 442endif 443 444ifdef CONFIG_EAP_AKA_PRIME 445L_CFLAGS += -DEAP_SERVER_AKA_PRIME 446endif 447 448ifdef CONFIG_EAP_SIM_COMMON 449OBJS += src/eap_common/eap_sim_common.c 450# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 451# replaced with another file implementing the interface specified in 452# eap_sim_db.h. 453OBJS += src/eap_server/eap_sim_db.c 454NEED_FIPS186_2_PRF=y 455endif 456 457ifdef CONFIG_EAP_PAX 458L_CFLAGS += -DEAP_SERVER_PAX 459OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c 460endif 461 462ifdef CONFIG_EAP_PSK 463L_CFLAGS += -DEAP_SERVER_PSK 464OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c 465NEED_AES_ENCBLOCK=y 466NEED_AES_EAX=y 467endif 468 469ifdef CONFIG_EAP_SAKE 470L_CFLAGS += -DEAP_SERVER_SAKE 471OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c 472endif 473 474ifdef CONFIG_EAP_GPSK 475L_CFLAGS += -DEAP_SERVER_GPSK 476OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c 477ifdef CONFIG_EAP_GPSK_SHA256 478L_CFLAGS += -DEAP_GPSK_SHA256 479endif 480endif 481 482ifdef CONFIG_EAP_PWD 483L_CFLAGS += -DEAP_SERVER_PWD 484OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c 485NEED_ECC=y 486NEED_DRAGONFLY=y 487endif 488 489ifdef CONFIG_EAP_EKE 490L_CFLAGS += -DEAP_SERVER_EKE 491OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 492NEED_DH_GROUPS=y 493NEED_DH_GROUPS_ALL=y 494endif 495 496ifdef CONFIG_EAP_VENDOR_TEST 497L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 498OBJS += src/eap_server/eap_server_vendor_test.c 499endif 500 501ifdef CONFIG_EAP_FAST 502L_CFLAGS += -DEAP_SERVER_FAST 503OBJS += src/eap_server/eap_server_fast.c 504OBJS += src/eap_common/eap_fast_common.c 505TLS_FUNCS=y 506NEED_T_PRF=y 507NEED_AES_UNWRAP=y 508endif 509 510ifdef CONFIG_EAP_TEAP 511L_CFLAGS += -DEAP_SERVER_TEAP 512OBJS += src/eap_server/eap_server_teap.c 513OBJS += src/eap_common/eap_teap_common.c 514TLS_FUNCS=y 515NEED_T_PRF=y 516NEED_SHA384=y 517NEED_TLS_PRF_SHA256=y 518NEED_TLS_PRF_SHA384=y 519NEED_AES_UNWRAP=y 520endif 521 522ifdef CONFIG_WPS 523L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 524OBJS += src/utils/uuid.c 525OBJS += src/ap/wps_hostapd.c 526OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 527OBJS += src/wps/wps.c 528OBJS += src/wps/wps_common.c 529OBJS += src/wps/wps_attr_parse.c 530OBJS += src/wps/wps_attr_build.c 531OBJS += src/wps/wps_attr_process.c 532OBJS += src/wps/wps_dev_attr.c 533OBJS += src/wps/wps_enrollee.c 534OBJS += src/wps/wps_registrar.c 535NEED_DH_GROUPS=y 536NEED_BASE64=y 537NEED_AES_CBC=y 538NEED_MODEXP=y 539CONFIG_EAP=y 540 541ifdef CONFIG_WPS_NFC 542L_CFLAGS += -DCONFIG_WPS_NFC 543OBJS += src/wps/ndef.c 544NEED_WPS_OOB=y 545endif 546 547ifdef NEED_WPS_OOB 548L_CFLAGS += -DCONFIG_WPS_OOB 549endif 550 551ifdef CONFIG_WPS_UPNP 552L_CFLAGS += -DCONFIG_WPS_UPNP 553OBJS += src/wps/wps_upnp.c 554OBJS += src/wps/wps_upnp_ssdp.c 555OBJS += src/wps/wps_upnp_web.c 556OBJS += src/wps/wps_upnp_event.c 557OBJS += src/wps/wps_upnp_ap.c 558OBJS += src/wps/upnp_xml.c 559OBJS += src/wps/httpread.c 560OBJS += src/wps/http_client.c 561OBJS += src/wps/http_server.c 562endif 563 564ifdef CONFIG_WPS_STRICT 565L_CFLAGS += -DCONFIG_WPS_STRICT 566OBJS += src/wps/wps_validate.c 567endif 568 569ifdef CONFIG_WPS_TESTING 570L_CFLAGS += -DCONFIG_WPS_TESTING 571endif 572 573endif 574 575ifdef CONFIG_DPP 576L_CFLAGS += -DCONFIG_DPP 577OBJS += src/common/dpp.c 578OBJS += src/common/dpp_auth.c 579OBJS += src/common/dpp_backup.c 580OBJS += src/common/dpp_crypto.c 581OBJS += src/common/dpp_pkex.c 582OBJS += src/common/dpp_reconfig.c 583OBJS += src/common/dpp_tcp.c 584OBJS += src/ap/dpp_hostapd.c 585OBJS += src/ap/gas_query_ap.c 586NEED_AES_SIV=y 587NEED_HMAC_SHA256_KDF=y 588NEED_HMAC_SHA384_KDF=y 589NEED_HMAC_SHA512_KDF=y 590NEED_SHA384=y 591NEED_SHA512=y 592NEED_ECC=y 593NEED_JSON=y 594NEED_GAS=y 595NEED_BASE64=y 596NEED_ASN1=y 597ifdef CONFIG_DPP2 598L_CFLAGS += -DCONFIG_DPP2 599endif 600ifdef CONFIG_DPP3 601L_CFLAGS += -DCONFIG_DPP3 602endif 603endif 604 605ifdef CONFIG_NAN_USD 606OBJS += src/common/nan_de.c 607OBJS += src/ap/nan_usd_ap.c 608L_CFLAGS += -DCONFIG_NAN_USD 609endif 610 611ifdef CONFIG_PASN 612L_CFLAGS += -DCONFIG_PASN 613L_CFLAGS += -DCONFIG_PTKSA_CACHE 614NEED_HMAC_SHA256_KDF=y 615NEED_HMAC_SHA384_KDF=y 616NEED_SHA256=y 617NEED_SHA384=y 618endif 619 620ifdef CONFIG_EAP_IKEV2 621L_CFLAGS += -DEAP_SERVER_IKEV2 622OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 623OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 624NEED_DH_GROUPS=y 625NEED_DH_GROUPS_ALL=y 626NEED_MODEXP=y 627NEED_CIPHER=y 628endif 629 630ifdef CONFIG_EAP_TNC 631L_CFLAGS += -DEAP_SERVER_TNC 632OBJS += src/eap_server/eap_server_tnc.c 633OBJS += src/eap_server/tncs.c 634NEED_BASE64=y 635ifndef CONFIG_DRIVER_BSD 636LIBS += -ldl 637endif 638endif 639 640# Basic EAP functionality is needed for EAPOL 641OBJS += eap_register.c 642OBJS += src/eap_server/eap_server.c 643OBJS += src/eap_common/eap_common.c 644OBJS += src/eap_server/eap_server_methods.c 645OBJS += src/eap_server/eap_server_identity.c 646L_CFLAGS += -DEAP_SERVER_IDENTITY 647 648ifdef CONFIG_EAP 649L_CFLAGS += -DEAP_SERVER 650endif 651 652ifdef CONFIG_PKCS12 653L_CFLAGS += -DPKCS12_FUNCS 654endif 655 656ifdef NEED_DRAGONFLY 657OBJS += src/common/dragonfly.c 658endif 659 660ifdef MS_FUNCS 661OBJS += src/crypto/ms_funcs.c 662NEED_DES=y 663NEED_MD4=y 664endif 665 666ifdef CHAP 667OBJS += src/eap_common/chap.c 668endif 669 670ifdef CONFIG_RADIUS_TLS 671TLS_FUNCS=y 672L_CFLAGS += -DCONFIG_RADIUS_TLS 673endif 674 675ifdef TLS_FUNCS 676NEED_DES=y 677# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 678L_CFLAGS += -DEAP_TLS_FUNCS 679OBJS += src/eap_server/eap_server_tls_common.c 680NEED_TLS_PRF=y 681endif 682 683ifndef CONFIG_TLS 684CONFIG_TLS=openssl 685endif 686 687ifdef CONFIG_TLSV11 688L_CFLAGS += -DCONFIG_TLSV11 689endif 690 691ifdef CONFIG_TLSV12 692L_CFLAGS += -DCONFIG_TLSV12 693endif 694 695ifeq ($(CONFIG_TLS), openssl) 696L_CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 697ifdef TLS_FUNCS 698OBJS += src/crypto/tls_openssl.c 699OBJS += src/crypto/tls_openssl_ocsp.c 700LIBS += -lssl 701endif 702OBJS += src/crypto/crypto_openssl.c 703HOBJS += src/crypto/crypto_openssl.c 704ifdef NEED_FIPS186_2_PRF 705OBJS += src/crypto/fips_prf_openssl.c 706endif 707NEED_TLS_PRF_SHA256=y 708LIBS += -lcrypto 709LIBS_h += -lcrypto 710ifndef CONFIG_TLS_DEFAULT_CIPHERS 711CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 712endif 713L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 714endif 715 716ifeq ($(CONFIG_TLS), gnutls) 717ifndef CONFIG_CRYPTO 718# default to libgcrypt 719CONFIG_CRYPTO=gnutls 720endif 721ifdef TLS_FUNCS 722OBJS += src/crypto/tls_gnutls.c 723LIBS += -lgnutls -lgpg-error 724endif 725OBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 726HOBJS += src/crypto/crypto_$(CONFIG_CRYPTO).c 727ifdef NEED_FIPS186_2_PRF 728OBJS += src/crypto/fips_prf_internal.c 729OBJS += src/crypto/sha1-internal.c 730endif 731ifeq ($(CONFIG_CRYPTO), gnutls) 732LIBS += -lgcrypt 733LIBS_h += -lgcrypt 734CONFIG_INTERNAL_RC4=y 735CONFIG_INTERNAL_DH_GROUP5=y 736endif 737ifeq ($(CONFIG_CRYPTO), nettle) 738LIBS += -lnettle -lgmp 739LIBS_p += -lnettle -lgmp 740CONFIG_INTERNAL_RC4=y 741CONFIG_INTERNAL_DH_GROUP5=y 742endif 743endif 744 745ifeq ($(CONFIG_TLS), internal) 746ifndef CONFIG_CRYPTO 747CONFIG_CRYPTO=internal 748endif 749ifdef TLS_FUNCS 750OBJS += src/crypto/crypto_internal-rsa.c 751OBJS += src/crypto/tls_internal.c 752OBJS += src/tls/tlsv1_common.c 753OBJS += src/tls/tlsv1_record.c 754OBJS += src/tls/tlsv1_cred.c 755OBJS += src/tls/tlsv1_server.c 756OBJS += src/tls/tlsv1_server_write.c 757OBJS += src/tls/tlsv1_server_read.c 758OBJS += src/tls/rsa.c 759OBJS += src/tls/x509v3.c 760OBJS += src/tls/pkcs1.c 761OBJS += src/tls/pkcs5.c 762OBJS += src/tls/pkcs8.c 763NEED_ASN1=y 764NEED_BASE64=y 765NEED_TLS_PRF=y 766ifdef CONFIG_TLSV12 767NEED_TLS_PRF_SHA256=y 768endif 769NEED_MODEXP=y 770NEED_CIPHER=y 771L_CFLAGS += -DCONFIG_TLS_INTERNAL 772L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 773endif 774ifdef NEED_CIPHER 775NEED_DES=y 776OBJS += src/crypto/crypto_internal-cipher.c 777endif 778ifdef NEED_MODEXP 779OBJS += src/crypto/crypto_internal-modexp.c 780OBJS += src/tls/bignum.c 781endif 782ifeq ($(CONFIG_CRYPTO), libtomcrypt) 783OBJS += src/crypto/crypto_libtomcrypt.c 784LIBS += -ltomcrypt -ltfm 785LIBS_h += -ltomcrypt -ltfm 786CONFIG_INTERNAL_SHA256=y 787CONFIG_INTERNAL_RC4=y 788CONFIG_INTERNAL_DH_GROUP5=y 789endif 790ifeq ($(CONFIG_CRYPTO), internal) 791OBJS += src/crypto/crypto_internal.c 792NEED_AES_DEC=y 793L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 794ifdef CONFIG_INTERNAL_LIBTOMMATH 795L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 796ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 797L_CFLAGS += -DLTM_FAST 798endif 799else 800LIBS += -ltommath 801LIBS_h += -ltommath 802endif 803CONFIG_INTERNAL_AES=y 804CONFIG_INTERNAL_DES=y 805CONFIG_INTERNAL_SHA1=y 806CONFIG_INTERNAL_MD4=y 807CONFIG_INTERNAL_MD5=y 808CONFIG_INTERNAL_SHA256=y 809CONFIG_INTERNAL_SHA384=y 810CONFIG_INTERNAL_SHA512=y 811CONFIG_INTERNAL_RC4=y 812CONFIG_INTERNAL_DH_GROUP5=y 813endif 814ifeq ($(CONFIG_CRYPTO), cryptoapi) 815OBJS += src/crypto/crypto_cryptoapi.c 816OBJS_p += src/crypto/crypto_cryptoapi.c 817L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 818CONFIG_INTERNAL_SHA256=y 819CONFIG_INTERNAL_RC4=y 820endif 821endif 822 823ifeq ($(CONFIG_TLS), none) 824ifdef TLS_FUNCS 825OBJS += src/crypto/tls_none.c 826L_CFLAGS += -DEAP_TLS_NONE 827CONFIG_INTERNAL_AES=y 828CONFIG_INTERNAL_SHA1=y 829CONFIG_INTERNAL_MD5=y 830endif 831OBJS += src/crypto/crypto_none.c 832OBJS_p += src/crypto/crypto_none.c 833CONFIG_INTERNAL_SHA256=y 834CONFIG_INTERNAL_RC4=y 835endif 836 837ifndef TLS_FUNCS 838OBJS += src/crypto/tls_none.c 839ifeq ($(CONFIG_TLS), internal) 840CONFIG_INTERNAL_AES=y 841CONFIG_INTERNAL_SHA1=y 842CONFIG_INTERNAL_MD5=y 843CONFIG_INTERNAL_RC4=y 844endif 845endif 846 847AESOBJS = # none so far 848ifdef CONFIG_INTERNAL_AES 849AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 850endif 851 852ifneq ($(CONFIG_TLS), openssl) 853AESOBJS += src/crypto/aes-wrap.c 854endif 855ifdef NEED_AES_EAX 856AESOBJS += src/crypto/aes-eax.c 857NEED_AES_CTR=y 858endif 859ifdef NEED_AES_SIV 860AESOBJS += src/crypto/aes-siv.c 861NEED_AES_CTR=y 862endif 863ifdef NEED_AES_CTR 864AESOBJS += src/crypto/aes-ctr.c 865endif 866ifdef NEED_AES_ENCBLOCK 867AESOBJS += src/crypto/aes-encblock.c 868endif 869ifneq ($(CONFIG_TLS), openssl) 870AESOBJS += src/crypto/aes-omac1.c 871endif 872ifdef NEED_AES_UNWRAP 873ifneq ($(CONFIG_TLS), openssl) 874NEED_AES_DEC=y 875AESOBJS += src/crypto/aes-unwrap.c 876endif 877endif 878ifdef NEED_AES_CBC 879NEED_AES_DEC=y 880ifneq ($(CONFIG_TLS), openssl) 881AESOBJS += src/crypto/aes-cbc.c 882endif 883endif 884ifdef NEED_AES_DEC 885ifdef CONFIG_INTERNAL_AES 886AESOBJS += src/crypto/aes-internal-dec.c 887endif 888endif 889ifdef NEED_AES 890OBJS += $(AESOBJS) 891endif 892 893SHA1OBJS = 894ifdef NEED_SHA1 895ifneq ($(CONFIG_TLS), openssl) 896ifneq ($(CONFIG_TLS), gnutls) 897SHA1OBJS += src/crypto/sha1.c 898endif 899endif 900SHA1OBJS += src/crypto/sha1-prf.c 901ifdef CONFIG_INTERNAL_SHA1 902SHA1OBJS += src/crypto/sha1-internal.c 903ifdef NEED_FIPS186_2_PRF 904SHA1OBJS += src/crypto/fips_prf_internal.c 905endif 906endif 907ifneq ($(CONFIG_TLS), openssl) 908SHA1OBJS += src/crypto/sha1-pbkdf2.c 909endif 910ifdef NEED_T_PRF 911SHA1OBJS += src/crypto/sha1-tprf.c 912endif 913ifdef NEED_TLS_PRF 914SHA1OBJS += src/crypto/sha1-tlsprf.c 915endif 916endif 917 918ifdef NEED_SHA1 919OBJS += $(SHA1OBJS) 920endif 921 922ifneq ($(CONFIG_TLS), openssl) 923ifneq ($(CONFIG_TLS), gnutls) 924OBJS += src/crypto/md5.c 925endif 926endif 927 928ifdef NEED_MD5 929ifdef CONFIG_INTERNAL_MD5 930OBJS += src/crypto/md5-internal.c 931HOBJS += src/crypto/md5-internal.c 932endif 933endif 934 935ifdef NEED_MD4 936ifdef CONFIG_INTERNAL_MD4 937OBJS += src/crypto/md4-internal.c 938endif 939endif 940 941ifdef NEED_DES 942ifdef CONFIG_INTERNAL_DES 943OBJS += src/crypto/des-internal.c 944endif 945endif 946 947ifdef CONFIG_NO_RC4 948L_CFLAGS += -DCONFIG_NO_RC4 949endif 950 951ifdef NEED_RC4 952ifdef CONFIG_INTERNAL_RC4 953ifndef CONFIG_NO_RC4 954OBJS += src/crypto/rc4.c 955endif 956endif 957endif 958 959L_CFLAGS += -DCONFIG_SHA256 960ifneq ($(CONFIG_TLS), openssl) 961ifneq ($(CONFIG_TLS), gnutls) 962OBJS += src/crypto/sha256.c 963endif 964endif 965OBJS += src/crypto/sha256-prf.c 966ifdef CONFIG_INTERNAL_SHA256 967OBJS += src/crypto/sha256-internal.c 968endif 969ifdef NEED_TLS_PRF_SHA256 970OBJS += src/crypto/sha256-tlsprf.c 971endif 972ifdef NEED_TLS_PRF_SHA384 973OBJS += src/crypto/sha384-tlsprf.c 974endif 975ifdef NEED_HMAC_SHA256_KDF 976OBJS += src/crypto/sha256-kdf.c 977endif 978ifdef NEED_HMAC_SHA384_KDF 979OBJS += src/crypto/sha384-kdf.c 980endif 981ifdef NEED_HMAC_SHA512_KDF 982OBJS += src/crypto/sha512-kdf.c 983endif 984ifdef NEED_SHA384 985L_CFLAGS += -DCONFIG_SHA384 986ifneq ($(CONFIG_TLS), openssl) 987ifneq ($(CONFIG_TLS), gnutls) 988OBJS += src/crypto/sha384.c 989endif 990endif 991OBJS += src/crypto/sha384-prf.c 992endif 993ifdef NEED_SHA512 994L_CFLAGS += -DCONFIG_SHA512 995ifneq ($(CONFIG_TLS), openssl) 996ifneq ($(CONFIG_TLS), linux) 997ifneq ($(CONFIG_TLS), gnutls) 998OBJS += src/crypto/sha512.c 999endif 1000endif 1001endif 1002OBJS += src/crypto/sha512-prf.c 1003endif 1004 1005ifdef CONFIG_INTERNAL_SHA384 1006L_CFLAGS += -DCONFIG_INTERNAL_SHA384 1007OBJS += src/crypto/sha384-internal.c 1008endif 1009 1010ifdef CONFIG_INTERNAL_SHA512 1011L_CFLAGS += -DCONFIG_INTERNAL_SHA512 1012OBJS += src/crypto/sha512-internal.c 1013endif 1014 1015ifdef NEED_ASN1 1016OBJS += src/tls/asn1.c 1017endif 1018 1019ifdef NEED_DH_GROUPS 1020OBJS += src/crypto/dh_groups.c 1021endif 1022ifdef NEED_DH_GROUPS_ALL 1023L_CFLAGS += -DALL_DH_GROUPS 1024endif 1025ifdef CONFIG_INTERNAL_DH_GROUP5 1026ifdef NEED_DH_GROUPS 1027OBJS += src/crypto/dh_group5.c 1028endif 1029endif 1030 1031ifdef NEED_ECC 1032L_CFLAGS += -DCONFIG_ECC 1033endif 1034 1035ifdef CONFIG_NO_RANDOM_POOL 1036L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 1037else 1038OBJS += src/crypto/random.c 1039HOBJS += src/crypto/random.c 1040HOBJS += src/utils/eloop.c 1041HOBJS += $(SHA1OBJS) 1042ifneq ($(CONFIG_TLS), openssl) 1043HOBJS += src/crypto/md5.c 1044endif 1045endif 1046 1047ifdef CONFIG_RADIUS_SERVER 1048L_CFLAGS += -DRADIUS_SERVER 1049OBJS += src/radius/radius_server.c 1050endif 1051 1052ifdef CONFIG_IPV6 1053L_CFLAGS += -DCONFIG_IPV6 1054endif 1055 1056ifdef CONFIG_DRIVER_RADIUS_ACL 1057L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1058endif 1059 1060ifdef NEED_BASE64 1061OBJS += src/utils/base64.c 1062endif 1063 1064ifdef NEED_JSON 1065OBJS += src/utils/json.c 1066L_CFLAGS += -DCONFIG_JSON 1067endif 1068 1069ifdef NEED_AP_MLME 1070OBJS += src/ap/wmm.c 1071OBJS += src/ap/ap_list.c 1072OBJS += src/ap/comeback_token.c 1073OBJS += src/pasn/pasn_responder.c 1074OBJS += src/pasn/pasn_common.c 1075OBJS += src/ap/ieee802_11.c 1076OBJS += src/ap/hw_features.c 1077OBJS += src/ap/dfs.c 1078L_CFLAGS += -DNEED_AP_MLME 1079endif 1080OBJS += src/ap/ieee802_11_ht.c 1081 1082ifdef CONFIG_IEEE80211AC 1083OBJS += src/ap/ieee802_11_vht.c 1084endif 1085 1086ifdef CONFIG_IEEE80211AX 1087OBJS += src/ap/ieee802_11_he.c 1088endif 1089 1090ifdef CONFIG_P2P_MANAGER 1091L_CFLAGS += -DCONFIG_P2P_MANAGER 1092OBJS += src/ap/p2p_hostapd.c 1093endif 1094 1095ifdef CONFIG_HS20 1096L_CFLAGS += -DCONFIG_HS20 1097OBJS += src/ap/hs20.c 1098CONFIG_INTERWORKING=y 1099endif 1100 1101ifdef CONFIG_INTERWORKING 1102L_CFLAGS += -DCONFIG_INTERWORKING 1103NEED_GAS=y 1104endif 1105 1106ifdef NEED_GAS 1107OBJS += src/common/gas.c 1108OBJS += src/ap/gas_serv.c 1109endif 1110 1111ifdef CONFIG_PROXYARP 1112L_CFLAGS += -DCONFIG_PROXYARP 1113OBJS += src/ap/x_snoop.c 1114OBJS += src/ap/dhcp_snoop.c 1115ifdef CONFIG_IPV6 1116OBJS += src/ap/ndisc_snoop.c 1117endif 1118endif 1119 1120OBJS += src/drivers/driver_common.c 1121 1122ifdef CONFIG_ACS 1123L_CFLAGS += -DCONFIG_ACS 1124OBJS += src/ap/acs.c 1125LIBS += -lm 1126endif 1127 1128ifdef CONFIG_NO_STDOUT_DEBUG 1129L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1130endif 1131 1132ifdef CONFIG_DEBUG_SYSLOG 1133L_CFLAGS += -DCONFIG_DEBUG_SYSLOG 1134endif 1135 1136ifdef CONFIG_DEBUG_LINUX_TRACING 1137L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1138endif 1139 1140ifdef CONFIG_DEBUG_FILE 1141L_CFLAGS += -DCONFIG_DEBUG_FILE 1142endif 1143 1144ifdef CONFIG_ANDROID_LOG 1145L_CFLAGS += -DCONFIG_ANDROID_LOG 1146endif 1147 1148OBJS_c = hostapd_cli.c 1149OBJS_c += src/common/wpa_ctrl.c 1150OBJS_c += src/utils/os_$(CONFIG_OS).c 1151OBJS_c += src/common/cli.c 1152OBJS_c += src/utils/eloop.c 1153OBJS_c += src/utils/common.c 1154ifdef CONFIG_WPA_TRACE 1155OBJS_c += src/utils/trace.c 1156endif 1157OBJS_c += src/utils/wpa_debug.c 1158ifdef CONFIG_WPA_CLI_EDIT 1159OBJS_c += src/utils/edit.c 1160else 1161OBJS_c += src/utils/edit_simple.c 1162endif 1163 1164ifeq ($(filter gce_x86 gce_x86_64 calypso, $(TARGET_DEVICE)),) 1165ifdef CONFIG_CTRL_IFACE_AIDL 1166HOSTAPD_USE_AIDL=y 1167L_CFLAGS += -DCONFIG_CTRL_IFACE_AIDL 1168L_CPPFLAGS = -Wall -Werror 1169endif 1170endif 1171 1172######################## 1173 1174include $(CLEAR_VARS) 1175LOCAL_MODULE := hostapd_cli 1176LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1177LOCAL_LICENSE_CONDITIONS := notice unencumbered 1178LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1179LOCAL_PROPRIETARY_MODULE := true 1180LOCAL_SHARED_LIBRARIES := libc libcutils liblog 1181LOCAL_CFLAGS := $(L_CFLAGS) 1182LOCAL_SRC_FILES := $(OBJS_c) 1183LOCAL_C_INCLUDES := $(INCLUDES) 1184include $(BUILD_EXECUTABLE) 1185 1186######################## 1187include $(CLEAR_VARS) 1188LOCAL_MODULE := hostapd 1189LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1190LOCAL_LICENSE_CONDITIONS := notice unencumbered 1191LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1192LOCAL_MODULE_TAGS := optional 1193LOCAL_PROPRIETARY_MODULE := true 1194LOCAL_MODULE_RELATIVE_PATH := hw 1195LOCAL_REQUIRED_MODULES += android.hardware.wifi.hostapd.xml 1196ifdef CONFIG_DRIVER_CUSTOM 1197LOCAL_STATIC_LIBRARIES := libCustomWifi 1198endif 1199ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 1200LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 1201endif 1202LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 1203ifdef CONFIG_DRIVER_NL80211 1204ifneq ($(wildcard external/libnl),) 1205LOCAL_SHARED_LIBRARIES += libnl 1206else 1207LOCAL_STATIC_LIBRARIES += libnl_2 1208endif 1209endif 1210ifeq ($(HOSTAPD_USE_AIDL), y) 1211LOCAL_SHARED_LIBRARIES += android.hardware.wifi.hostapd-V3-ndk 1212LOCAL_SHARED_LIBRARIES += android.hardware.wifi.common-V2-ndk 1213LOCAL_SHARED_LIBRARIES += libbase libutils 1214LOCAL_SHARED_LIBRARIES += libbinder_ndk 1215LOCAL_STATIC_LIBRARIES += libhostapd_aidl 1216endif 1217LOCAL_CFLAGS := $(L_CFLAGS) 1218LOCAL_SRC_FILES := $(OBJS) 1219LOCAL_C_INCLUDES := $(INCLUDES) 1220LOCAL_INIT_RC := hostapd.android.rc 1221include $(BUILD_EXECUTABLE) 1222 1223######################## 1224include $(CLEAR_VARS) 1225LOCAL_MODULE := hostapd_noaidl 1226LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1227LOCAL_LICENSE_CONDITIONS := notice unencumbered 1228LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../LICENSE 1229LOCAL_MODULE_TAGS := optional 1230LOCAL_PROPRIETARY_MODULE := true 1231ifdef CONFIG_DRIVER_CUSTOM 1232LOCAL_STATIC_LIBRARIES := libCustomWifi 1233endif 1234ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 1235LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 1236endif 1237LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 1238ifdef CONFIG_DRIVER_NL80211 1239ifneq ($(wildcard external/libnl),) 1240LOCAL_SHARED_LIBRARIES += libnl 1241else 1242LOCAL_STATIC_LIBRARIES += libnl_2 1243endif 1244endif 1245LOCAL_CFLAGS := $(patsubst -DCONFIG_CTRL_IFACE_AIDL,,$(L_CFLAGS)) 1246LOCAL_SRC_FILES := $(OBJS) 1247LOCAL_C_INCLUDES := $(INCLUDES) 1248include $(BUILD_EXECUTABLE) 1249 1250ifeq ($(HOSTAPD_USE_AIDL), y) 1251### Aidl service library ### 1252######################## 1253include $(CLEAR_VARS) 1254LOCAL_MODULE := libhostapd_aidl 1255LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD SPDX-license-identifier-BSD-3-Clause SPDX-license-identifier-ISC legacy_unencumbered 1256LOCAL_LICENSE_CONDITIONS := notice unencumbered 1257LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYING $(LOCAL_PATH)/../NOTICE 1258LOCAL_VENDOR_MODULE := true 1259LOCAL_CPPFLAGS := $(L_CPPFLAGS) 1260LOCAL_CFLAGS := $(L_CFLAGS) 1261LOCAL_C_INCLUDES := $(INCLUDES) 1262LOCAL_SRC_FILES := \ 1263 aidl/aidl.cpp \ 1264 aidl/hostapd.cpp 1265LOCAL_SHARED_LIBRARIES := \ 1266 android.hardware.wifi.hostapd-V3-ndk \ 1267 android.hardware.wifi.common-V2-ndk \ 1268 libbinder_ndk \ 1269 libbase \ 1270 libutils \ 1271 liblog 1272LOCAL_EXPORT_C_INCLUDE_DIRS := \ 1273 $(LOCAL_PATH)/aidl 1274include $(BUILD_STATIC_LIBRARY) 1275endif # HOSTAPD_USE_AIDL == y 1276endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 1277