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