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