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