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