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