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