Android.mk revision 5460547a121207cf7a99eac45e05fcdd83be3161
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_P2P 33endif 34 35ifeq ($(BOARD_WLAN_DEVICE), mrvl) 36L_CFLAGS += -DANDROID_P2P 37endif 38 39# Use Android specific directory for control interface sockets 40L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\" 41L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/hostapd\" 42 43# To force sizeof(enum) = 4 44ifeq ($(TARGET_ARCH),arm) 45L_CFLAGS += -mabi=aapcs-linux 46endif 47 48INCLUDES = $(LOCAL_PATH) 49INCLUDES += $(LOCAL_PATH)/src 50INCLUDES += $(LOCAL_PATH)/src/utils 51INCLUDES += external/openssl/include 52INCLUDES += system/security/keystore/include 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/eap_user_db.c 87OBJS += src/ap/ieee802_11_auth.c 88OBJS += src/ap/sta_info.c 89OBJS += src/ap/wpa_auth.c 90OBJS += src/ap/tkip_countermeasures.c 91OBJS += src/ap/ap_mlme.c 92OBJS += src/ap/wpa_auth_ie.c 93OBJS += src/ap/preauth_auth.c 94OBJS += src/ap/pmksa_cache_auth.c 95OBJS += src/ap/ieee802_11_shared.c 96OBJS += src/ap/beacon.c 97OBJS_d = 98OBJS_p = 99LIBS = 100LIBS_c = 101HOBJS = 102LIBS_h = 103 104NEED_RC4=y 105NEED_AES=y 106NEED_MD5=y 107NEED_SHA1=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_SAE 215L_CFLAGS += -DCONFIG_SAE 216OBJS += src/common/sae.c 217NEED_ECC=y 218NEED_DH_GROUPS=y 219endif 220 221ifdef CONFIG_WNM 222L_CFLAGS += -DCONFIG_WNM 223OBJS += src/ap/wnm_ap.c 224endif 225 226ifdef CONFIG_IEEE80211N 227L_CFLAGS += -DCONFIG_IEEE80211N 228endif 229 230ifdef CONFIG_IEEE80211AC 231L_CFLAGS += -DCONFIG_IEEE80211AC 232endif 233 234include $(LOCAL_PATH)/src/drivers/drivers.mk 235 236OBJS += $(DRV_AP_OBJS) 237L_CFLAGS += $(DRV_AP_CFLAGS) 238LDFLAGS += $(DRV_AP_LDFLAGS) 239LIBS += $(DRV_AP_LIBS) 240 241ifdef CONFIG_L2_PACKET 242ifdef CONFIG_DNET_PCAP 243ifdef CONFIG_L2_FREEBSD 244LIBS += -lpcap 245OBJS += src/l2_packet/l2_packet_freebsd.c 246else 247LIBS += -ldnet -lpcap 248OBJS += src/l2_packet/l2_packet_pcap.c 249endif 250else 251OBJS += src/l2_packet/l2_packet_linux.c 252endif 253else 254OBJS += src/l2_packet/l2_packet_none.c 255endif 256 257 258ifdef CONFIG_EAP_MD5 259L_CFLAGS += -DEAP_SERVER_MD5 260OBJS += src/eap_server/eap_server_md5.c 261CHAP=y 262endif 263 264ifdef CONFIG_EAP_TLS 265L_CFLAGS += -DEAP_SERVER_TLS 266OBJS += src/eap_server/eap_server_tls.c 267TLS_FUNCS=y 268endif 269 270ifdef CONFIG_EAP_UNAUTH_TLS 271L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS 272ifndef CONFIG_EAP_TLS 273OBJS += src/eap_server/eap_server_tls.c 274TLS_FUNCS=y 275endif 276endif 277 278ifdef CONFIG_EAP_PEAP 279L_CFLAGS += -DEAP_SERVER_PEAP 280OBJS += src/eap_server/eap_server_peap.c 281OBJS += src/eap_common/eap_peap_common.c 282TLS_FUNCS=y 283CONFIG_EAP_MSCHAPV2=y 284endif 285 286ifdef CONFIG_EAP_TTLS 287L_CFLAGS += -DEAP_SERVER_TTLS 288OBJS += src/eap_server/eap_server_ttls.c 289TLS_FUNCS=y 290CHAP=y 291endif 292 293ifdef CONFIG_EAP_MSCHAPV2 294L_CFLAGS += -DEAP_SERVER_MSCHAPV2 295OBJS += src/eap_server/eap_server_mschapv2.c 296MS_FUNCS=y 297endif 298 299ifdef CONFIG_EAP_GTC 300L_CFLAGS += -DEAP_SERVER_GTC 301OBJS += src/eap_server/eap_server_gtc.c 302endif 303 304ifdef CONFIG_EAP_SIM 305L_CFLAGS += -DEAP_SERVER_SIM 306OBJS += src/eap_server/eap_server_sim.c 307CONFIG_EAP_SIM_COMMON=y 308NEED_AES_CBC=y 309endif 310 311ifdef CONFIG_EAP_AKA 312L_CFLAGS += -DEAP_SERVER_AKA 313OBJS += src/eap_server/eap_server_aka.c 314CONFIG_EAP_SIM_COMMON=y 315NEED_SHA256=y 316NEED_AES_CBC=y 317endif 318 319ifdef CONFIG_EAP_AKA_PRIME 320L_CFLAGS += -DEAP_SERVER_AKA_PRIME 321endif 322 323ifdef CONFIG_EAP_SIM_COMMON 324OBJS += src/eap_common/eap_sim_common.c 325# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 326# replaced with another file implementating the interface specified in 327# eap_sim_db.h. 328OBJS += src/eap_server/eap_sim_db.c 329NEED_FIPS186_2_PRF=y 330endif 331 332ifdef CONFIG_EAP_PAX 333L_CFLAGS += -DEAP_SERVER_PAX 334OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c 335endif 336 337ifdef CONFIG_EAP_PSK 338L_CFLAGS += -DEAP_SERVER_PSK 339OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c 340NEED_AES_OMAC1=y 341NEED_AES_ENCBLOCK=y 342NEED_AES_EAX=y 343endif 344 345ifdef CONFIG_EAP_SAKE 346L_CFLAGS += -DEAP_SERVER_SAKE 347OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c 348endif 349 350ifdef CONFIG_EAP_GPSK 351L_CFLAGS += -DEAP_SERVER_GPSK 352OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c 353ifdef CONFIG_EAP_GPSK_SHA256 354L_CFLAGS += -DEAP_SERVER_GPSK_SHA256 355endif 356NEED_SHA256=y 357NEED_AES_OMAC1=y 358endif 359 360ifdef CONFIG_EAP_PWD 361L_CFLAGS += -DEAP_SERVER_PWD 362OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c 363NEED_SHA256=y 364endif 365 366ifdef CONFIG_EAP_EKE 367L_CFLAGS += -DEAP_SERVER_EKE 368OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c 369NEED_DH_GROUPS=y 370NEED_DH_GROUPS_ALL=y 371endif 372 373ifdef CONFIG_EAP_VENDOR_TEST 374L_CFLAGS += -DEAP_SERVER_VENDOR_TEST 375OBJS += src/eap_server/eap_server_vendor_test.c 376endif 377 378ifdef CONFIG_EAP_FAST 379L_CFLAGS += -DEAP_SERVER_FAST 380OBJS += src/eap_server/eap_server_fast.c 381OBJS += src/eap_common/eap_fast_common.c 382TLS_FUNCS=y 383NEED_T_PRF=y 384NEED_AES_UNWRAP=y 385endif 386 387ifdef CONFIG_WPS 388ifdef CONFIG_WPS2 389L_CFLAGS += -DCONFIG_WPS2 390endif 391 392L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 393OBJS += src/utils/uuid.c 394OBJS += src/ap/wps_hostapd.c 395OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c 396OBJS += src/wps/wps.c 397OBJS += src/wps/wps_common.c 398OBJS += src/wps/wps_attr_parse.c 399OBJS += src/wps/wps_attr_build.c 400OBJS += src/wps/wps_attr_process.c 401OBJS += src/wps/wps_dev_attr.c 402OBJS += src/wps/wps_enrollee.c 403OBJS += src/wps/wps_registrar.c 404NEED_DH_GROUPS=y 405NEED_SHA256=y 406NEED_BASE64=y 407NEED_AES_CBC=y 408NEED_MODEXP=y 409CONFIG_EAP=y 410 411ifdef CONFIG_WPS_NFC 412L_CFLAGS += -DCONFIG_WPS_NFC 413OBJS += src/wps/ndef.c 414NEED_WPS_OOB=y 415endif 416 417ifdef NEED_WPS_OOB 418L_CFLAGS += -DCONFIG_WPS_OOB 419endif 420 421ifdef CONFIG_WPS_UPNP 422L_CFLAGS += -DCONFIG_WPS_UPNP 423OBJS += src/wps/wps_upnp.c 424OBJS += src/wps/wps_upnp_ssdp.c 425OBJS += src/wps/wps_upnp_web.c 426OBJS += src/wps/wps_upnp_event.c 427OBJS += src/wps/wps_upnp_ap.c 428OBJS += src/wps/upnp_xml.c 429OBJS += src/wps/httpread.c 430OBJS += src/wps/http_client.c 431OBJS += src/wps/http_server.c 432endif 433 434ifdef CONFIG_WPS_STRICT 435L_CFLAGS += -DCONFIG_WPS_STRICT 436OBJS += src/wps/wps_validate.c 437endif 438 439ifdef CONFIG_WPS_TESTING 440L_CFLAGS += -DCONFIG_WPS_TESTING 441endif 442 443endif 444 445ifdef CONFIG_EAP_IKEV2 446L_CFLAGS += -DEAP_SERVER_IKEV2 447OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c 448OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c 449NEED_DH_GROUPS=y 450NEED_DH_GROUPS_ALL=y 451NEED_MODEXP=y 452NEED_CIPHER=y 453endif 454 455ifdef CONFIG_EAP_TNC 456L_CFLAGS += -DEAP_SERVER_TNC 457OBJS += src/eap_server/eap_server_tnc.c 458OBJS += src/eap_server/tncs.c 459NEED_BASE64=y 460ifndef CONFIG_DRIVER_BSD 461LIBS += -ldl 462endif 463endif 464 465# Basic EAP functionality is needed for EAPOL 466OBJS += eap_register.c 467OBJS += src/eap_server/eap_server.c 468OBJS += src/eap_common/eap_common.c 469OBJS += src/eap_server/eap_server_methods.c 470OBJS += src/eap_server/eap_server_identity.c 471L_CFLAGS += -DEAP_SERVER_IDENTITY 472 473ifdef CONFIG_EAP 474L_CFLAGS += -DEAP_SERVER 475endif 476 477ifdef CONFIG_PKCS12 478L_CFLAGS += -DPKCS12_FUNCS 479endif 480 481ifdef MS_FUNCS 482OBJS += src/crypto/ms_funcs.c 483NEED_DES=y 484NEED_MD4=y 485endif 486 487ifdef CHAP 488OBJS += src/eap_common/chap.c 489endif 490 491ifdef TLS_FUNCS 492NEED_DES=y 493# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 494L_CFLAGS += -DEAP_TLS_FUNCS 495OBJS += src/eap_server/eap_server_tls_common.c 496NEED_TLS_PRF=y 497endif 498 499ifndef CONFIG_TLS 500CONFIG_TLS=openssl 501endif 502 503ifdef CONFIG_TLSV11 504L_CFLAGS += -DCONFIG_TLSV11 505endif 506 507ifdef CONFIG_TLSV12 508L_CFLAGS += -DCONFIG_TLSV12 509NEED_SHA256=y 510endif 511 512ifeq ($(CONFIG_TLS), openssl) 513ifdef TLS_FUNCS 514OBJS += src/crypto/tls_openssl.c 515LIBS += -lssl 516endif 517OBJS += src/crypto/crypto_openssl.c 518HOBJS += src/crypto/crypto_openssl.c 519ifdef NEED_FIPS186_2_PRF 520OBJS += src/crypto/fips_prf_openssl.c 521endif 522LIBS += -lcrypto 523LIBS_h += -lcrypto 524endif 525 526ifeq ($(CONFIG_TLS), gnutls) 527ifdef TLS_FUNCS 528OBJS += src/crypto/tls_gnutls.c 529LIBS += -lgnutls -lgpg-error 530endif 531OBJS += src/crypto/crypto_gnutls.c 532HOBJS += src/crypto/crypto_gnutls.c 533ifdef NEED_FIPS186_2_PRF 534OBJS += src/crypto/fips_prf_gnutls.c 535endif 536LIBS += -lgcrypt 537LIBS_h += -lgcrypt 538CONFIG_INTERNAL_SHA256=y 539CONFIG_INTERNAL_RC4=y 540CONFIG_INTERNAL_DH_GROUP5=y 541endif 542 543ifeq ($(CONFIG_TLS), schannel) 544ifdef TLS_FUNCS 545OBJS += src/crypto/tls_schannel.c 546endif 547OBJS += src/crypto/crypto_cryptoapi.c 548OBJS_p += src/crypto/crypto_cryptoapi.c 549CONFIG_INTERNAL_SHA256=y 550CONFIG_INTERNAL_RC4=y 551CONFIG_INTERNAL_DH_GROUP5=y 552endif 553 554ifeq ($(CONFIG_TLS), nss) 555ifdef TLS_FUNCS 556OBJS += src/crypto/tls_nss.c 557LIBS += -lssl3 558endif 559OBJS += src/crypto/crypto_nss.c 560ifdef NEED_FIPS186_2_PRF 561OBJS += src/crypto/fips_prf_nss.c 562endif 563LIBS += -lnss3 564LIBS_h += -lnss3 565CONFIG_INTERNAL_MD4=y 566CONFIG_INTERNAL_DH_GROUP5=y 567endif 568 569ifeq ($(CONFIG_TLS), internal) 570ifndef CONFIG_CRYPTO 571CONFIG_CRYPTO=internal 572endif 573ifdef TLS_FUNCS 574OBJS += src/crypto/crypto_internal-rsa.c 575OBJS += src/crypto/tls_internal.c 576OBJS += src/tls/tlsv1_common.c 577OBJS += src/tls/tlsv1_record.c 578OBJS += src/tls/tlsv1_cred.c 579OBJS += src/tls/tlsv1_server.c 580OBJS += src/tls/tlsv1_server_write.c 581OBJS += src/tls/tlsv1_server_read.c 582OBJS += src/tls/asn1.c 583OBJS += src/tls/rsa.c 584OBJS += src/tls/x509v3.c 585OBJS += src/tls/pkcs1.c 586OBJS += src/tls/pkcs5.c 587OBJS += src/tls/pkcs8.c 588NEED_SHA256=y 589NEED_BASE64=y 590NEED_TLS_PRF=y 591ifdef CONFIG_TLSV12 592NEED_TLS_PRF_SHA256=y 593endif 594NEED_MODEXP=y 595NEED_CIPHER=y 596L_CFLAGS += -DCONFIG_TLS_INTERNAL 597L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 598endif 599ifdef NEED_CIPHER 600NEED_DES=y 601OBJS += src/crypto/crypto_internal-cipher.c 602endif 603ifdef NEED_MODEXP 604OBJS += src/crypto/crypto_internal-modexp.c 605OBJS += src/tls/bignum.c 606endif 607ifeq ($(CONFIG_CRYPTO), libtomcrypt) 608OBJS += src/crypto/crypto_libtomcrypt.c 609LIBS += -ltomcrypt -ltfm 610LIBS_h += -ltomcrypt -ltfm 611CONFIG_INTERNAL_SHA256=y 612CONFIG_INTERNAL_RC4=y 613CONFIG_INTERNAL_DH_GROUP5=y 614endif 615ifeq ($(CONFIG_CRYPTO), internal) 616OBJS += src/crypto/crypto_internal.c 617NEED_AES_DEC=y 618L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 619ifdef CONFIG_INTERNAL_LIBTOMMATH 620L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 621ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 622L_CFLAGS += -DLTM_FAST 623endif 624else 625LIBS += -ltommath 626LIBS_h += -ltommath 627endif 628CONFIG_INTERNAL_AES=y 629CONFIG_INTERNAL_DES=y 630CONFIG_INTERNAL_SHA1=y 631CONFIG_INTERNAL_MD4=y 632CONFIG_INTERNAL_MD5=y 633CONFIG_INTERNAL_SHA256=y 634CONFIG_INTERNAL_RC4=y 635CONFIG_INTERNAL_DH_GROUP5=y 636endif 637ifeq ($(CONFIG_CRYPTO), cryptoapi) 638OBJS += src/crypto/crypto_cryptoapi.c 639OBJS_p += src/crypto/crypto_cryptoapi.c 640L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 641CONFIG_INTERNAL_SHA256=y 642CONFIG_INTERNAL_RC4=y 643endif 644endif 645 646ifeq ($(CONFIG_TLS), none) 647ifdef TLS_FUNCS 648OBJS += src/crypto/tls_none.c 649L_CFLAGS += -DEAP_TLS_NONE 650CONFIG_INTERNAL_AES=y 651CONFIG_INTERNAL_SHA1=y 652CONFIG_INTERNAL_MD5=y 653endif 654OBJS += src/crypto/crypto_none.c 655OBJS_p += src/crypto/crypto_none.c 656CONFIG_INTERNAL_SHA256=y 657CONFIG_INTERNAL_RC4=y 658endif 659 660ifndef TLS_FUNCS 661OBJS += src/crypto/tls_none.c 662ifeq ($(CONFIG_TLS), internal) 663CONFIG_INTERNAL_AES=y 664CONFIG_INTERNAL_SHA1=y 665CONFIG_INTERNAL_MD5=y 666CONFIG_INTERNAL_RC4=y 667endif 668endif 669 670AESOBJS = # none so far 671ifdef CONFIG_INTERNAL_AES 672AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 673endif 674 675AESOBJS += src/crypto/aes-wrap.c 676ifdef NEED_AES_EAX 677AESOBJS += src/crypto/aes-eax.c 678NEED_AES_CTR=y 679endif 680ifdef NEED_AES_CTR 681AESOBJS += src/crypto/aes-ctr.c 682endif 683ifdef NEED_AES_ENCBLOCK 684AESOBJS += src/crypto/aes-encblock.c 685endif 686ifdef NEED_AES_OMAC1 687AESOBJS += src/crypto/aes-omac1.c 688endif 689ifdef NEED_AES_UNWRAP 690NEED_AES_DEC=y 691AESOBJS += src/crypto/aes-unwrap.c 692endif 693ifdef NEED_AES_CBC 694NEED_AES_DEC=y 695AESOBJS += src/crypto/aes-cbc.c 696endif 697ifdef NEED_AES_DEC 698ifdef CONFIG_INTERNAL_AES 699AESOBJS += src/crypto/aes-internal-dec.c 700endif 701endif 702ifdef NEED_AES 703OBJS += $(AESOBJS) 704endif 705 706SHA1OBJS = 707ifdef NEED_SHA1 708ifneq ($(CONFIG_TLS), openssl) 709SHA1OBJS += src/crypto/sha1.c 710endif 711SHA1OBJS += src/crypto/sha1-prf.c 712ifdef CONFIG_INTERNAL_SHA1 713SHA1OBJS += src/crypto/sha1-internal.c 714ifdef NEED_FIPS186_2_PRF 715SHA1OBJS += src/crypto/fips_prf_internal.c 716endif 717endif 718ifneq ($(CONFIG_TLS), openssl) 719SHA1OBJS += src/crypto/sha1-pbkdf2.c 720endif 721ifdef NEED_T_PRF 722SHA1OBJS += src/crypto/sha1-tprf.c 723endif 724ifdef NEED_TLS_PRF 725SHA1OBJS += src/crypto/sha1-tlsprf.c 726endif 727endif 728 729ifdef NEED_SHA1 730OBJS += $(SHA1OBJS) 731endif 732 733ifdef NEED_MD5 734ifdef CONFIG_INTERNAL_MD5 735OBJS += src/crypto/md5-internal.c 736HOBJS += src/crypto/md5-internal.c 737endif 738endif 739 740ifdef NEED_MD4 741ifdef CONFIG_INTERNAL_MD4 742OBJS += src/crypto/md4-internal.c 743endif 744endif 745 746ifdef NEED_DES 747ifdef CONFIG_INTERNAL_DES 748OBJS += src/crypto/des-internal.c 749endif 750endif 751 752ifdef NEED_RC4 753ifdef CONFIG_INTERNAL_RC4 754OBJS += src/crypto/rc4.c 755endif 756endif 757 758ifdef NEED_SHA256 759L_CFLAGS += -DCONFIG_SHA256 760ifneq ($(CONFIG_TLS), openssl) 761OBJS += src/crypto/sha256.c 762endif 763OBJS += src/crypto/sha256-prf.c 764ifdef CONFIG_INTERNAL_SHA256 765OBJS += src/crypto/sha256-internal.c 766endif 767ifdef NEED_TLS_PRF_SHA256 768OBJS += src/crypto/sha256-tlsprf.c 769endif 770endif 771 772ifdef NEED_DH_GROUPS 773OBJS += src/crypto/dh_groups.c 774endif 775ifdef NEED_DH_GROUPS_ALL 776L_CFLAGS += -DALL_DH_GROUPS 777endif 778ifdef CONFIG_INTERNAL_DH_GROUP5 779ifdef NEED_DH_GROUPS 780OBJS += src/crypto/dh_group5.c 781endif 782endif 783 784ifdef NEED_ECC 785L_CFLAGS += -DCONFIG_ECC 786endif 787 788ifdef CONFIG_NO_RANDOM_POOL 789L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 790else 791OBJS += src/crypto/random.c 792HOBJS += src/crypto/random.c 793HOBJS += src/utils/eloop.c 794HOBJS += $(SHA1OBJS) 795HOBJS += src/crypto/md5.c 796endif 797 798ifdef CONFIG_RADIUS_SERVER 799L_CFLAGS += -DRADIUS_SERVER 800OBJS += src/radius/radius_server.c 801endif 802 803ifdef CONFIG_IPV6 804L_CFLAGS += -DCONFIG_IPV6 805endif 806 807ifdef CONFIG_DRIVER_RADIUS_ACL 808L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 809endif 810 811ifdef CONFIG_FULL_DYNAMIC_VLAN 812# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 813# and vlan interfaces for the vlan feature. 814L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 815endif 816 817ifdef NEED_BASE64 818OBJS += src/utils/base64.c 819endif 820 821ifdef NEED_AP_MLME 822OBJS += src/ap/wmm.c 823OBJS += src/ap/ap_list.c 824OBJS += src/ap/ieee802_11.c 825OBJS += src/ap/hw_features.c 826OBJS += src/ap/dfs.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_ACS 857L_CFLAGS += -DCONFIG_ACS 858OBJS += src/ap/acs.c 859LIBS += -lm 860endif 861 862ifdef CONFIG_NO_STDOUT_DEBUG 863L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 864endif 865 866ifdef CONFIG_DEBUG_LINUX_TRACING 867L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 868endif 869 870ifdef CONFIG_DEBUG_FILE 871L_CFLAGS += -DCONFIG_DEBUG_FILE 872endif 873 874ifdef CONFIG_ANDROID_LOG 875L_CFLAGS += -DCONFIG_ANDROID_LOG 876endif 877 878OBJS_c = hostapd_cli.c src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 879OBJS_c += src/utils/eloop.c 880ifdef CONFIG_WPA_TRACE 881OBJS_c += src/utils/trace.c 882endif 883OBJS_c += src/utils/wpa_debug.c 884ifdef CONFIG_WPA_CLI_EDIT 885OBJS_c += src/utils/edit.c 886else 887OBJS_c += src/utils/edit_simple.c 888endif 889 890######################## 891 892include $(CLEAR_VARS) 893LOCAL_MODULE := hostapd_cli 894LOCAL_MODULE_TAGS := debug 895LOCAL_SHARED_LIBRARIES := libc libcutils liblog 896LOCAL_CFLAGS := $(L_CFLAGS) 897LOCAL_SRC_FILES := $(OBJS_c) 898LOCAL_C_INCLUDES := $(INCLUDES) 899include $(BUILD_EXECUTABLE) 900 901######################## 902include $(CLEAR_VARS) 903LOCAL_MODULE := hostapd 904LOCAL_MODULE_TAGS := optional 905ifdef CONFIG_DRIVER_CUSTOM 906LOCAL_STATIC_LIBRARIES := libCustomWifi 907endif 908ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 909LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 910endif 911LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl 912ifdef CONFIG_DRIVER_NL80211 913LOCAL_STATIC_LIBRARIES += libnl_2 914endif 915LOCAL_CFLAGS := $(L_CFLAGS) 916LOCAL_SRC_FILES := $(OBJS) 917LOCAL_C_INCLUDES := $(INCLUDES) 918include $(BUILD_EXECUTABLE) 919 920endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 921