Android.mk revision cd44645b48dc2161fa6c018235aaf4b6a804d576
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 48INCLUDES = $(LOCAL_PATH) 49INCLUDES += $(LOCAL_PATH)/src 50INCLUDES += $(LOCAL_PATH)/src/utils 51INCLUDES += external/openssl/include 52INCLUDES += system/security/keystore/include 53ifdef CONFIG_DRIVER_NL80211 54ifneq ($(wildcard external/libnl),) 55INCLUDES += external/libnl/include 56else 57INCLUDES += external/libnl-headers 58endif 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 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 support for dumping internal state 145# through control interface commands (undefine it, if you want to save in 146# binary size) 147L_CFLAGS += -DHOSTAPD_DUMP_STATE 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_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_EKE 371L_CFLAGS += -DEAP_SERVER_EKE 372OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 373NEED_DH_GROUPS=y 374NEED_DH_GROUPS_ALL=y 375endif 376 377ifdef CONFIG_EAP_VENDOR_TEST 378L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 379OBJS += src/eap_server/eap_server_vendor_test.c 380endif 381 382ifdef CONFIG_EAP_FAST 383L_CFLAGS += -DEAP_SERVER_FAST 384OBJS += src/eap_server/eap_server_fast.c 385OBJS += src/eap_common/eap_fast_common.c 386TLS_FUNCS=y 387NEED_T_PRF=y 388NEED_AES_UNWRAP=y 389endif 390 391ifdef CONFIG_WPS 392ifdef CONFIG_WPS2 393L_CFLAGS += -DCONFIG_WPS2 394endif 395 396L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 397OBJS += src/utils/uuid.c 398OBJS += src/ap/wps_hostapd.c 399OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 400OBJS += src/wps/wps.c 401OBJS += src/wps/wps_common.c 402OBJS += src/wps/wps_attr_parse.c 403OBJS += src/wps/wps_attr_build.c 404OBJS += src/wps/wps_attr_process.c 405OBJS += src/wps/wps_dev_attr.c 406OBJS += src/wps/wps_enrollee.c 407OBJS += src/wps/wps_registrar.c 408NEED_DH_GROUPS=y 409NEED_SHA256=y 410NEED_BASE64=y 411NEED_AES_CBC=y 412NEED_MODEXP=y 413CONFIG_EAP=y 414 415ifdef CONFIG_WPS_NFC 416L_CFLAGS += -DCONFIG_WPS_NFC 417OBJS += src/wps/ndef.c 418NEED_WPS_OOB=y 419endif 420 421ifdef NEED_WPS_OOB 422L_CFLAGS += -DCONFIG_WPS_OOB 423endif 424 425ifdef CONFIG_WPS_UPNP 426L_CFLAGS += -DCONFIG_WPS_UPNP 427OBJS += src/wps/wps_upnp.c 428OBJS += src/wps/wps_upnp_ssdp.c 429OBJS += src/wps/wps_upnp_web.c 430OBJS += src/wps/wps_upnp_event.c 431OBJS += src/wps/wps_upnp_ap.c 432OBJS += src/wps/upnp_xml.c 433OBJS += src/wps/httpread.c 434OBJS += src/wps/http_client.c 435OBJS += src/wps/http_server.c 436endif 437 438ifdef CONFIG_WPS_STRICT 439L_CFLAGS += -DCONFIG_WPS_STRICT 440OBJS += src/wps/wps_validate.c 441endif 442 443ifdef CONFIG_WPS_TESTING 444L_CFLAGS += -DCONFIG_WPS_TESTING 445endif 446 447endif 448 449ifdef CONFIG_EAP_IKEV2 450L_CFLAGS += -DEAP_SERVER_IKEV2 451OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 452OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 453NEED_DH_GROUPS=y 454NEED_DH_GROUPS_ALL=y 455NEED_MODEXP=y 456NEED_CIPHER=y 457endif 458 459ifdef CONFIG_EAP_TNC 460L_CFLAGS += -DEAP_SERVER_TNC 461OBJS += src/eap_server/eap_server_tnc.c 462OBJS += src/eap_server/tncs.c 463NEED_BASE64=y 464ifndef CONFIG_DRIVER_BSD 465LIBS += -ldl 466endif 467endif 468 469# Basic EAP functionality is needed for EAPOL 470OBJS += eap_register.c 471OBJS += src/eap_server/eap_server.c 472OBJS += src/eap_common/eap_common.c 473OBJS += src/eap_server/eap_server_methods.c 474OBJS += src/eap_server/eap_server_identity.c 475L_CFLAGS += -DEAP_SERVER_IDENTITY 476 477ifdef CONFIG_EAP 478L_CFLAGS += -DEAP_SERVER 479endif 480 481ifdef CONFIG_PKCS12 482L_CFLAGS += -DPKCS12_FUNCS 483endif 484 485ifdef MS_FUNCS 486OBJS += src/crypto/ms_funcs.c 487NEED_DES=y 488NEED_MD4=y 489endif 490 491ifdef CHAP 492OBJS += src/eap_common/chap.c 493endif 494 495ifdef TLS_FUNCS 496NEED_DES=y 497# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 498L_CFLAGS += -DEAP_TLS_FUNCS 499OBJS += src/eap_server/eap_server_tls_common.c 500NEED_TLS_PRF=y 501endif 502 503ifndef CONFIG_TLS 504CONFIG_TLS=openssl 505endif 506 507ifdef CONFIG_TLSV11 508L_CFLAGS += -DCONFIG_TLSV11 509endif 510 511ifdef CONFIG_TLSV12 512L_CFLAGS += -DCONFIG_TLSV12 513NEED_SHA256=y 514endif 515 516ifeq ($(CONFIG_TLS), openssl) 517ifdef TLS_FUNCS 518OBJS += src/crypto/tls_openssl.c 519LIBS += -lssl 520endif 521OBJS += src/crypto/crypto_openssl.c 522HOBJS += src/crypto/crypto_openssl.c 523ifdef NEED_FIPS186_2_PRF 524OBJS += src/crypto/fips_prf_openssl.c 525endif 526LIBS += -lcrypto 527LIBS_h += -lcrypto 528endif 529 530ifeq ($(CONFIG_TLS), gnutls) 531ifdef TLS_FUNCS 532OBJS += src/crypto/tls_gnutls.c 533LIBS += -lgnutls -lgpg-error 534endif 535OBJS += src/crypto/crypto_gnutls.c 536HOBJS += src/crypto/crypto_gnutls.c 537ifdef NEED_FIPS186_2_PRF 538OBJS += src/crypto/fips_prf_gnutls.c 539endif 540LIBS += -lgcrypt 541LIBS_h += -lgcrypt 542CONFIG_INTERNAL_SHA256=y 543CONFIG_INTERNAL_RC4=y 544CONFIG_INTERNAL_DH_GROUP5=y 545endif 546 547ifeq ($(CONFIG_TLS), schannel) 548ifdef TLS_FUNCS 549OBJS += src/crypto/tls_schannel.c 550endif 551OBJS += src/crypto/crypto_cryptoapi.c 552OBJS_p += src/crypto/crypto_cryptoapi.c 553CONFIG_INTERNAL_SHA256=y 554CONFIG_INTERNAL_RC4=y 555CONFIG_INTERNAL_DH_GROUP5=y 556endif 557 558ifeq ($(CONFIG_TLS), nss) 559ifdef TLS_FUNCS 560OBJS += src/crypto/tls_nss.c 561LIBS += -lssl3 562endif 563OBJS += src/crypto/crypto_nss.c 564ifdef NEED_FIPS186_2_PRF 565OBJS += src/crypto/fips_prf_nss.c 566endif 567LIBS += -lnss3 568LIBS_h += -lnss3 569CONFIG_INTERNAL_MD4=y 570CONFIG_INTERNAL_DH_GROUP5=y 571endif 572 573ifeq ($(CONFIG_TLS), internal) 574ifndef CONFIG_CRYPTO 575CONFIG_CRYPTO=internal 576endif 577ifdef TLS_FUNCS 578OBJS += src/crypto/crypto_internal-rsa.c 579OBJS += src/crypto/tls_internal.c 580OBJS += src/tls/tlsv1_common.c 581OBJS += src/tls/tlsv1_record.c 582OBJS += src/tls/tlsv1_cred.c 583OBJS += src/tls/tlsv1_server.c 584OBJS += src/tls/tlsv1_server_write.c 585OBJS += src/tls/tlsv1_server_read.c 586OBJS += src/tls/asn1.c 587OBJS += src/tls/rsa.c 588OBJS += src/tls/x509v3.c 589OBJS += src/tls/pkcs1.c 590OBJS += src/tls/pkcs5.c 591OBJS += src/tls/pkcs8.c 592NEED_SHA256=y 593NEED_BASE64=y 594NEED_TLS_PRF=y 595ifdef CONFIG_TLSV12 596NEED_TLS_PRF_SHA256=y 597endif 598NEED_MODEXP=y 599NEED_CIPHER=y 600L_CFLAGS += -DCONFIG_TLS_INTERNAL 601L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 602endif 603ifdef NEED_CIPHER 604NEED_DES=y 605OBJS += src/crypto/crypto_internal-cipher.c 606endif 607ifdef NEED_MODEXP 608OBJS += src/crypto/crypto_internal-modexp.c 609OBJS += src/tls/bignum.c 610endif 611ifeq ($(CONFIG_CRYPTO), libtomcrypt) 612OBJS += src/crypto/crypto_libtomcrypt.c 613LIBS += -ltomcrypt -ltfm 614LIBS_h += -ltomcrypt -ltfm 615CONFIG_INTERNAL_SHA256=y 616CONFIG_INTERNAL_RC4=y 617CONFIG_INTERNAL_DH_GROUP5=y 618endif 619ifeq ($(CONFIG_CRYPTO), internal) 620OBJS += src/crypto/crypto_internal.c 621NEED_AES_DEC=y 622L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 623ifdef CONFIG_INTERNAL_LIBTOMMATH 624L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 625ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 626L_CFLAGS += -DLTM_FAST 627endif 628else 629LIBS += -ltommath 630LIBS_h += -ltommath 631endif 632CONFIG_INTERNAL_AES=y 633CONFIG_INTERNAL_DES=y 634CONFIG_INTERNAL_SHA1=y 635CONFIG_INTERNAL_MD4=y 636CONFIG_INTERNAL_MD5=y 637CONFIG_INTERNAL_SHA256=y 638CONFIG_INTERNAL_RC4=y 639CONFIG_INTERNAL_DH_GROUP5=y 640endif 641ifeq ($(CONFIG_CRYPTO), cryptoapi) 642OBJS += src/crypto/crypto_cryptoapi.c 643OBJS_p += src/crypto/crypto_cryptoapi.c 644L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 645CONFIG_INTERNAL_SHA256=y 646CONFIG_INTERNAL_RC4=y 647endif 648endif 649 650ifeq ($(CONFIG_TLS), none) 651ifdef TLS_FUNCS 652OBJS += src/crypto/tls_none.c 653L_CFLAGS += -DEAP_TLS_NONE 654CONFIG_INTERNAL_AES=y 655CONFIG_INTERNAL_SHA1=y 656CONFIG_INTERNAL_MD5=y 657endif 658OBJS += src/crypto/crypto_none.c 659OBJS_p += src/crypto/crypto_none.c 660CONFIG_INTERNAL_SHA256=y 661CONFIG_INTERNAL_RC4=y 662endif 663 664ifndef TLS_FUNCS 665OBJS += src/crypto/tls_none.c 666ifeq ($(CONFIG_TLS), internal) 667CONFIG_INTERNAL_AES=y 668CONFIG_INTERNAL_SHA1=y 669CONFIG_INTERNAL_MD5=y 670CONFIG_INTERNAL_RC4=y 671endif 672endif 673 674AESOBJS = # none so far 675ifdef CONFIG_INTERNAL_AES 676AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 677endif 678 679AESOBJS += src/crypto/aes-wrap.c 680ifdef NEED_AES_EAX 681AESOBJS += src/crypto/aes-eax.c 682NEED_AES_CTR=y 683endif 684ifdef NEED_AES_CTR 685AESOBJS += src/crypto/aes-ctr.c 686endif 687ifdef NEED_AES_ENCBLOCK 688AESOBJS += src/crypto/aes-encblock.c 689endif 690ifdef NEED_AES_OMAC1 691AESOBJS += src/crypto/aes-omac1.c 692endif 693ifdef NEED_AES_UNWRAP 694NEED_AES_DEC=y 695AESOBJS += src/crypto/aes-unwrap.c 696endif 697ifdef NEED_AES_CBC 698NEED_AES_DEC=y 699AESOBJS += src/crypto/aes-cbc.c 700endif 701ifdef NEED_AES_DEC 702ifdef CONFIG_INTERNAL_AES 703AESOBJS += src/crypto/aes-internal-dec.c 704endif 705endif 706ifdef NEED_AES 707OBJS += $(AESOBJS) 708endif 709 710SHA1OBJS = 711ifdef NEED_SHA1 712ifneq ($(CONFIG_TLS), openssl) 713SHA1OBJS += src/crypto/sha1.c 714endif 715SHA1OBJS += src/crypto/sha1-prf.c 716ifdef CONFIG_INTERNAL_SHA1 717SHA1OBJS += src/crypto/sha1-internal.c 718ifdef NEED_FIPS186_2_PRF 719SHA1OBJS += src/crypto/fips_prf_internal.c 720endif 721endif 722ifneq ($(CONFIG_TLS), openssl) 723SHA1OBJS += src/crypto/sha1-pbkdf2.c 724endif 725ifdef NEED_T_PRF 726SHA1OBJS += src/crypto/sha1-tprf.c 727endif 728ifdef NEED_TLS_PRF 729SHA1OBJS += src/crypto/sha1-tlsprf.c 730endif 731endif 732 733ifdef NEED_SHA1 734OBJS += $(SHA1OBJS) 735endif 736 737ifdef NEED_MD5 738ifdef CONFIG_INTERNAL_MD5 739OBJS += src/crypto/md5-internal.c 740HOBJS += src/crypto/md5-internal.c 741endif 742endif 743 744ifdef NEED_MD4 745ifdef CONFIG_INTERNAL_MD4 746OBJS += src/crypto/md4-internal.c 747endif 748endif 749 750ifdef NEED_DES 751ifdef CONFIG_INTERNAL_DES 752OBJS += src/crypto/des-internal.c 753endif 754endif 755 756ifdef NEED_RC4 757ifdef CONFIG_INTERNAL_RC4 758OBJS += src/crypto/rc4.c 759endif 760endif 761 762ifdef NEED_SHA256 763L_CFLAGS += -DCONFIG_SHA256 764ifneq ($(CONFIG_TLS), openssl) 765OBJS += src/crypto/sha256.c 766endif 767OBJS += src/crypto/sha256-prf.c 768ifdef CONFIG_INTERNAL_SHA256 769OBJS += src/crypto/sha256-internal.c 770endif 771ifdef NEED_TLS_PRF_SHA256 772OBJS += src/crypto/sha256-tlsprf.c 773endif 774endif 775 776ifdef NEED_DH_GROUPS 777OBJS += src/crypto/dh_groups.c 778endif 779ifdef NEED_DH_GROUPS_ALL 780L_CFLAGS += -DALL_DH_GROUPS 781endif 782ifdef CONFIG_INTERNAL_DH_GROUP5 783ifdef NEED_DH_GROUPS 784OBJS += src/crypto/dh_group5.c 785endif 786endif 787 788ifdef NEED_ECC 789L_CFLAGS += -DCONFIG_ECC 790endif 791 792ifdef CONFIG_NO_RANDOM_POOL 793L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 794else 795OBJS += src/crypto/random.c 796HOBJS += src/crypto/random.c 797HOBJS += src/utils/eloop.c 798HOBJS += $(SHA1OBJS) 799HOBJS += src/crypto/md5.c 800endif 801 802ifdef CONFIG_RADIUS_SERVER 803L_CFLAGS += -DRADIUS_SERVER 804OBJS += src/radius/radius_server.c 805endif 806 807ifdef CONFIG_IPV6 808L_CFLAGS += -DCONFIG_IPV6 809endif 810 811ifdef CONFIG_DRIVER_RADIUS_ACL 812L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 813endif 814 815ifdef CONFIG_FULL_DYNAMIC_VLAN 816# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 817# and vlan interfaces for the vlan feature. 818L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 819endif 820 821ifdef NEED_BASE64 822OBJS += src/utils/base64.c 823endif 824 825ifdef NEED_AP_MLME 826OBJS += src/ap/wmm.c 827OBJS += src/ap/ap_list.c 828OBJS += src/ap/ieee802_11.c 829OBJS += src/ap/hw_features.c 830OBJS += src/ap/dfs.c 831L_CFLAGS += -DNEED_AP_MLME 832endif 833ifdef CONFIG_IEEE80211N 834OBJS += src/ap/ieee802_11_ht.c 835endif 836 837ifdef CONFIG_IEEE80211AC 838OBJS += src/ap/ieee802_11_vht.c 839endif 840 841ifdef CONFIG_P2P_MANAGER 842L_CFLAGS += -DCONFIG_P2P_MANAGER 843OBJS += src/ap/p2p_hostapd.c 844endif 845 846ifdef CONFIG_HS20 847L_CFLAGS += -DCONFIG_HS20 848OBJS += src/ap/hs20.c 849CONFIG_INTERWORKING=y 850endif 851 852ifdef CONFIG_INTERWORKING 853L_CFLAGS += -DCONFIG_INTERWORKING 854OBJS += src/common/gas.c 855OBJS += src/ap/gas_serv.c 856endif 857 858OBJS += src/drivers/driver_common.c 859 860ifdef CONFIG_ACS 861L_CFLAGS += -DCONFIG_ACS 862OBJS += src/ap/acs.c 863LIBS += -lm 864endif 865 866ifdef CONFIG_NO_STDOUT_DEBUG 867L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 868endif 869 870ifdef CONFIG_DEBUG_LINUX_TRACING 871L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 872endif 873 874ifdef CONFIG_DEBUG_FILE 875L_CFLAGS += -DCONFIG_DEBUG_FILE 876endif 877 878ifdef CONFIG_ANDROID_LOG 879L_CFLAGS += -DCONFIG_ANDROID_LOG 880endif 881 882OBJS_c = hostapd_cli.c src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 883OBJS_c += src/utils/eloop.c 884ifdef CONFIG_WPA_TRACE 885OBJS_c += src/utils/trace.c 886endif 887OBJS_c += src/utils/wpa_debug.c 888ifdef CONFIG_WPA_CLI_EDIT 889OBJS_c += src/utils/edit.c 890else 891OBJS_c += src/utils/edit_simple.c 892endif 893 894######################## 895 896include $(CLEAR_VARS) 897LOCAL_MODULE := hostapd_cli 898LOCAL_MODULE_TAGS := debug 899LOCAL_SHARED_LIBRARIES := libc libcutils liblog 900LOCAL_CFLAGS := $(L_CFLAGS) 901LOCAL_SRC_FILES := $(OBJS_c) 902LOCAL_C_INCLUDES := $(INCLUDES) 903include $(BUILD_EXECUTABLE) 904 905######################## 906include $(CLEAR_VARS) 907LOCAL_MODULE := hostapd 908LOCAL_MODULE_TAGS := optional 909ifdef CONFIG_DRIVER_CUSTOM 910LOCAL_STATIC_LIBRARIES := libCustomWifi 911endif 912ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 913LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 914endif 915LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 916ifdef CONFIG_DRIVER_NL80211 917ifneq ($(wildcard external/libnl),) 918LOCAL_SHARED_LIBRARIES += libnl 919else 920LOCAL_STATIC_LIBRARIES += libnl_2 921endif 922endif 923LOCAL_CFLAGS := $(L_CFLAGS) 924LOCAL_SRC_FILES := $(OBJS) 925LOCAL_C_INCLUDES := $(INCLUDES) 926include $(BUILD_EXECUTABLE) 927 928endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 929