1# Copyright (C) 2008 The Android Open Source Project 2# 3# This software may be distributed under the terms of the BSD license. 4# See README for more details. 5# 6 7LOCAL_PATH := $(call my-dir) 8 9WPA_BUILD_HOSTAPD := false 10ifneq ($(BOARD_HOSTAPD_DRIVER),) 11 WPA_BUILD_HOSTAPD := true 12 CONFIG_DRIVER_$(BOARD_HOSTAPD_DRIVER) := y 13endif 14 15ifeq ($(WPA_BUILD_HOSTAPD),true) 16 17include $(LOCAL_PATH)/android.config 18 19# To ignore possible wrong network configurations 20L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS 21 22L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\" 23 24# Set Android log name 25L_CFLAGS += -DANDROID_LOG_NAME=\"hostapd\" 26 27# Disable unused parameter warnings 28L_CFLAGS += -Wno-unused-parameter 29 30# Set Android extended P2P functionality 31L_CFLAGS += -DANDROID_P2P 32 33ifeq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 34L_CFLAGS += -DANDROID_LIB_STUB 35endif 36 37# Use Android specific directory for control interface sockets 38L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\" 39L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/hostapd\" 40 41# To force sizeof(enum) = 4 42ifeq ($(TARGET_ARCH),arm) 43L_CFLAGS += -mabi=aapcs-linux 44endif 45 46INCLUDES = $(LOCAL_PATH) 47INCLUDES += $(LOCAL_PATH)/src 48INCLUDES += $(LOCAL_PATH)/src/utils 49INCLUDES += system/security/keystore/include 50ifdef CONFIG_DRIVER_NL80211 51ifneq ($(wildcard external/libnl),) 52INCLUDES += external/libnl/include 53else 54INCLUDES += external/libnl-headers 55endif 56endif 57 58 59ifndef CONFIG_OS 60ifdef CONFIG_NATIVE_WINDOWS 61CONFIG_OS=win32 62else 63CONFIG_OS=unix 64endif 65endif 66 67ifeq ($(CONFIG_OS), internal) 68L_CFLAGS += -DOS_NO_C_LIB_DEFINES 69endif 70 71ifdef CONFIG_NATIVE_WINDOWS 72L_CFLAGS += -DCONFIG_NATIVE_WINDOWS 73LIBS += -lws2_32 74endif 75 76OBJS = main.c 77OBJS += config_file.c 78 79OBJS += src/ap/hostapd.c 80OBJS += src/ap/wpa_auth_glue.c 81OBJS += src/ap/drv_callbacks.c 82OBJS += src/ap/ap_drv_ops.c 83OBJS += src/ap/utils.c 84OBJS += src/ap/authsrv.c 85OBJS += src/ap/ieee802_1x.c 86OBJS += src/ap/ap_config.c 87OBJS += src/ap/eap_user_db.c 88OBJS += src/ap/ieee802_11_auth.c 89OBJS += src/ap/sta_info.c 90OBJS += src/ap/wpa_auth.c 91OBJS += src/ap/tkip_countermeasures.c 92OBJS += src/ap/ap_mlme.c 93OBJS += src/ap/wpa_auth_ie.c 94OBJS += src/ap/preauth_auth.c 95OBJS += src/ap/pmksa_cache_auth.c 96OBJS += src/ap/ieee802_11_shared.c 97OBJS += src/ap/beacon.c 98OBJS += src/ap/bss_load.c 99OBJS += src/ap/neighbor_db.c 100OBJS += src/ap/rrm.c 101OBJS_d = 102OBJS_p = 103LIBS = 104LIBS_c = 105HOBJS = 106LIBS_h = 107 108NEED_RC4=y 109NEED_AES=y 110NEED_MD5=y 111NEED_SHA1=y 112 113OBJS += src/drivers/drivers.c 114L_CFLAGS += -DHOSTAPD 115 116ifdef CONFIG_WPA_TRACE 117L_CFLAGS += -DWPA_TRACE 118OBJS += src/utils/trace.c 119HOBJS += src/utils/trace.c 120LDFLAGS += -rdynamic 121L_CFLAGS += -funwind-tables 122ifdef CONFIG_WPA_TRACE_BFD 123L_CFLAGS += -DWPA_TRACE_BFD 124LIBS += -lbfd 125LIBS_c += -lbfd 126LIBS_h += -lbfd 127endif 128endif 129 130OBJS += src/utils/eloop.c 131 132ifdef CONFIG_ELOOP_POLL 133L_CFLAGS += -DCONFIG_ELOOP_POLL 134endif 135 136ifdef CONFIG_ELOOP_EPOLL 137L_CFLAGS += -DCONFIG_ELOOP_EPOLL 138endif 139 140OBJS += src/utils/common.c 141OBJS += src/utils/wpa_debug.c 142OBJS += src/utils/wpabuf.c 143OBJS += src/utils/os_$(CONFIG_OS).c 144OBJS += src/utils/ip_addr.c 145 146OBJS += src/common/ieee802_11_common.c 147OBJS += src/common/wpa_common.c 148OBJS += src/common/hw_features_common.c 149 150OBJS += src/eapol_auth/eapol_auth_sm.c 151 152 153ifndef CONFIG_NO_DUMP_STATE 154# define HOSTAPD_DUMP_STATE to include support for dumping internal state 155# through control interface commands (undefine it, if you want to save in 156# binary size) 157L_CFLAGS += -DHOSTAPD_DUMP_STATE 158OBJS += src/eapol_auth/eapol_auth_dump.c 159endif 160 161ifdef CONFIG_NO_RADIUS 162L_CFLAGS += -DCONFIG_NO_RADIUS 163CONFIG_NO_ACCOUNTING=y 164else 165OBJS += src/radius/radius.c 166OBJS += src/radius/radius_client.c 167OBJS += src/radius/radius_das.c 168endif 169 170ifdef CONFIG_NO_ACCOUNTING 171L_CFLAGS += -DCONFIG_NO_ACCOUNTING 172else 173OBJS += src/ap/accounting.c 174endif 175 176ifdef CONFIG_NO_VLAN 177L_CFLAGS += -DCONFIG_NO_VLAN 178else 179OBJS += src/ap/vlan_init.c 180OBJS += src/ap/vlan_ifconfig.c 181OBJS += src/ap/vlan.c 182ifdef CONFIG_FULL_DYNAMIC_VLAN 183# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 184# and VLAN interfaces for the VLAN feature. 185L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 186OBJS += src/ap/vlan_full.c 187ifdef CONFIG_VLAN_NETLINK 188OBJS += src/ap/vlan_util.c 189else 190OBJS += src/ap/vlan_ioctl.c 191endif 192endif 193endif 194 195ifdef CONFIG_NO_CTRL_IFACE 196L_CFLAGS += -DCONFIG_NO_CTRL_IFACE 197else 198OBJS += src/common/ctrl_iface_common.c 199OBJS += ctrl_iface.c 200OBJS += src/ap/ctrl_iface_ap.c 201endif 202 203L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX 204 205ifdef CONFIG_IAPP 206L_CFLAGS += -DCONFIG_IAPP 207OBJS += src/ap/iapp.c 208endif 209 210ifdef CONFIG_RSN_PREAUTH 211L_CFLAGS += -DCONFIG_RSN_PREAUTH 212CONFIG_L2_PACKET=y 213endif 214 215ifdef CONFIG_PEERKEY 216L_CFLAGS += -DCONFIG_PEERKEY 217OBJS += src/ap/peerkey_auth.c 218endif 219 220ifdef CONFIG_HS20 221NEED_AES_OMAC1=y 222CONFIG_PROXYARP=y 223endif 224 225ifdef CONFIG_PROXYARP 226CONFIG_L2_PACKET=y 227endif 228 229ifdef CONFIG_SUITEB 230L_CFLAGS += -DCONFIG_SUITEB 231NEED_SHA256=y 232NEED_AES_OMAC1=y 233endif 234 235ifdef CONFIG_SUITEB192 236L_CFLAGS += -DCONFIG_SUITEB192 237NEED_SHA384=y 238endif 239 240ifdef CONFIG_IEEE80211W 241L_CFLAGS += -DCONFIG_IEEE80211W 242NEED_SHA256=y 243NEED_AES_OMAC1=y 244endif 245 246ifdef CONFIG_IEEE80211R 247L_CFLAGS += -DCONFIG_IEEE80211R 248OBJS += src/ap/wpa_auth_ft.c 249NEED_SHA256=y 250NEED_AES_OMAC1=y 251NEED_AES_UNWRAP=y 252endif 253 254ifdef CONFIG_SAE 255L_CFLAGS += -DCONFIG_SAE 256OBJS += src/common/sae.c 257NEED_ECC=y 258NEED_DH_GROUPS=y 259endif 260 261ifdef CONFIG_WNM 262L_CFLAGS += -DCONFIG_WNM 263OBJS += src/ap/wnm_ap.c 264endif 265 266ifdef CONFIG_IEEE80211N 267L_CFLAGS += -DCONFIG_IEEE80211N 268endif 269 270ifdef CONFIG_IEEE80211AC 271L_CFLAGS += -DCONFIG_IEEE80211AC 272endif 273 274ifdef CONFIG_MBO 275L_CFLAGS += -DCONFIG_MBO 276OBJS += src/ap/mbo_ap.c 277endif 278 279ifdef CONFIG_FST 280L_CFLAGS += -DCONFIG_FST 281OBJS += src/fst/fst.c 282OBJS += src/fst/fst_group.c 283OBJS += src/fst/fst_iface.c 284OBJS += src/fst/fst_session.c 285OBJS += src/fst/fst_ctrl_aux.c 286ifdef CONFIG_FST_TEST 287L_CFLAGS += -DCONFIG_FST_TEST 288endif 289ifndef CONFIG_NO_CTRL_IFACE 290OBJS += src/fst/fst_ctrl_iface.c 291endif 292endif 293 294 295include $(LOCAL_PATH)/src/drivers/drivers.mk 296 297OBJS += $(DRV_AP_OBJS) 298L_CFLAGS += $(DRV_AP_CFLAGS) 299LDFLAGS += $(DRV_AP_LDFLAGS) 300LIBS += $(DRV_AP_LIBS) 301 302ifdef CONFIG_L2_PACKET 303ifdef CONFIG_DNET_PCAP 304ifdef CONFIG_L2_FREEBSD 305LIBS += -lpcap 306OBJS += src/l2_packet/l2_packet_freebsd.c 307else 308LIBS += -ldnet -lpcap 309OBJS += src/l2_packet/l2_packet_pcap.c 310endif 311else 312OBJS += src/l2_packet/l2_packet_linux.c 313endif 314else 315OBJS += src/l2_packet/l2_packet_none.c 316endif 317 318 319ifdef CONFIG_EAP_MD5 320L_CFLAGS += -DEAP_SERVER_MD5 321OBJS += src/eap_server/eap_server_md5.c 322CHAP=y 323endif 324 325ifdef CONFIG_EAP_TLS 326L_CFLAGS += -DEAP_SERVER_TLS 327OBJS += src/eap_server/eap_server_tls.c 328TLS_FUNCS=y 329endif 330 331ifdef CONFIG_EAP_UNAUTH_TLS 332L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS 333ifndef CONFIG_EAP_TLS 334OBJS += src/eap_server/eap_server_tls.c 335TLS_FUNCS=y 336endif 337endif 338 339ifdef CONFIG_EAP_PEAP 340L_CFLAGS += -DEAP_SERVER_PEAP 341OBJS += src/eap_server/eap_server_peap.c 342OBJS += src/eap_common/eap_peap_common.c 343TLS_FUNCS=y 344CONFIG_EAP_MSCHAPV2=y 345endif 346 347ifdef CONFIG_EAP_TTLS 348L_CFLAGS += -DEAP_SERVER_TTLS 349OBJS += src/eap_server/eap_server_ttls.c 350TLS_FUNCS=y 351CHAP=y 352endif 353 354ifdef CONFIG_EAP_MSCHAPV2 355L_CFLAGS += -DEAP_SERVER_MSCHAPV2 356OBJS += src/eap_server/eap_server_mschapv2.c 357MS_FUNCS=y 358endif 359 360ifdef CONFIG_EAP_GTC 361L_CFLAGS += -DEAP_SERVER_GTC 362OBJS += src/eap_server/eap_server_gtc.c 363endif 364 365ifdef CONFIG_EAP_SIM 366L_CFLAGS += -DEAP_SERVER_SIM 367OBJS += src/eap_server/eap_server_sim.c 368CONFIG_EAP_SIM_COMMON=y 369NEED_AES_CBC=y 370endif 371 372ifdef CONFIG_EAP_AKA 373L_CFLAGS += -DEAP_SERVER_AKA 374OBJS += src/eap_server/eap_server_aka.c 375CONFIG_EAP_SIM_COMMON=y 376NEED_SHA256=y 377NEED_AES_CBC=y 378endif 379 380ifdef CONFIG_EAP_AKA_PRIME 381L_CFLAGS += -DEAP_SERVER_AKA_PRIME 382endif 383 384ifdef CONFIG_EAP_SIM_COMMON 385OBJS += src/eap_common/eap_sim_common.c 386# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 387# replaced with another file implementating the interface specified in 388# eap_sim_db.h. 389OBJS += src/eap_server/eap_sim_db.c 390NEED_FIPS186_2_PRF=y 391endif 392 393ifdef CONFIG_EAP_PAX 394L_CFLAGS += -DEAP_SERVER_PAX 395OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c 396endif 397 398ifdef CONFIG_EAP_PSK 399L_CFLAGS += -DEAP_SERVER_PSK 400OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c 401NEED_AES_OMAC1=y 402NEED_AES_ENCBLOCK=y 403NEED_AES_EAX=y 404endif 405 406ifdef CONFIG_EAP_SAKE 407L_CFLAGS += -DEAP_SERVER_SAKE 408OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c 409endif 410 411ifdef CONFIG_EAP_GPSK 412L_CFLAGS += -DEAP_SERVER_GPSK 413OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c 414ifdef CONFIG_EAP_GPSK_SHA256 415L_CFLAGS += -DEAP_GPSK_SHA256 416endif 417NEED_SHA256=y 418NEED_AES_OMAC1=y 419endif 420 421ifdef CONFIG_EAP_PWD 422L_CFLAGS += -DEAP_SERVER_PWD 423OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c 424NEED_SHA256=y 425endif 426 427ifdef CONFIG_EAP_EKE 428L_CFLAGS += -DEAP_SERVER_EKE 429OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 430NEED_DH_GROUPS=y 431NEED_DH_GROUPS_ALL=y 432endif 433 434ifdef CONFIG_EAP_VENDOR_TEST 435L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 436OBJS += src/eap_server/eap_server_vendor_test.c 437endif 438 439ifdef CONFIG_EAP_FAST 440L_CFLAGS += -DEAP_SERVER_FAST 441OBJS += src/eap_server/eap_server_fast.c 442OBJS += src/eap_common/eap_fast_common.c 443TLS_FUNCS=y 444NEED_T_PRF=y 445NEED_AES_UNWRAP=y 446endif 447 448ifdef CONFIG_WPS 449L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 450OBJS += src/utils/uuid.c 451OBJS += src/ap/wps_hostapd.c 452OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 453OBJS += src/wps/wps.c 454OBJS += src/wps/wps_common.c 455OBJS += src/wps/wps_attr_parse.c 456OBJS += src/wps/wps_attr_build.c 457OBJS += src/wps/wps_attr_process.c 458OBJS += src/wps/wps_dev_attr.c 459OBJS += src/wps/wps_enrollee.c 460OBJS += src/wps/wps_registrar.c 461NEED_DH_GROUPS=y 462NEED_SHA256=y 463NEED_BASE64=y 464NEED_AES_CBC=y 465NEED_MODEXP=y 466CONFIG_EAP=y 467 468ifdef CONFIG_WPS_NFC 469L_CFLAGS += -DCONFIG_WPS_NFC 470OBJS += src/wps/ndef.c 471NEED_WPS_OOB=y 472endif 473 474ifdef NEED_WPS_OOB 475L_CFLAGS += -DCONFIG_WPS_OOB 476endif 477 478ifdef CONFIG_WPS_UPNP 479L_CFLAGS += -DCONFIG_WPS_UPNP 480OBJS += src/wps/wps_upnp.c 481OBJS += src/wps/wps_upnp_ssdp.c 482OBJS += src/wps/wps_upnp_web.c 483OBJS += src/wps/wps_upnp_event.c 484OBJS += src/wps/wps_upnp_ap.c 485OBJS += src/wps/upnp_xml.c 486OBJS += src/wps/httpread.c 487OBJS += src/wps/http_client.c 488OBJS += src/wps/http_server.c 489endif 490 491ifdef CONFIG_WPS_STRICT 492L_CFLAGS += -DCONFIG_WPS_STRICT 493OBJS += src/wps/wps_validate.c 494endif 495 496ifdef CONFIG_WPS_TESTING 497L_CFLAGS += -DCONFIG_WPS_TESTING 498endif 499 500endif 501 502ifdef CONFIG_EAP_IKEV2 503L_CFLAGS += -DEAP_SERVER_IKEV2 504OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 505OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 506NEED_DH_GROUPS=y 507NEED_DH_GROUPS_ALL=y 508NEED_MODEXP=y 509NEED_CIPHER=y 510endif 511 512ifdef CONFIG_EAP_TNC 513L_CFLAGS += -DEAP_SERVER_TNC 514OBJS += src/eap_server/eap_server_tnc.c 515OBJS += src/eap_server/tncs.c 516NEED_BASE64=y 517ifndef CONFIG_DRIVER_BSD 518LIBS += -ldl 519endif 520endif 521 522# Basic EAP functionality is needed for EAPOL 523OBJS += eap_register.c 524OBJS += src/eap_server/eap_server.c 525OBJS += src/eap_common/eap_common.c 526OBJS += src/eap_server/eap_server_methods.c 527OBJS += src/eap_server/eap_server_identity.c 528L_CFLAGS += -DEAP_SERVER_IDENTITY 529 530ifdef CONFIG_EAP 531L_CFLAGS += -DEAP_SERVER 532endif 533 534ifdef CONFIG_PKCS12 535L_CFLAGS += -DPKCS12_FUNCS 536endif 537 538ifdef MS_FUNCS 539OBJS += src/crypto/ms_funcs.c 540NEED_DES=y 541NEED_MD4=y 542endif 543 544ifdef CHAP 545OBJS += src/eap_common/chap.c 546endif 547 548ifdef TLS_FUNCS 549NEED_DES=y 550# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 551L_CFLAGS += -DEAP_TLS_FUNCS 552OBJS += src/eap_server/eap_server_tls_common.c 553NEED_TLS_PRF=y 554endif 555 556ifndef CONFIG_TLS 557CONFIG_TLS=openssl 558endif 559 560ifdef CONFIG_TLSV11 561L_CFLAGS += -DCONFIG_TLSV11 562endif 563 564ifdef CONFIG_TLSV12 565L_CFLAGS += -DCONFIG_TLSV12 566NEED_SHA256=y 567endif 568 569ifeq ($(CONFIG_TLS), openssl) 570ifdef TLS_FUNCS 571OBJS += src/crypto/tls_openssl.c 572OBJS += src/crypto/tls_openssl_ocsp.c 573LIBS += -lssl 574endif 575OBJS += src/crypto/crypto_openssl.c 576HOBJS += src/crypto/crypto_openssl.c 577ifdef NEED_FIPS186_2_PRF 578OBJS += src/crypto/fips_prf_openssl.c 579endif 580NEED_SHA256=y 581NEED_TLS_PRF_SHA256=y 582LIBS += -lcrypto 583LIBS_h += -lcrypto 584endif 585 586ifeq ($(CONFIG_TLS), gnutls) 587ifdef TLS_FUNCS 588OBJS += src/crypto/tls_gnutls.c 589LIBS += -lgnutls -lgpg-error 590endif 591OBJS += src/crypto/crypto_gnutls.c 592HOBJS += src/crypto/crypto_gnutls.c 593ifdef NEED_FIPS186_2_PRF 594OBJS += src/crypto/fips_prf_internal.c 595OBJS += src/crypto/sha1-internal.c 596endif 597LIBS += -lgcrypt 598LIBS_h += -lgcrypt 599CONFIG_INTERNAL_SHA256=y 600CONFIG_INTERNAL_RC4=y 601CONFIG_INTERNAL_DH_GROUP5=y 602endif 603 604ifeq ($(CONFIG_TLS), internal) 605ifndef CONFIG_CRYPTO 606CONFIG_CRYPTO=internal 607endif 608ifdef TLS_FUNCS 609OBJS += src/crypto/crypto_internal-rsa.c 610OBJS += src/crypto/tls_internal.c 611OBJS += src/tls/tlsv1_common.c 612OBJS += src/tls/tlsv1_record.c 613OBJS += src/tls/tlsv1_cred.c 614OBJS += src/tls/tlsv1_server.c 615OBJS += src/tls/tlsv1_server_write.c 616OBJS += src/tls/tlsv1_server_read.c 617OBJS += src/tls/asn1.c 618OBJS += src/tls/rsa.c 619OBJS += src/tls/x509v3.c 620OBJS += src/tls/pkcs1.c 621OBJS += src/tls/pkcs5.c 622OBJS += src/tls/pkcs8.c 623NEED_SHA256=y 624NEED_BASE64=y 625NEED_TLS_PRF=y 626ifdef CONFIG_TLSV12 627NEED_TLS_PRF_SHA256=y 628endif 629NEED_MODEXP=y 630NEED_CIPHER=y 631L_CFLAGS += -DCONFIG_TLS_INTERNAL 632L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 633endif 634ifdef NEED_CIPHER 635NEED_DES=y 636OBJS += src/crypto/crypto_internal-cipher.c 637endif 638ifdef NEED_MODEXP 639OBJS += src/crypto/crypto_internal-modexp.c 640OBJS += src/tls/bignum.c 641endif 642ifeq ($(CONFIG_CRYPTO), libtomcrypt) 643OBJS += src/crypto/crypto_libtomcrypt.c 644LIBS += -ltomcrypt -ltfm 645LIBS_h += -ltomcrypt -ltfm 646CONFIG_INTERNAL_SHA256=y 647CONFIG_INTERNAL_RC4=y 648CONFIG_INTERNAL_DH_GROUP5=y 649endif 650ifeq ($(CONFIG_CRYPTO), internal) 651OBJS += src/crypto/crypto_internal.c 652NEED_AES_DEC=y 653L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 654ifdef CONFIG_INTERNAL_LIBTOMMATH 655L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 656ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 657L_CFLAGS += -DLTM_FAST 658endif 659else 660LIBS += -ltommath 661LIBS_h += -ltommath 662endif 663CONFIG_INTERNAL_AES=y 664CONFIG_INTERNAL_DES=y 665CONFIG_INTERNAL_SHA1=y 666CONFIG_INTERNAL_MD4=y 667CONFIG_INTERNAL_MD5=y 668CONFIG_INTERNAL_SHA256=y 669CONFIG_INTERNAL_SHA384=y 670CONFIG_INTERNAL_SHA512=y 671CONFIG_INTERNAL_RC4=y 672CONFIG_INTERNAL_DH_GROUP5=y 673endif 674ifeq ($(CONFIG_CRYPTO), cryptoapi) 675OBJS += src/crypto/crypto_cryptoapi.c 676OBJS_p += src/crypto/crypto_cryptoapi.c 677L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 678CONFIG_INTERNAL_SHA256=y 679CONFIG_INTERNAL_RC4=y 680endif 681endif 682 683ifeq ($(CONFIG_TLS), none) 684ifdef TLS_FUNCS 685OBJS += src/crypto/tls_none.c 686L_CFLAGS += -DEAP_TLS_NONE 687CONFIG_INTERNAL_AES=y 688CONFIG_INTERNAL_SHA1=y 689CONFIG_INTERNAL_MD5=y 690endif 691OBJS += src/crypto/crypto_none.c 692OBJS_p += src/crypto/crypto_none.c 693CONFIG_INTERNAL_SHA256=y 694CONFIG_INTERNAL_RC4=y 695endif 696 697ifndef TLS_FUNCS 698OBJS += src/crypto/tls_none.c 699ifeq ($(CONFIG_TLS), internal) 700CONFIG_INTERNAL_AES=y 701CONFIG_INTERNAL_SHA1=y 702CONFIG_INTERNAL_MD5=y 703CONFIG_INTERNAL_RC4=y 704endif 705endif 706 707AESOBJS = # none so far 708ifdef CONFIG_INTERNAL_AES 709AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 710endif 711 712ifneq ($(CONFIG_TLS), openssl) 713AESOBJS += src/crypto/aes-wrap.c 714endif 715ifdef NEED_AES_EAX 716AESOBJS += src/crypto/aes-eax.c 717NEED_AES_CTR=y 718endif 719ifdef NEED_AES_CTR 720AESOBJS += src/crypto/aes-ctr.c 721endif 722ifdef NEED_AES_ENCBLOCK 723AESOBJS += src/crypto/aes-encblock.c 724endif 725ifdef NEED_AES_OMAC1 726AESOBJS += src/crypto/aes-omac1.c 727endif 728ifdef NEED_AES_UNWRAP 729ifneq ($(CONFIG_TLS), openssl) 730NEED_AES_DEC=y 731AESOBJS += src/crypto/aes-unwrap.c 732endif 733endif 734ifdef NEED_AES_CBC 735NEED_AES_DEC=y 736ifneq ($(CONFIG_TLS), openssl) 737AESOBJS += src/crypto/aes-cbc.c 738endif 739endif 740ifdef NEED_AES_DEC 741ifdef CONFIG_INTERNAL_AES 742AESOBJS += src/crypto/aes-internal-dec.c 743endif 744endif 745ifdef NEED_AES 746OBJS += $(AESOBJS) 747endif 748 749SHA1OBJS = 750ifdef NEED_SHA1 751ifneq ($(CONFIG_TLS), openssl) 752SHA1OBJS += src/crypto/sha1.c 753endif 754SHA1OBJS += src/crypto/sha1-prf.c 755ifdef CONFIG_INTERNAL_SHA1 756SHA1OBJS += src/crypto/sha1-internal.c 757ifdef NEED_FIPS186_2_PRF 758SHA1OBJS += src/crypto/fips_prf_internal.c 759endif 760endif 761ifneq ($(CONFIG_TLS), openssl) 762SHA1OBJS += src/crypto/sha1-pbkdf2.c 763endif 764ifdef NEED_T_PRF 765SHA1OBJS += src/crypto/sha1-tprf.c 766endif 767ifdef NEED_TLS_PRF 768SHA1OBJS += src/crypto/sha1-tlsprf.c 769endif 770endif 771 772ifdef NEED_SHA1 773OBJS += $(SHA1OBJS) 774endif 775 776ifneq ($(CONFIG_TLS), openssl) 777OBJS += src/crypto/md5.c 778endif 779 780ifdef NEED_MD5 781ifdef CONFIG_INTERNAL_MD5 782OBJS += src/crypto/md5-internal.c 783HOBJS += src/crypto/md5-internal.c 784endif 785endif 786 787ifdef NEED_MD4 788ifdef CONFIG_INTERNAL_MD4 789OBJS += src/crypto/md4-internal.c 790endif 791endif 792 793ifdef NEED_DES 794ifdef CONFIG_INTERNAL_DES 795OBJS += src/crypto/des-internal.c 796endif 797endif 798 799ifdef CONFIG_NO_RC4 800L_CFLAGS += -DCONFIG_NO_RC4 801endif 802 803ifdef NEED_RC4 804ifdef CONFIG_INTERNAL_RC4 805ifndef CONFIG_NO_RC4 806OBJS += src/crypto/rc4.c 807endif 808endif 809endif 810 811ifdef NEED_SHA256 812L_CFLAGS += -DCONFIG_SHA256 813ifneq ($(CONFIG_TLS), openssl) 814OBJS += src/crypto/sha256.c 815endif 816OBJS += src/crypto/sha256-prf.c 817ifdef CONFIG_INTERNAL_SHA256 818OBJS += src/crypto/sha256-internal.c 819endif 820ifdef NEED_TLS_PRF_SHA256 821OBJS += src/crypto/sha256-tlsprf.c 822endif 823endif 824ifdef NEED_SHA384 825L_CFLAGS += -DCONFIG_SHA384 826OBJS += src/crypto/sha384-prf.c 827endif 828 829ifdef CONFIG_INTERNAL_SHA384 830L_CFLAGS += -DCONFIG_INTERNAL_SHA384 831OBJS += src/crypto/sha384-internal.c 832endif 833 834ifdef CONFIG_INTERNAL_SHA512 835L_CFLAGS += -DCONFIG_INTERNAL_SHA512 836OBJS += src/crypto/sha512-internal.c 837endif 838 839ifdef NEED_DH_GROUPS 840OBJS += src/crypto/dh_groups.c 841endif 842ifdef NEED_DH_GROUPS_ALL 843L_CFLAGS += -DALL_DH_GROUPS 844endif 845ifdef CONFIG_INTERNAL_DH_GROUP5 846ifdef NEED_DH_GROUPS 847OBJS += src/crypto/dh_group5.c 848endif 849endif 850 851ifdef NEED_ECC 852L_CFLAGS += -DCONFIG_ECC 853endif 854 855ifdef CONFIG_NO_RANDOM_POOL 856L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 857else 858OBJS += src/crypto/random.c 859HOBJS += src/crypto/random.c 860HOBJS += src/utils/eloop.c 861HOBJS += $(SHA1OBJS) 862ifneq ($(CONFIG_TLS), openssl) 863HOBJS += src/crypto/md5.c 864endif 865endif 866 867ifdef CONFIG_RADIUS_SERVER 868L_CFLAGS += -DRADIUS_SERVER 869OBJS += src/radius/radius_server.c 870endif 871 872ifdef CONFIG_IPV6 873L_CFLAGS += -DCONFIG_IPV6 874endif 875 876ifdef CONFIG_DRIVER_RADIUS_ACL 877L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 878endif 879 880ifdef NEED_BASE64 881OBJS += src/utils/base64.c 882endif 883 884ifdef NEED_AP_MLME 885OBJS += src/ap/wmm.c 886OBJS += src/ap/ap_list.c 887OBJS += src/ap/ieee802_11.c 888OBJS += src/ap/hw_features.c 889OBJS += src/ap/dfs.c 890L_CFLAGS += -DNEED_AP_MLME 891endif 892ifdef CONFIG_IEEE80211N 893OBJS += src/ap/ieee802_11_ht.c 894endif 895 896ifdef CONFIG_IEEE80211AC 897OBJS += src/ap/ieee802_11_vht.c 898endif 899 900ifdef CONFIG_P2P_MANAGER 901L_CFLAGS += -DCONFIG_P2P_MANAGER 902OBJS += src/ap/p2p_hostapd.c 903endif 904 905ifdef CONFIG_HS20 906L_CFLAGS += -DCONFIG_HS20 907OBJS += src/ap/hs20.c 908CONFIG_INTERWORKING=y 909endif 910 911ifdef CONFIG_INTERWORKING 912L_CFLAGS += -DCONFIG_INTERWORKING 913OBJS += src/common/gas.c 914OBJS += src/ap/gas_serv.c 915endif 916 917ifdef CONFIG_PROXYARP 918L_CFLAGS += -DCONFIG_PROXYARP 919OBJS += src/ap/x_snoop.c 920OBJS += src/ap/dhcp_snoop.c 921ifdef CONFIG_IPV6 922OBJS += src/ap/ndisc_snoop.c 923endif 924endif 925 926OBJS += src/drivers/driver_common.c 927 928ifdef CONFIG_ACS 929L_CFLAGS += -DCONFIG_ACS 930OBJS += src/ap/acs.c 931LIBS += -lm 932endif 933 934ifdef CONFIG_NO_STDOUT_DEBUG 935L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 936endif 937 938ifdef CONFIG_DEBUG_LINUX_TRACING 939L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 940endif 941 942ifdef CONFIG_DEBUG_FILE 943L_CFLAGS += -DCONFIG_DEBUG_FILE 944endif 945 946ifdef CONFIG_ANDROID_LOG 947L_CFLAGS += -DCONFIG_ANDROID_LOG 948endif 949 950OBJS_c = hostapd_cli.c 951OBJS_c += src/common/wpa_ctrl.c 952OBJS_c += src/utils/os_$(CONFIG_OS).c 953OBJS_c += src/common/cli.c 954OBJS_c += src/utils/eloop.c 955OBJS_c += src/utils/common.c 956ifdef CONFIG_WPA_TRACE 957OBJS_c += src/utils/trace.c 958endif 959OBJS_c += src/utils/wpa_debug.c 960ifdef CONFIG_WPA_CLI_EDIT 961OBJS_c += src/utils/edit.c 962else 963OBJS_c += src/utils/edit_simple.c 964endif 965 966######################## 967 968include $(CLEAR_VARS) 969LOCAL_MODULE := hostapd_cli 970LOCAL_MODULE_TAGS := debug 971LOCAL_SHARED_LIBRARIES := libc libcutils liblog 972LOCAL_CFLAGS := $(L_CFLAGS) 973LOCAL_SRC_FILES := $(OBJS_c) 974LOCAL_C_INCLUDES := $(INCLUDES) 975include $(BUILD_EXECUTABLE) 976 977######################## 978include $(CLEAR_VARS) 979LOCAL_MODULE := hostapd 980LOCAL_MODULE_TAGS := optional 981ifdef CONFIG_DRIVER_CUSTOM 982LOCAL_STATIC_LIBRARIES := libCustomWifi 983endif 984ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 985LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 986endif 987LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 988ifdef CONFIG_DRIVER_NL80211 989ifneq ($(wildcard external/libnl),) 990LOCAL_SHARED_LIBRARIES += libnl 991else 992LOCAL_STATIC_LIBRARIES += libnl_2 993endif 994endif 995LOCAL_CFLAGS := $(L_CFLAGS) 996LOCAL_SRC_FILES := $(OBJS) 997LOCAL_C_INCLUDES := $(INCLUDES) 998LOCAL_INIT_RC := hostapd.android.rc 999include $(BUILD_EXECUTABLE) 1000 1001endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 1002