Android.mk revision 391c59f0632df8db1c325da1d31d479b2eedce45
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/include 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_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 534ifdef CONFIG_GNUTLS_EXTRA 535L_CFLAGS += -DCONFIG_GNUTLS_EXTRA 536LIBS += -lgnutls-extra 537endif 538endif 539OBJS += src/crypto/crypto_gnutls.c 540HOBJS += src/crypto/crypto_gnutls.c 541ifdef NEED_FIPS186_2_PRF 542OBJS += src/crypto/fips_prf_gnutls.c 543endif 544LIBS += -lgcrypt 545LIBS_h += -lgcrypt 546CONFIG_INTERNAL_SHA256=y 547CONFIG_INTERNAL_RC4=y 548CONFIG_INTERNAL_DH_GROUP5=y 549endif 550 551ifeq ($(CONFIG_TLS), schannel) 552ifdef TLS_FUNCS 553OBJS += src/crypto/tls_schannel.c 554endif 555OBJS += src/crypto/crypto_cryptoapi.c 556OBJS_p += src/crypto/crypto_cryptoapi.c 557CONFIG_INTERNAL_SHA256=y 558CONFIG_INTERNAL_RC4=y 559CONFIG_INTERNAL_DH_GROUP5=y 560endif 561 562ifeq ($(CONFIG_TLS), nss) 563ifdef TLS_FUNCS 564OBJS += src/crypto/tls_nss.c 565LIBS += -lssl3 566endif 567OBJS += src/crypto/crypto_nss.c 568ifdef NEED_FIPS186_2_PRF 569OBJS += src/crypto/fips_prf_nss.c 570endif 571LIBS += -lnss3 572LIBS_h += -lnss3 573CONFIG_INTERNAL_MD4=y 574CONFIG_INTERNAL_DH_GROUP5=y 575endif 576 577ifeq ($(CONFIG_TLS), internal) 578ifndef CONFIG_CRYPTO 579CONFIG_CRYPTO=internal 580endif 581ifdef TLS_FUNCS 582OBJS += src/crypto/crypto_internal-rsa.c 583OBJS += src/crypto/tls_internal.c 584OBJS += src/tls/tlsv1_common.c 585OBJS += src/tls/tlsv1_record.c 586OBJS += src/tls/tlsv1_cred.c 587OBJS += src/tls/tlsv1_server.c 588OBJS += src/tls/tlsv1_server_write.c 589OBJS += src/tls/tlsv1_server_read.c 590OBJS += src/tls/asn1.c 591OBJS += src/tls/rsa.c 592OBJS += src/tls/x509v3.c 593OBJS += src/tls/pkcs1.c 594OBJS += src/tls/pkcs5.c 595OBJS += src/tls/pkcs8.c 596NEED_SHA256=y 597NEED_BASE64=y 598NEED_TLS_PRF=y 599ifdef CONFIG_TLSV12 600NEED_TLS_PRF_SHA256=y 601endif 602NEED_MODEXP=y 603NEED_CIPHER=y 604L_CFLAGS += -DCONFIG_TLS_INTERNAL 605L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 606endif 607ifdef NEED_CIPHER 608NEED_DES=y 609OBJS += src/crypto/crypto_internal-cipher.c 610endif 611ifdef NEED_MODEXP 612OBJS += src/crypto/crypto_internal-modexp.c 613OBJS += src/tls/bignum.c 614endif 615ifeq ($(CONFIG_CRYPTO), libtomcrypt) 616OBJS += src/crypto/crypto_libtomcrypt.c 617LIBS += -ltomcrypt -ltfm 618LIBS_h += -ltomcrypt -ltfm 619CONFIG_INTERNAL_SHA256=y 620CONFIG_INTERNAL_RC4=y 621CONFIG_INTERNAL_DH_GROUP5=y 622endif 623ifeq ($(CONFIG_CRYPTO), internal) 624OBJS += src/crypto/crypto_internal.c 625NEED_AES_DEC=y 626L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 627ifdef CONFIG_INTERNAL_LIBTOMMATH 628L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 629ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 630L_CFLAGS += -DLTM_FAST 631endif 632else 633LIBS += -ltommath 634LIBS_h += -ltommath 635endif 636CONFIG_INTERNAL_AES=y 637CONFIG_INTERNAL_DES=y 638CONFIG_INTERNAL_SHA1=y 639CONFIG_INTERNAL_MD4=y 640CONFIG_INTERNAL_MD5=y 641CONFIG_INTERNAL_SHA256=y 642CONFIG_INTERNAL_RC4=y 643CONFIG_INTERNAL_DH_GROUP5=y 644endif 645ifeq ($(CONFIG_CRYPTO), cryptoapi) 646OBJS += src/crypto/crypto_cryptoapi.c 647OBJS_p += src/crypto/crypto_cryptoapi.c 648L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 649CONFIG_INTERNAL_SHA256=y 650CONFIG_INTERNAL_RC4=y 651endif 652endif 653 654ifeq ($(CONFIG_TLS), none) 655ifdef TLS_FUNCS 656OBJS += src/crypto/tls_none.c 657L_CFLAGS += -DEAP_TLS_NONE 658CONFIG_INTERNAL_AES=y 659CONFIG_INTERNAL_SHA1=y 660CONFIG_INTERNAL_MD5=y 661endif 662OBJS += src/crypto/crypto_none.c 663OBJS_p += src/crypto/crypto_none.c 664CONFIG_INTERNAL_SHA256=y 665CONFIG_INTERNAL_RC4=y 666endif 667 668ifndef TLS_FUNCS 669OBJS += src/crypto/tls_none.c 670ifeq ($(CONFIG_TLS), internal) 671CONFIG_INTERNAL_AES=y 672CONFIG_INTERNAL_SHA1=y 673CONFIG_INTERNAL_MD5=y 674CONFIG_INTERNAL_RC4=y 675endif 676endif 677 678AESOBJS = # none so far 679ifdef CONFIG_INTERNAL_AES 680AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 681endif 682 683AESOBJS += src/crypto/aes-wrap.c 684ifdef NEED_AES_EAX 685AESOBJS += src/crypto/aes-eax.c 686NEED_AES_CTR=y 687endif 688ifdef NEED_AES_CTR 689AESOBJS += src/crypto/aes-ctr.c 690endif 691ifdef NEED_AES_ENCBLOCK 692AESOBJS += src/crypto/aes-encblock.c 693endif 694ifdef NEED_AES_OMAC1 695AESOBJS += src/crypto/aes-omac1.c 696endif 697ifdef NEED_AES_UNWRAP 698NEED_AES_DEC=y 699AESOBJS += src/crypto/aes-unwrap.c 700endif 701ifdef NEED_AES_CBC 702NEED_AES_DEC=y 703AESOBJS += src/crypto/aes-cbc.c 704endif 705ifdef NEED_AES_DEC 706ifdef CONFIG_INTERNAL_AES 707AESOBJS += src/crypto/aes-internal-dec.c 708endif 709endif 710ifdef NEED_AES 711OBJS += $(AESOBJS) 712endif 713 714SHA1OBJS = 715ifdef NEED_SHA1 716ifneq ($(CONFIG_TLS), openssl) 717SHA1OBJS += src/crypto/sha1.c 718endif 719SHA1OBJS += src/crypto/sha1-prf.c 720ifdef CONFIG_INTERNAL_SHA1 721SHA1OBJS += src/crypto/sha1-internal.c 722ifdef NEED_FIPS186_2_PRF 723SHA1OBJS += src/crypto/fips_prf_internal.c 724endif 725endif 726ifneq ($(CONFIG_TLS), openssl) 727SHA1OBJS += src/crypto/sha1-pbkdf2.c 728endif 729ifdef NEED_T_PRF 730SHA1OBJS += src/crypto/sha1-tprf.c 731endif 732ifdef NEED_TLS_PRF 733SHA1OBJS += src/crypto/sha1-tlsprf.c 734endif 735endif 736 737ifdef NEED_SHA1 738OBJS += $(SHA1OBJS) 739endif 740 741ifdef NEED_MD5 742ifdef CONFIG_INTERNAL_MD5 743OBJS += src/crypto/md5-internal.c 744HOBJS += src/crypto/md5-internal.c 745endif 746endif 747 748ifdef NEED_MD4 749ifdef CONFIG_INTERNAL_MD4 750OBJS += src/crypto/md4-internal.c 751endif 752endif 753 754ifdef NEED_DES 755ifdef CONFIG_INTERNAL_DES 756OBJS += src/crypto/des-internal.c 757endif 758endif 759 760ifdef NEED_RC4 761ifdef CONFIG_INTERNAL_RC4 762OBJS += src/crypto/rc4.c 763endif 764endif 765 766ifdef NEED_SHA256 767L_CFLAGS += -DCONFIG_SHA256 768ifneq ($(CONFIG_TLS), openssl) 769OBJS += src/crypto/sha256.c 770endif 771OBJS += src/crypto/sha256-prf.c 772ifdef CONFIG_INTERNAL_SHA256 773OBJS += src/crypto/sha256-internal.c 774endif 775ifdef NEED_TLS_PRF_SHA256 776OBJS += src/crypto/sha256-tlsprf.c 777endif 778endif 779 780ifdef NEED_DH_GROUPS 781OBJS += src/crypto/dh_groups.c 782endif 783ifdef NEED_DH_GROUPS_ALL 784L_CFLAGS += -DALL_DH_GROUPS 785endif 786ifdef CONFIG_INTERNAL_DH_GROUP5 787ifdef NEED_DH_GROUPS 788OBJS += src/crypto/dh_group5.c 789endif 790endif 791 792ifdef NEED_ECC 793L_CFLAGS += -DCONFIG_ECC 794endif 795 796ifdef CONFIG_NO_RANDOM_POOL 797L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 798else 799OBJS += src/crypto/random.c 800HOBJS += src/crypto/random.c 801HOBJS += src/utils/eloop.c 802HOBJS += $(SHA1OBJS) 803HOBJS += src/crypto/md5.c 804endif 805 806ifdef CONFIG_RADIUS_SERVER 807L_CFLAGS += -DRADIUS_SERVER 808OBJS += src/radius/radius_server.c 809endif 810 811ifdef CONFIG_IPV6 812L_CFLAGS += -DCONFIG_IPV6 813endif 814 815ifdef CONFIG_DRIVER_RADIUS_ACL 816L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 817endif 818 819ifdef CONFIG_FULL_DYNAMIC_VLAN 820# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 821# and vlan interfaces for the vlan feature. 822L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 823endif 824 825ifdef NEED_BASE64 826OBJS += src/utils/base64.c 827endif 828 829ifdef NEED_AP_MLME 830OBJS += src/ap/wmm.c 831OBJS += src/ap/ap_list.c 832OBJS += src/ap/ieee802_11.c 833OBJS += src/ap/hw_features.c 834L_CFLAGS += -DNEED_AP_MLME 835endif 836ifdef CONFIG_IEEE80211N 837OBJS += src/ap/ieee802_11_ht.c 838endif 839 840ifdef CONFIG_IEEE80211AC 841OBJS += src/ap/ieee802_11_vht.c 842endif 843 844ifdef CONFIG_P2P_MANAGER 845L_CFLAGS += -DCONFIG_P2P_MANAGER 846OBJS += src/ap/p2p_hostapd.c 847endif 848 849ifdef CONFIG_HS20 850L_CFLAGS += -DCONFIG_HS20 851OBJS += src/ap/hs20.c 852CONFIG_INTERWORKING=y 853endif 854 855ifdef CONFIG_INTERWORKING 856L_CFLAGS += -DCONFIG_INTERWORKING 857OBJS += src/common/gas.c 858OBJS += src/ap/gas_serv.c 859endif 860 861OBJS += src/drivers/driver_common.c 862 863ifdef CONFIG_NO_STDOUT_DEBUG 864L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 865endif 866 867ifdef CONFIG_DEBUG_FILE 868L_CFLAGS += -DCONFIG_DEBUG_FILE 869endif 870 871ifdef CONFIG_ANDROID_LOG 872L_CFLAGS += -DCONFIG_ANDROID_LOG 873endif 874 875OBJS_c = hostapd_cli.c src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 876OBJS_c += src/utils/eloop.c 877ifdef CONFIG_WPA_TRACE 878OBJS_c += src/utils/trace.c 879endif 880OBJS_c += src/utils/wpa_debug.c 881ifdef CONFIG_WPA_CLI_EDIT 882OBJS_c += src/utils/edit.c 883else 884OBJS_c += src/utils/edit_simple.c 885endif 886 887ifdef CONFIG_ACS 888L_CFLAGS += -DCONFIG_ACS 889OBJS += src/ap/acs.c 890LIBS += -lm 891endif 892 893######################## 894 895include $(CLEAR_VARS) 896LOCAL_MODULE := hostapd_cli 897LOCAL_MODULE_TAGS := debug 898LOCAL_SHARED_LIBRARIES := libc libcutils liblog 899LOCAL_CFLAGS := $(L_CFLAGS) 900LOCAL_SRC_FILES := $(OBJS_c) 901LOCAL_C_INCLUDES := $(INCLUDES) 902include $(BUILD_EXECUTABLE) 903 904######################## 905include $(CLEAR_VARS) 906LOCAL_MODULE := hostapd 907LOCAL_MODULE_TAGS := optional 908ifdef CONFIG_DRIVER_CUSTOM 909LOCAL_STATIC_LIBRARIES := libCustomWifi 910endif 911ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 912LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 913endif 914LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 915ifdef CONFIG_DRIVER_NL80211 916LOCAL_STATIC_LIBRARIES += libnl_2 917endif 918LOCAL_CFLAGS := $(L_CFLAGS) 919LOCAL_SRC_FILES := $(OBJS) 920LOCAL_C_INCLUDES := $(INCLUDES) 921include $(BUILD_EXECUTABLE) 922 923endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 924