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