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