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