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