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