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