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