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