Android.mk revision 4530cfd4d14a77c58e35393b91e40f8dd9d62697
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 535ifdef CONFIG_GNUTLS_EXTRA 536L_CFLAGS += -DCONFIG_GNUTLS_EXTRA 537LIBS += -lgnutls-extra 538endif 539endif 540OBJS += src/crypto/crypto_gnutls.c 541HOBJS += src/crypto/crypto_gnutls.c 542ifdef NEED_FIPS186_2_PRF 543OBJS += src/crypto/fips_prf_gnutls.c 544endif 545LIBS += -lgcrypt 546LIBS_h += -lgcrypt 547CONFIG_INTERNAL_SHA256=y 548CONFIG_INTERNAL_RC4=y 549CONFIG_INTERNAL_DH_GROUP5=y 550endif 551 552ifeq ($(CONFIG_TLS), schannel) 553ifdef TLS_FUNCS 554OBJS += src/crypto/tls_schannel.c 555endif 556OBJS += src/crypto/crypto_cryptoapi.c 557OBJS_p += src/crypto/crypto_cryptoapi.c 558CONFIG_INTERNAL_SHA256=y 559CONFIG_INTERNAL_RC4=y 560CONFIG_INTERNAL_DH_GROUP5=y 561endif 562 563ifeq ($(CONFIG_TLS), nss) 564ifdef TLS_FUNCS 565OBJS += src/crypto/tls_nss.c 566LIBS += -lssl3 567endif 568OBJS += src/crypto/crypto_nss.c 569ifdef NEED_FIPS186_2_PRF 570OBJS += src/crypto/fips_prf_nss.c 571endif 572LIBS += -lnss3 573LIBS_h += -lnss3 574CONFIG_INTERNAL_MD4=y 575CONFIG_INTERNAL_DH_GROUP5=y 576endif 577 578ifeq ($(CONFIG_TLS), internal) 579ifndef CONFIG_CRYPTO 580CONFIG_CRYPTO=internal 581endif 582ifdef TLS_FUNCS 583OBJS += src/crypto/crypto_internal-rsa.c 584OBJS += src/crypto/tls_internal.c 585OBJS += src/tls/tlsv1_common.c 586OBJS += src/tls/tlsv1_record.c 587OBJS += src/tls/tlsv1_cred.c 588OBJS += src/tls/tlsv1_server.c 589OBJS += src/tls/tlsv1_server_write.c 590OBJS += src/tls/tlsv1_server_read.c 591OBJS += src/tls/asn1.c 592OBJS += src/tls/rsa.c 593OBJS += src/tls/x509v3.c 594OBJS += src/tls/pkcs1.c 595OBJS += src/tls/pkcs5.c 596OBJS += src/tls/pkcs8.c 597NEED_SHA256=y 598NEED_BASE64=y 599NEED_TLS_PRF=y 600ifdef CONFIG_TLSV12 601NEED_TLS_PRF_SHA256=y 602endif 603NEED_MODEXP=y 604NEED_CIPHER=y 605L_CFLAGS += -DCONFIG_TLS_INTERNAL 606L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 607endif 608ifdef NEED_CIPHER 609NEED_DES=y 610OBJS += src/crypto/crypto_internal-cipher.c 611endif 612ifdef NEED_MODEXP 613OBJS += src/crypto/crypto_internal-modexp.c 614OBJS += src/tls/bignum.c 615endif 616ifeq ($(CONFIG_CRYPTO), libtomcrypt) 617OBJS += src/crypto/crypto_libtomcrypt.c 618LIBS += -ltomcrypt -ltfm 619LIBS_h += -ltomcrypt -ltfm 620CONFIG_INTERNAL_SHA256=y 621CONFIG_INTERNAL_RC4=y 622CONFIG_INTERNAL_DH_GROUP5=y 623endif 624ifeq ($(CONFIG_CRYPTO), internal) 625OBJS += src/crypto/crypto_internal.c 626NEED_AES_DEC=y 627L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL 628ifdef CONFIG_INTERNAL_LIBTOMMATH 629L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 630ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 631L_CFLAGS += -DLTM_FAST 632endif 633else 634LIBS += -ltommath 635LIBS_h += -ltommath 636endif 637CONFIG_INTERNAL_AES=y 638CONFIG_INTERNAL_DES=y 639CONFIG_INTERNAL_SHA1=y 640CONFIG_INTERNAL_MD4=y 641CONFIG_INTERNAL_MD5=y 642CONFIG_INTERNAL_SHA256=y 643CONFIG_INTERNAL_RC4=y 644CONFIG_INTERNAL_DH_GROUP5=y 645endif 646ifeq ($(CONFIG_CRYPTO), cryptoapi) 647OBJS += src/crypto/crypto_cryptoapi.c 648OBJS_p += src/crypto/crypto_cryptoapi.c 649L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 650CONFIG_INTERNAL_SHA256=y 651CONFIG_INTERNAL_RC4=y 652endif 653endif 654 655ifeq ($(CONFIG_TLS), none) 656ifdef TLS_FUNCS 657OBJS += src/crypto/tls_none.c 658L_CFLAGS += -DEAP_TLS_NONE 659CONFIG_INTERNAL_AES=y 660CONFIG_INTERNAL_SHA1=y 661CONFIG_INTERNAL_MD5=y 662endif 663OBJS += src/crypto/crypto_none.c 664OBJS_p += src/crypto/crypto_none.c 665CONFIG_INTERNAL_SHA256=y 666CONFIG_INTERNAL_RC4=y 667endif 668 669ifndef TLS_FUNCS 670OBJS += src/crypto/tls_none.c 671ifeq ($(CONFIG_TLS), internal) 672CONFIG_INTERNAL_AES=y 673CONFIG_INTERNAL_SHA1=y 674CONFIG_INTERNAL_MD5=y 675CONFIG_INTERNAL_RC4=y 676endif 677endif 678 679AESOBJS = # none so far 680ifdef CONFIG_INTERNAL_AES 681AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c 682endif 683 684AESOBJS += src/crypto/aes-wrap.c 685ifdef NEED_AES_EAX 686AESOBJS += src/crypto/aes-eax.c 687NEED_AES_CTR=y 688endif 689ifdef NEED_AES_CTR 690AESOBJS += src/crypto/aes-ctr.c 691endif 692ifdef NEED_AES_ENCBLOCK 693AESOBJS += src/crypto/aes-encblock.c 694endif 695ifdef NEED_AES_OMAC1 696AESOBJS += src/crypto/aes-omac1.c 697endif 698ifdef NEED_AES_UNWRAP 699NEED_AES_DEC=y 700AESOBJS += src/crypto/aes-unwrap.c 701endif 702ifdef NEED_AES_CBC 703NEED_AES_DEC=y 704AESOBJS += src/crypto/aes-cbc.c 705endif 706ifdef NEED_AES_DEC 707ifdef CONFIG_INTERNAL_AES 708AESOBJS += src/crypto/aes-internal-dec.c 709endif 710endif 711ifdef NEED_AES 712OBJS += $(AESOBJS) 713endif 714 715SHA1OBJS = 716ifdef NEED_SHA1 717ifneq ($(CONFIG_TLS), openssl) 718SHA1OBJS += src/crypto/sha1.c 719endif 720SHA1OBJS += src/crypto/sha1-prf.c 721ifdef CONFIG_INTERNAL_SHA1 722SHA1OBJS += src/crypto/sha1-internal.c 723ifdef NEED_FIPS186_2_PRF 724SHA1OBJS += src/crypto/fips_prf_internal.c 725endif 726endif 727ifneq ($(CONFIG_TLS), openssl) 728SHA1OBJS += src/crypto/sha1-pbkdf2.c 729endif 730ifdef NEED_T_PRF 731SHA1OBJS += src/crypto/sha1-tprf.c 732endif 733ifdef NEED_TLS_PRF 734SHA1OBJS += src/crypto/sha1-tlsprf.c 735endif 736endif 737 738ifdef NEED_SHA1 739OBJS += $(SHA1OBJS) 740endif 741 742ifdef NEED_MD5 743ifdef CONFIG_INTERNAL_MD5 744OBJS += src/crypto/md5-internal.c 745HOBJS += src/crypto/md5-internal.c 746endif 747endif 748 749ifdef NEED_MD4 750ifdef CONFIG_INTERNAL_MD4 751OBJS += src/crypto/md4-internal.c 752endif 753endif 754 755ifdef NEED_DES 756ifdef CONFIG_INTERNAL_DES 757OBJS += src/crypto/des-internal.c 758endif 759endif 760 761ifdef NEED_RC4 762ifdef CONFIG_INTERNAL_RC4 763OBJS += src/crypto/rc4.c 764endif 765endif 766 767ifdef NEED_SHA256 768L_CFLAGS += -DCONFIG_SHA256 769ifneq ($(CONFIG_TLS), openssl) 770OBJS += src/crypto/sha256.c 771endif 772OBJS += src/crypto/sha256-prf.c 773ifdef CONFIG_INTERNAL_SHA256 774OBJS += src/crypto/sha256-internal.c 775endif 776ifdef NEED_TLS_PRF_SHA256 777OBJS += src/crypto/sha256-tlsprf.c 778endif 779endif 780 781ifdef NEED_DH_GROUPS 782OBJS += src/crypto/dh_groups.c 783endif 784ifdef NEED_DH_GROUPS_ALL 785L_CFLAGS += -DALL_DH_GROUPS 786endif 787ifdef CONFIG_INTERNAL_DH_GROUP5 788ifdef NEED_DH_GROUPS 789OBJS += src/crypto/dh_group5.c 790endif 791endif 792 793ifdef CONFIG_NO_RANDOM_POOL 794L_CFLAGS += -DCONFIG_NO_RANDOM_POOL 795else 796OBJS += src/crypto/random.c 797HOBJS += src/crypto/random.c 798HOBJS += src/utils/eloop.c 799HOBJS += $(SHA1OBJS) 800HOBJS += src/crypto/md5.c 801endif 802 803ifdef CONFIG_RADIUS_SERVER 804L_CFLAGS += -DRADIUS_SERVER 805OBJS += src/radius/radius_server.c 806endif 807 808ifdef CONFIG_IPV6 809L_CFLAGS += -DCONFIG_IPV6 810endif 811 812ifdef CONFIG_DRIVER_RADIUS_ACL 813L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 814endif 815 816ifdef CONFIG_FULL_DYNAMIC_VLAN 817# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 818# and vlan interfaces for the vlan feature. 819L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 820endif 821 822ifdef NEED_BASE64 823OBJS += src/utils/base64.c 824endif 825 826ifdef NEED_AP_MLME 827OBJS += src/ap/wmm.c 828OBJS += src/ap/ap_list.c 829OBJS += src/ap/ieee802_11.c 830OBJS += src/ap/hw_features.c 831L_CFLAGS += -DNEED_AP_MLME 832endif 833ifdef CONFIG_IEEE80211N 834OBJS += src/ap/ieee802_11_ht.c 835endif 836 837ifdef CONFIG_IEEE80211AC 838OBJS += src/ap/ieee802_11_vht.c 839endif 840 841ifdef CONFIG_P2P_MANAGER 842L_CFLAGS += -DCONFIG_P2P_MANAGER 843OBJS += src/ap/p2p_hostapd.c 844endif 845 846ifdef CONFIG_HS20 847L_CFLAGS += -DCONFIG_HS20 848OBJS += src/ap/hs20.c 849CONFIG_INTERWORKING=y 850endif 851 852ifdef CONFIG_INTERWORKING 853L_CFLAGS += -DCONFIG_INTERWORKING 854OBJS += src/common/gas.c 855OBJS += src/ap/gas_serv.c 856endif 857 858OBJS += src/drivers/driver_common.c 859 860ifdef CONFIG_NO_STDOUT_DEBUG 861L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 862endif 863 864ifdef CONFIG_DEBUG_FILE 865L_CFLAGS += -DCONFIG_DEBUG_FILE 866endif 867 868ifdef CONFIG_ANDROID_LOG 869L_CFLAGS += -DCONFIG_ANDROID_LOG 870endif 871 872OBJS_c = hostapd_cli.c src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c 873OBJS_c += src/utils/eloop.c 874ifdef CONFIG_WPA_TRACE 875OBJS_c += src/utils/trace.c 876endif 877OBJS_c += src/utils/wpa_debug.c 878ifdef CONFIG_WPA_CLI_EDIT 879OBJS_c += src/utils/edit.c 880else 881OBJS_c += src/utils/edit_simple.c 882endif 883 884######################## 885 886include $(CLEAR_VARS) 887LOCAL_MODULE := hostapd_cli 888LOCAL_MODULE_TAGS := debug 889LOCAL_SHARED_LIBRARIES := libc libcutils 890LOCAL_CFLAGS := $(L_CFLAGS) 891LOCAL_SRC_FILES := $(OBJS_c) 892LOCAL_C_INCLUDES := $(INCLUDES) 893include $(BUILD_EXECUTABLE) 894 895######################## 896include $(CLEAR_VARS) 897LOCAL_MODULE := hostapd 898LOCAL_MODULE_TAGS := optional 899ifdef CONFIG_DRIVER_CUSTOM 900LOCAL_STATIC_LIBRARIES := libCustomWifi 901endif 902ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),) 903LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB) 904endif 905LOCAL_SHARED_LIBRARIES := libc libcutils libcrypto libssl 906ifdef CONFIG_DRIVER_NL80211 907LOCAL_STATIC_LIBRARIES += libnl_2 908endif 909LOCAL_CFLAGS := $(L_CFLAGS) 910LOCAL_SRC_FILES := $(OBJS) 911LOCAL_C_INCLUDES := $(INCLUDES) 912include $(BUILD_EXECUTABLE) 913 914endif # ifeq ($(WPA_BUILD_HOSTAPD),true) 915