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